![]() |
Re: Fensterpositionen speichern?
Wenn man die genannten (IMHO unnötig komplizierten) Ansätze mit dem letzten von hoika kombiniert, dann kommt so was dabei raus :
Delphi-Quellcode:
Der Benutzer verschiebt die Forms nach Lust und Laune und die letzten Koordinaten werden immer im OnClose abgespeichert. Er wird sie also wieder genau dort auffinden, wo er sie hingeschoben hat. Um die paar Zeilen nun aber nicht jedesmal neu schreiben zu müssen schiebt man eine Basisform am Besten in die Objektablage und benutzt da dann bei new -> Forms -> Others "inherited". Das ist in etwa das, was hoika von Hand unnötig simuliert.
procedure Tfrm.FormShow(Sender: TObject);
var FensterIni : TIniFile; begin inherited; try FensterIni := TIniFile.Create(FensterDateiName); Left := FensterIni.ReadInteger(Name,'Left',Left); Top := FensterIni.ReadInteger(Name,'Top',Top); finally FensterIni.Free; end; end; procedure Tfrm.FormClose(Sender: TObject; var Action: TCloseAction); var FensterIni : TIniFile; begin inherited; try FensterIni := TIniFile.Create(FensterDateiName); if not CDstart then begin // auf CD kann nicht gespeichert werden ! FensterIni.WriteInteger(Name,'Left',Left); FensterIni.WriteInteger(Name,'Top',Top); end; finally FensterIni.Free; end; Action := caFree; end; Edit : sehe gerade, die umständliche "hoika-Methode" :lol: bezieht sich auf alte Forms. Da muss mans wohl so umständlich machen. Besser ist, alles was gewisse Forms betrifft direkt in ein Basis-Form zu packen. Bei mir ist da alles drin. Auch Tastatur-Routinen etc. |
Re: Fensterpositionen speichern?
Dein Quellcode ist unsauber. Verschiebe den Konstruktoraufruf vor das jeweilige Try. Bei einer Exception im Constructor würde Free auf die (nicht initialisierte, lokale) Instanzenvariable zugreifen und versuchen diese freizugeben - und das kracht dann. Wenn du das Create ausserhalb von Try/finally hast, dann hast du im Try/finally Block immer eine gültige Instanz (die er auch freigeben kann) und wenn der Konstruktuer eine Exception wirft, dann gibt er die nicht erstellte Instanz auch nicht frei...
|
Re: Fensterpositionen speichern?
Mütze, mach das Thema jetzt nicht zu sehr OT. :mrgreen: Krachen tut mal nichts. Allerdings wurde das tatsächlich verkehrt aus der Delphi-Hilfe abgekupfert. @Fragesteller : die Antwort auf die Frage steht tatsächlich fast identisch in der Delphi-Hilfe zu TIniFile. :shock:
|
Re: Fensterpositionen speichern?
Hallo Hansa,
jepp umständlich, aber anderes geht es bei "alten" Forms nicht. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:51 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