Einzelnen Beitrag anzeigen

Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Mehrere Monitore - Fensterposition

  Alt 12. Feb 2013, 09:18
Wenn es eine Option ist poMainFormCenter oder poOwnerFormCenter für die Dialoge zu verwenden ...
Ansonsten, herausfinden auf welchem Monitor das Hauptfenster angezeigt wird und den Offset des Dialogs anpassen

Delphi-Quellcode:
Function GetMonitorIndex4Form(F:TForm):Integer;
var
 i:Integer;
 IR:TRect;
begin
  I := -1;
  for I := 0 to Screen.Monitorcount - 1 do
    begin
       IntersectRect(IR, Screen.Monitors[i].BoundsRect,F.BoundsRect);
       if EqualRect(IR,F.BoundsRect) then Result := i;
    end;
end;


.....

var
 mi:Integer;
begin
  mi := GetMonitorIndex4Form(self);
  if mi>-1 then
    begin
      FormX.Left := Screen.Monitors[mi].BoundsRect.Left + xxx;
      FormX.Top := Screen.Monitors[mi].BoundsRect.Top + yyy;
    end;
end;
Wenn das Form nicht ganz auf einem Monitor liegt (teilweise auf 2 Monitoren dargestellt wird) musst Du das ganze wunschgemäß anpassen.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat