Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#10

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

  Alt 26. Aug 2020, 11:25
Ist dein Fenster Vollbild, über dem Screen und vor der/den Taskleisten,
oder nur maximiert im "Arbeitsbereich" (WorkArea) ?

Drum gibt es auch mehrere Positionen auszulesen.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Screen.DesktopRect // Alles und bei unterschiedlich großen oder verschobenen Screens inkl. der schwarzen nicht sichtbaren Bereiche
  Screen.Monitors[0].BoundsRect // der gesamte Screen
  Screen.Monitors[0].WorkareaRect // der Screen ohne Taskbar und ahnliche ToolBars

  Self.Monitor.BoundsRect // dieser Monitor ist jener, wo die Form ihren Mittelpunkt drauf hat
  Self.Monitor.WorkareaRect

  Self.Position := poDesktopCenter poScreenCenter poMainFormCenter poOwnerFormCenter ...
end;
Siehe das Bild vom schönen Günther.
Oben rechts und unten links gehört mit zum Desktop, auch wenn da nichts ist.
Bei Einem Fenster über Allem muß man auch aufpassen wo die Titelleiste hängt und ob rechts das [X] oder links das [Icon/Menü] außerhalb eines Bildschirms sind, denn Windows verschiebt gern die Fenster, damit das nicht passiert.


wie wäre es mit:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
   Self.Left := 0;
   Self.Top := 0;
...
Ich habe zwei Bildschirme nebeneinander stehen, und es funktioniert.
Hmmmmmmm nein.

https://www.delphipraxis.net/205298-screenshot.html

Position 0:0

Bei mir geht es nicht, da der Hauptbildschirm rechts steht und nicht links. (0:0 ist in der Mitte)
Und der Linke eine zwar gleichgroße Auflösung hat, aber durch höhere DPI um ein viertel tiefer steht.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (26. Aug 2020 um 11:47 Uhr)
  Mit Zitat antworten Zitat