(Gast)
n/a Beiträge
|
AW: Fensterpositionen mit Hilfe einer Unit speichern
17. Nov 2016, 17:42
In dem Fall müsste ich die Methode doch in jedem Form aufrufen, und die Forms alle Form1, Form2 ... nennen oder?
Hier ist der Code den ich in eine Unit auslagern will:
Delphi-Quellcode:
procedure THauptfenster_Uebung.OnCreate(Sender: TObject);
var ini:TIniFile;
Filename, formname:string;
begin
formname:= TComponent(Sender).Name;
filename := 'E:\Projekte\Uebung\TestIni.Ini';
ini := TInifile.create(filename);
Hauptfenster_Uebung.Width:= ini.ReadInteger('Hauptfenster', 'Width', 0);
Hauptfenster_Uebung.Height:= ini.ReadInteger('Hauptfenster', 'Height', 0);
Hauptfenster_Uebung.Left:= ini.ReadInteger('Hauptfenster', 'Left', 0);
Hauptfenster_Uebung.Top:= ini.ReadInteger('Hauptfenster', 'Top', 0);
end;
procedure THauptfenster_Uebung.OnDestroy(Sender: TObject);
var ini:TIniFile;
Filename:string;
begin
filename := 'E:\Projekte\Uebung\Test_Ini.ini';
ini := TInifile.create(filename);
ini.WriteInteger('Hauptfenster', 'Height', Hauptfenster_Uebung.Height);
ini.WriteInteger('Hauptfenster', 'Width', Hauptfenster_Uebung.Width);
ini.WriteInteger('Hauptfenster', 'Top', Hauptfenster_Uebung.Top);
ini.WriteInteger('Hauptfenster', 'Left', Hauptfenster_Uebung.Left);
ini.Free;
end;
Kann man derartige Methoden so auslagern, dass sie automatisch beim erstellen/ schließen eines Forms ausgeführt werden?
Das klappt aber nicht richtig, wenn die Minimiert oder Maxmiert sind. Dann muss man die eigentliche Position mit GetWindowPlacement() holen.
|
|
Zitat
|