Einzelnen Beitrag anzeigen

Bambini
(Gast)

n/a Beiträge
 
#8

AW: Fensterpositionen mit Hilfe einer Unit speichern

  Alt 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.
  Mit Zitat antworten Zitat