Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#9

AW: Ein Formular für alle Monitore, Hilfe bitte

  Alt 26. Aug 2020, 11:23
@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.
  Mit Zitat antworten Zitat