Eine Option kann auch sein, die Position beim Schließen in einer Ini zu speichern und beim nächsten Start wieder zu laden. So kannst Du jederzeit leicht eine neue Position festlegen.
Funktioniert für mich super.
Delphi-Quellcode:
procedure TFormX.LoadIni;
var
IniFile: TIniFile;
begin
try
IniFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + IniFileName);
WindowState := wsNormal;
Position := poDesigned;
Top := IniFile.ReadInteger(IniFileName, 'Top', Top);
Left := IniFile.ReadInteger(IniFileName, 'Left', Left);
Width := IniFile.ReadInteger(IniFileName, 'Width', Width);
Height := IniFile.ReadInteger(IniFileName, 'Height', Height);
finally
FreeAndNil(IniFile);
end;
end;
procedure TFormX.SaveIni;
var
IniFile: TIniFile;
begin
try
IniFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + IniFileName);
IniFile.WriteInteger(IniFileName, 'Top', Top);
IniFile.WriteInteger(IniFileName, 'Left', Left);
IniFile.WriteInteger(IniFileName, 'Width', Width);
IniFile.WriteInteger(IniFileName, 'Height', Height);
finally
FreeAndNil(IniFile);
end;
end;
procedure TFormX.FormCreate(Sender: TObject);
begin
LoadIni;
end;
...
procedure TFormX.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SaveIni;
end;