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.