Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Form Position im OnShow ändern (https://www.delphipraxis.net/121777-form-position-im-onshow-aendern.html)

Xzeer 4. Okt 2008 11:49


Form Position im OnShow ändern
 
Hallo,

Ich möchte eine gespeicherte Fensterposition einer Form erst laden wenn das Formular geöffnet wird. Also OnCreate ist zu früh, denn die Form ist nicht die MainForm und kann während der Laufzeit mehrmals geöffnet und geschlossen werden und soll dann immer an der letzten Position erscheinen. OnShow wäre wie geschaffen dafür, allerdings gibt es dann den Fehler, dass man in diesem Event die Position nicht verändern kann. Gibt es noch eine andere Möglichkeit das zu realisieren? Ich hatte eventuell daran gedacht die OnCreate Methode vor dem öffnen der Form nochmal manuell auszuführen... bin mir aber nicht sicher ob das geht....

Helmi 4. Okt 2008 11:51

Re: Form Position im OnShow ändern
 
Hallo,

hast du schon mal OnActivate getestet?

Xzeer 4. Okt 2008 11:53

Re: Form Position im OnShow ändern
 
aber wird das nicht zu oft aufgerufen. Wenn z.b. das Fenster kurz nicht mehr den Fokus hatte und dann wiederbekommt....

//Edit: habs mal ausprobiert und funktinoiert... thx :-D

//Edit2: Wieso kann ich die Eigenschaften left und top verändern, aber nicht Form.Position???? Dabei kommt ein Fehler...

SirThornberry 4. Okt 2008 12:19

Re: Form Position im OnShow ändern
 
willst du uns nicht verraten welcher Fehler kommt? :glaskugel:
Zitat:

Ich hatte eventuell daran gedacht die OnCreate Methode vor dem öffnen der Form nochmal manuell auszuführen
Eine eher nicht so gute Lösung. Was hätte dagegen gesprochen eine neue Funktion zu schreiben die du einmal im OnCreate aufrufst und dann nochmal wenn du sie später brauchst.
Bzw. - ist es notwendig das Fenster zu behalten während es nicht angezeigt wird? Wäre es nicht auch möglich dieses freizugeben und wenn es wieder gebraucht wird neu zu erzeugen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:39 Uhr.

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