![]() |
Re: Position von Programmfenster in *.ini speichern?
Prima. Dann Zeige dem Volk mal Deine überarbeitete Version, die INI auszulesen und zu speichern. Bitte aber vergewissern, dass die INI geschrieben und gefunden wird.
|
Re: Position von Programmfenster in *.ini speichern?
OK, haltet euch fest, hier kommt es:
Delphi-Quellcode:
...
const SectionSystem = 'System'; KeyFormLeft = 'FormLeft'; KeyFormTop = 'FormTop'; ... procedure TForm1.FormCreate(Sender: TObject); begin Form1.Left := 100; Form1.Top := 100; end; procedure TForm1.FormDestroy(Sender: TObject); var savestat: TIniFile; begin savestat := TIniFile.Create(ExtractFilepath(Application.Exename)+'settings.ini'); try savestat.WriteInteger(SectionSystem, KeyFormLeft, Form1.Left); savestat.WriteInteger(SectionSystem, KeyFormTop, Form1.Top); finally savestat.Free; end; end; procedure TForm1.FormActivate(Sender: TObject); var savestat: TIniFile; begin savestat := TIniFile.Create(ExtractFilepath(Application.Exename)+'settings.ini'); try Form1.Left:= savestat.ReadInteger(SectionSystem, KeyFormLeft, 0); Form1.Top:= savestat.ReadInteger(SectionSystem, KeyFormTop, 0); finally savestat.Free; end; end; |
Re: Position von Programmfenster in *.ini speichern?
Wieso jetzt OnActivate? OnCreatewar doch richtig. Ansonsten: Wird die verdammte INI-Datei geschrieben? Hat diese den richtigen Inhalt? Setze doch mal ein Breakpoint und schaue nach was passiert.
Nachtrag: Was soll jetzt die Zuweisung in OnCreate? |
Re: Position von Programmfenster in *.ini speichern?
Upsi,
das mit OnCreate und OnActivate war ein Missverständnis. Es klappt jetzt sehr gut, bis auf einen kleinen Schönheitsfehler: Beim aller ersten Start (wenn noch keine *.ini geschrieben wurde) wird das Programm am absoluten linken, oberen Bildschirmrand angezeigt, DesktopCenter wäre aber schöner... :roll: |
Re: Position von Programmfenster in *.ini speichern?
Versuchs doch mal mit:
Delphi-Quellcode:
if savestat.SectionExists(SectionSystem) then
begin Form1.Left:= savestat.ReadInteger(SectionSystem, KeyFormLeft, 0); Form1.Top:= savestat.ReadInteger(SectionSystem, KeyFormTop, 0); end; |
Re: Position von Programmfenster in *.ini speichern?
Moin Tim,
logisch, dass dann das Programmfenster in der linken oberen Ecke hängt. Du hast ja als Defaultwert beim ReadInteger 0 angegeben. Wenn Du das mal auf (Screen.Width-self.Width) div 2 änderst (für die obere Kante entsprechend) sollte das Formular in der Mitte erscheinen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 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