@Kodezwerg
Da das Formular transparent ist, sieht man es ja auch nicht.
Damit wäre es doch wurscht, wenn es größer als alle Bildschirme ist. Mit der Maus kann man nur in dem Bereich navigieren, der sichtbar ist. (ok, nicht ganz, man kann die Maus auch aus dem Bildschirm rausschieben. Für den Fall würd' ich noch 'ne Action, 'nen ShortCut oder so einbauen, mit dem man den Cursor (ohne die Maus zu betätigen) in die Desktopmitte setzen kann, da weiß der User immer, wo die ist und kann sich von dort aus neu orientieren.)
Wäre es ein Ansatz in 'ner Schleife nach dem höchsten Bildschirm zu suchen und Self.Height auf den höchsten der gefundenen Werte zu setzen und desgleichen auch für die Breite:
Delphi-Quellcode:
Self.Height := 0;
for i := 0 to Screen.MonitorCount -1 do Self.Height := Max(Self.Height,Screen.Monitors[i].Height);
Self.Width := 0;
for i := 0 to Screen.MonitorCount -1 do Self.Width := Max(Self.Width,Screen.Monitors[i].Width);
Guck aml hier
https://www.delphipraxis.net/53820-m...monitoren.html ob's weiterhilft.
Und dann mal mit der Suchmaschine Deiner Wahl: delphi screen.left multi monitor
Da scheint es noch etliches zu geben, was eventuell hilfreich sein könnte.
Wobei:
Die Idee von ghubi01, statt Self.Left, Self.Width ... Screen.DesktopLeft ... zu nehmen, erscheint mir die deutlich intelligentere Variante zu sein. Da nimmt einem wohl das Betriebsystem das ganze "Bildschirmanordnungsgewusel" ab.
Screen.DesktopLeft ist halt immer links, Screen.DesktopWidth ist immer die Breite.
Am Ende müsste das FormCreate von ghubi01 für die Problemlösung ausreichen.
@ghubi01
Danke für's testen.