Einzelnen Beitrag anzeigen

DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1

Fenster auf bestimmten Monitor öffnen

  Alt 8. Feb 2024, 15:54
Wie ist es möglich ein Fenster auf einem bestimmten Monitor zu öffnen?
Die absolute Position X und Y meines Hauptformulars wird beim Beenden gespeichert.

Vorher wird noch ein Ladefenster angezeigt. In der Prozedur, die vor dem Show des Ladefensters kommt, lade ich die Position wo das Hauptfenster das letzte Mal zu sehen war.
Mit diesen Koordinaten hole ich mir dann die Monitornummer:
Delphi-Quellcode:
FScreen := Screen.MonitorFromWindow(FormLoading.Handle);

P.X := Ini.ReadInteger('PosMainWindow', 'MainX', (FScreen.Width - FormLoading.Width) div 2);
P.Y := Ini.ReadInteger('PosMainWindow', 'MainY', (FScreen.Height - FormLoading.Height) div 2);

FScreen := Screen.MonitorFromPoint(P);
Damit bekomme ich dann in FScreen.MonitorNum die Nummer des Monitors heraus.

Wie platziere ich das Ladefenster nun mittig auf den Monitor FScreen.MonitorNum?

Das Folgende halte ich für falsch, weil der zweite Moitor (das Ladefenster wäre in meinem Fall auf Monitor #2) nicht zwingend rechts neben dem Hauptmonitor sein muss
Delphi-Quellcode:
FormLoading.Left := FScreen.Left + (FScreen.Width - FormLoading.Width) div 2;
FormLoading.Top := FScreen.Top + (FScreen.Height - FormLoading.Height) div 2;

Geändert von DieDolly ( 8. Feb 2024 um 16:01 Uhr)
  Mit Zitat antworten Zitat