Einzelnen Beitrag anzeigen

ringli

Registriert seit: 7. Okt 2004
504 Beiträge
 
Delphi 11 Alexandria
 
#1

Auflösung des Bildschirms (aktives Form)

  Alt 9. Nov 2008, 10:16
Mit folgendem Code kann ich die Auflösung des Monitors ermitteln auf dem sich eine Form grade befindet:
Delphi-Quellcode:
var
  TM : TMonitor;
begin
  TM := Screen.MonitorFromWindow(MainWindow.HWnd);
  MonWidth := TM.Width;
  MonHeight := TM.Height;
end;
Nun meine Frage: Wie kann ich das gleiche Ergebnis ohne zuhilfenahme der Unit "Forms" erreichen?

Hintergrund der Frage ist, das ich den Code in einer DLL benötige und sich die DLL dann mal eben von 136kB auf 439kB vergrößert sobald ich die Unit "Forms" einbinde. Habe auch schon versucht mir die benötigeten Teile aus der Unit "Forms" herauszukopieren, aber leider ist in dieser Unit alles so miteinander verwoben das ich es nicht hinbekommen habe. Natürlich habe ich auch schon hier im Forum und bei Google gesucht aber alles was ich bisher gefunden habe nutzt die "Forms"-Unit.

[EDIT]
So hatte ich es auch schon versucht, aber leider wird mir dann immer nur die Auflösung des primären Bildschirms zurückgegeben:
Delphi-Quellcode:
DC := GetDC(MainWindow.HWnd);
MonWidth := GetDeviceCaps(DC, HORZRES);
MonHeight := GetDeviceCaps(DC, VERTRES);
ReleaseDC(MainWindow.HWnd, DC);
[EDIT2]
Sehe grade das ich vergessen habe zu erwähnen das das Ganze für den Multimonitorbetrieb gedacht ist. Nur als Hinweis falls es aus meiner Beschreibung nicht klar hervorgeht.
  Mit Zitat antworten Zitat