![]() |
JvAppIniFileStorage - Fensterposition Problem
Hallo alle miteinander... :hi:
ich speichere meine Fensterpositionen mit JvAppIniFileStorage und JvFormStorage. Folgendes Problem: - alle Fenster haben zur Entwurfszeit poScreenCenter, die Fenster sollen wenn keine INI vorhanden in der Mitte angezeigt werden. - beim Erststart werden die geöffneten Fenster auch in Bildschirmmitte angezeigt. aber: - alle Fenster, welche beim Erststart nicht geöffnet wurden, erhalten beim nächsten Start die Positionen wie poDesigned :wiejetzt: - in der INI stehen auch die Positionen wie poDesigned ! :?: habe ich eine Option übersehen :gruebel: PS: ich bin schon fast so weit, die Positionen selbst zu speichern. |
Re: JvAppIniFileStorage - Fensterposition Problem
Frage: Warum speichert du Positionen für Fenster die nicht geöffnet wurden? Normalerweise werden die Positionen doch von der JvFormStorage-Instanz gespeichert in auf dem jeweiligen Formular enthalten ist. Wenn ich das Formular nicht öffne dann wird auch nichts gespeichert.
Werden deine Formulare denn alle automatisch erzeugt oder erzeugst du sie erst wenn sie benötig werden (dann sollte das nämlich nicht passieren). Ciao, Ralf |
Re: JvAppIniFileStorage - Fensterposition Problem
Danke für die Antwort...
- alle Formulare werden automatisch erzeugt. - ich selbst speichere keine Fensterinformationen. - Alle Informationen werden durch JvAppINIFileStorage gespeichert. - da alle Formulare erzeugt wurden speichert er alle Fensterpositionen. :arrow: bei den geöffneten Fenstern werden die aktuellen Positionen gespeichert, bei den nicht geöffneten die Positionen wie Designed obwohl sie auf poScreenCenter stehen und eigentlich mit diesen Positionen erzeugt werden sollten. :?: ist das eine Eigenart von JvFormStorage, daß poScreenCenter übergangen wird. Zitat:
- ich habe das nur durch Zufall bei Neuinstallation auf einem anderen Rechner entdeckt. - vieleicht wird das Speichern vor dem Destroy des Formulars ausgelöst. Dann sollten aber die Positionen poScreenCenter entsprechen und nicht poDesigned - JvFormStorage steht auf jedem Formular Active:= True - JvAppINIFileStorage AutoFlush:= True, AutoReload:= True, FlushOnDestroy:= False ...alles in allem :gruebel: |
Re: JvAppIniFileStorage - Fensterposition Problem
Zitat:
"Wenn ich das Formular nicht erzeuge dann wird auch nichts gespeichert." Soweit ich mich erinnere werden die Positionen irgendwann gespeichert wenn das Formular freigegeben wird. Wenn es also nie erzeugt wurde dann wird auch nichts gespeichert. Was du mal ausprobieren kannst: Bei den FormStorages Active=false setzen und dann z.B. in OnClose der Formulare die Positionen per Code mit "SaveFormPosition()" speichern. So wird nichts mehr gespeichert wenn die Formulare garn nicht offen waren. (das Laden in OnCreate mittles "LoadFormPosition()" nicht vergessen!) eine andere, aber bessere, Alternative wäre es die Formulare erst dann zu erzeugen wenn sie gebraucht werden. Also raus mit den Dingern aus der Auto-Create Liste und immer schön per Code erzeugen bevor sie angezeigt werden. Spart dann außerdem noch Ressourcen. Ciao, Ralf |
Re: JvAppIniFileStorage - Fensterposition Problem
Zitat:
Danke :hi: |
Re: JvAppIniFileStorage - Fensterposition Problem
kurzes Update... :-D
so funktioniert es: 1. JvFormStorage.Active:= False 2. im OnCreate der Form JvFormStorage.RestoreFormPlacement; 3. im OnClose der Form JvFormStorage1.SaveFormPlacement; aber unabhängig davon wäre es schon interesant, warum die Formulare nicht mit den Positionen poScreenCenter erzeugt werden. :gruebel: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 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