Wenn man die genannten (
IMHO unnötig komplizierten) Ansätze mit dem letzten von hoika kombiniert, dann kommt so was dabei raus :
Delphi-Quellcode:
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;
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.
Edit : sehe gerade, die umständliche "hoika-Methode"
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.