Einzelnen Beitrag anzeigen

Benutzerbild von skyobserver
skyobserver

Registriert seit: 18. Mai 2005
Ort: Ense
114 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

Re: Zeitpunkt der Übernahme von Objektinspektor-Einstellunge

  Alt 13. Jun 2007, 18:26
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...
  Mit Zitat antworten Zitat