Danke für Eure Antworten / Ideen!
Spricht irgend etwas gegen meine Lösung, außer das das Laden nicht funktioniert?
Mit den 2 zusätzlichen Zeilen je Fensteraufruf könnte ich prima leben:
Delphi-Quellcode:
Function SaveWinPos(Wnd: TForm; Key: String): Boolean;
Var
WP : TWindowPlacement;
Begin
Result:=False;
WP.Length:=SizeOf(TWindowPlacement);
GetWindowPlaceMent(Wnd.Handle, @WP);
With TRegistry.Create(KEY_ALL_ACCESS) Do
Try
RootKey:=HKEY_CURRENT_USER;
Try
OpenKey(Key, True);
WriteBinaryData(Wnd.Name, WP, WP.length);
CloseKey;
Result:=True;
Except End;
Finally
Free;
End;
End;
Function LoadWinPos(Wnd: TForm; Key: String): Boolean;
Var
WP : TWindowPlacement;
Begin
Result:=False;
WP.Length:=SizeOf(TWindowPlacement);
With TRegistry.Create(KEY_READ) Do
Try
RootKey:=HKEY_CURRENT_USER;
Try
OpenKeyReadOnly(Key);
ReadBinaryData(Wnd.Name, WP, WP.length);
CloseKey;
SetWindowPlaceMent(Wnd.Handle, @WP);
Result:=True;
Except End;
Finally
Free;
End;
End;
procedure TForm1.Button1Click(Sender: TObject);
begin
LoadWinPos(Form2, 'Alexander_Test');
Form2.ShowModal;
SaveWinPos(Form2, 'Alexander_Test');
end;
Wenn ich es so laufen lasse, dann setzt er zwar die Fensterposition. Allerdings lässt sich das Fenster dann nicht mehr bewegen und das Programm stürzt damit ab. Kann mir jemand die Ursache sagen?
Gruß und Dank, Alexander