Jetzt habe ich interessanter Weise immer False (egal was im Objektinspektor eingestellt ist)...
So hatte ich mir das ganze vorgestellt:
Delphi-Quellcode:
unit xForm;
interface
uses
Forms, Classes;
type
TxForm =
class(TForm)
private
FSavePosition: Boolean;
FSaveSize: Boolean;
FSaveState: Boolean;
FLoadPosition: Boolean;
FLoadSize: Boolean;
FLoadState: Boolean;
protected
procedure Loaded;
override;
procedure DoClose(
var Action: TCloseAction);
override;
public
constructor Create(Owner: TComponent);
override;
destructor Destroy;
override;
published
property SavePosition: Boolean
read FSavePosition
write FSavePosition
default True;
property SaveSize: Boolean
read FSaveSize
write FSaveSize
default True;
property SaveState: Boolean
read FSaveState
write FSaveState
default True;
property LoadPosition: Boolean
read FLoadPosition
write FLoadPosition
default True;
property LoadSize: Boolean
read FLoadSize
write FLoadSize
default True;
property LoadState: Boolean
read FLoadState
write FLoadState
default True;
end;
implementation
uses
SysUtils;
constructor TxForm.Create(Owner: TComponent);
begin
inherited Create(Owner);
FSavePosition := True;
//Hier die Default-Werte setzen
FSaveSize := True;
//für den Fall das in der DFM
FSaveState := True;
//noch keine Werte hinterlegt sind
FLoadPosition := True;
//Diese Werte werden dann später
FLoadSize := True;
//durch die DFM Werte überschrieben
FLoadState := True;
end;
destructor TxForm.Destroy;
begin
inherited Destroy;
end;
procedure TxForm.Loaded;
begin
inherited Loaded;
// xLoadWindow(Self, FLoadPosition, FLoadSize, FLoadState); //Hier sollen bei Bedarf die Eigenschaften geladen werden
end;
procedure TxForm.DoClose(
var Action: TCloseAction);
begin
inherited DoClose(Action);
// if (Application.MainForm = Self) or ((Action <> caHide) and (Action <> caMinimize)) then //Hier sollen bei Bedarf die
// xSaveWindow(Self, FSavePosition, FSaveSize, FSaveState); //Eigenschaften gespeichert werden
end;
end.
Die Objektinspektor-Einstellungen werden auf jeden Fall in der
DFM gespeichert, denn wenn
ich das Projekt schließe und wieder lade werden meine Einstellungen wieder hergestellt.
Bei xLoadWindow in "DoShow" habe ich nur TRUE (meine Default-Werte) aber noch nicht die Werte aus der
DFM.
Bei xLoadWindow in "Loaded" habe ich nur FALSE (anscheinen noch nicht einmal die Default Werte)
"Loaded" kehrt wohl in meinen "inherited Create" noch vor den Defaults zurück...