Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Fensterposition sowie -größe auf zweitem Monitor speichern und laden (https://www.delphipraxis.net/196056-fensterposition-sowie-groesse-auf-zweitem-monitor-speichern-und-laden.html)

Jumpy 19. Apr 2018 12:02

AW: Fensterposition sowie -größe auf zweitem Monitor speichern und laden
 
Evtl. könnte man noch speichern, ob das Fenster maximiert ist usw.

Zacherl 19. Apr 2018 12:03

AW: Fensterposition sowie -größe auf zweitem Monitor speichern und laden
 
Also ich hab mir grade mal ein Testprogramm geschrieben und da funktioniert alles wie es soll. Muss ein Problem bei der Verarbeitung (Ini, etc.) vorliegen:
Delphi-Quellcode:
uses
  Clipbrd;

procedure TForm2.Button1Click(Sender: TObject);
var
  S: String;
begin
  S := Left.ToString + ',' + Top.ToString + ',' + Width.ToString + ',' + Height.ToString;
  Clipboard.AsText := S;
end;

procedure TForm2.Button2Click(Sender: TObject);
var
  A: TArray<String>;
begin
  A := Clipboard.AsText.Split([',']);
  Left := A[0].ToInteger;
  Top := A[1].ToInteger;
  Width := A[2].ToInteger;
  Height := A[3].ToInteger;
end;
Edit:
Der Hinweis von haentschman bezüglich OnShow ist wichtig, wenn es sich um das (aktuelle) eigene Fenster handelt.

Uwe Raabe 19. Apr 2018 12:43

AW: Fensterposition sowie -größe auf zweitem Monitor speichern und laden
 
Zitat:

Zitat von günni0 (Beitrag 1399838)
Ich setze Top und Left im OnCreate-Event.

Dann setz dort doch auch noch
Delphi-Quellcode:
Position := poDesigned
- vielleicht steht da ja noch was anderes drin.

günni0 19. Apr 2018 12:47

AW: Fensterposition sowie -größe auf zweitem Monitor speichern und laden
 
poDesigned war schon gesetzt.

Der Tipp mit OnShow hat geholfen. Tatsächlich darf man wohl keine Fensterpositionen im OnCreate setzen.

TigerLilly 20. Apr 2018 07:31

AW: Fensterposition sowie -größe auf zweitem Monitor speichern und laden
 
Aber Achtung: Das Fenster wird dorthin verschoben, egal, ob es die Position/den Monitor auch gibt + wird damit uU unsichtbar.

Haben wir immer wieder, wenn Benutzer den zweiten Monitor nicht aufdrehen oder von einem anderen Rechner mit nur einem Monitor aus arbeiten. :-/

günni0 20. Apr 2018 07:36

AW: Fensterposition sowie -größe auf zweitem Monitor speichern und laden
 
Da bietet das Forum eine einfache Lösung für

https://www.delphipraxis.net/1359914-post7.html

markus5766h 22. Apr 2018 21:40

AW: Fensterposition sowie -größe auf zweitem Monitor speichern und laden
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1399853)
Zitat:

Zitat von günni0 (Beitrag 1399838)
Ich setze Top und Left im OnCreate-Event.

Dann setz dort doch auch noch
Delphi-Quellcode:
Position := poDesigned
- vielleicht steht da ja noch was anderes drin.

... müsste es nicht
Delphi-Quellcode:
Position := poDefault
sein - o.k. es funktioniert beides . . .

markus5766h 22. Apr 2018 21:41

AW: Fensterposition sowie -größe auf zweitem Monitor speichern und laden
 
Zitat:

Zitat von günni0 (Beitrag 1399855)
. . .Tatsächlich darf man wohl keine Fensterpositionen im OnCreate setzen.

doch, sollte auch im OnCreate funktionieren.

Redeemer 22. Apr 2018 23:14

AW: Fensterposition sowie -größe auf zweitem Monitor speichern und laden
 
Bei mir funktioniert es auch in
Delphi-Quellcode:
OnCreate
.

Zitat:

Zitat von TigerLilly (Beitrag 1399916)
Aber Achtung: Das Fenster wird dorthin verschoben, egal, ob es die Position/den Monitor auch gibt + wird damit uU unsichtbar.

Haben wir immer wieder, wenn Benutzer den zweiten Monitor nicht aufdrehen oder von einem anderen Rechner mit nur einem Monitor aus arbeiten. :-/

Nach dem Laden der Position:
Delphi-Quellcode:
if Screen.MonitorFromWindow(Handle, mdNull) = nil then
Position := poScreenCenter;

haentschman 23. Apr 2018 05:48

AW: Fensterposition sowie -größe auf zweitem Monitor speichern und laden
 
Moin...:P
Zitat:

Bei mir funktioniert es auch in OnCreate .
...eben, weil du nicht nicht Left und Top der Form setzt sondern nur poScreenCenter.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:28 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz