Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Wo ist die Bildschirmmitte?
Lost-Ha[n]f-PHP - Mo 16.10.06 13:14
Titel: Wo ist die Bildschirmmitte?
Hallo Leute,
ich habe ein Problem. Und zwar habe ich ein Programm geschrieben, das in der Mitte des Bildschirms positioniert wird. Das klappt auch, allerdings nicht, wenn der Benutzer 2 Bildschirme angeschlossen hat. Dann wird das Fenster zwischen 1. und 2. Bildschirm gesetzt.
Wie kann ich den Fenster in der Mitte des PrimaryScreen positionieren?
Danke im Voraus.
Gruß
Jens Krebs
chrisw - Mo 16.10.06 13:22
Vielleicht noch "/ Screen.MonitorCount" rechnen !
Nur so als Idee, nicht getestet !
F34r0fTh3D4rk - Mo 16.10.06 13:28
benutzt die screencenter oder desktop center ?
chrisw - Mo 16.10.06 13:29
Oder "Screen.DeskTopWidth"
Stefan.Buchholtz - Mo 16.10.06 13:34
TScreen hat ein Array-Property Monitors und ein Property MonitorCount, mit dem du die angeschlossenen Monitore ermitteln kannst. Der Hauptbildschirm hat primary auf true gesetzt. Du kannst dem Hauptbildschirm also so ermitteln:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| function GetPrimaryMonitor: TMonitor; var i : Integer; begin Result := nil; for i := 0 to Screen.MonitorCount - 1 do begin if Screen.Monitors[i].Primary then begin Result := Screen.Monitors[i]; break; end; end; end; |
Das sollte funktionieren, egal wie viele Monitore angeschlossen sind. Es geht leider nicht immer - manche Dualhead-Grafikkarten (von Matrox z.B.) können die beiden Monitore für Windows wie einen einzigen Monitor aussehen lassen.
Stefan
uwewo - Mo 16.10.06 14:50
Delphi-Quelltext
1:
| Form1.Position := poScreenCenter; |
Kann auch im OI gesetzt werden
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!