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.