Im Echtcode hatte ich über Self zugegriffen. Nur bei der Ursachensuche und der Reduktion auf das Wesentliche ist mir diese Fehler rein gerutscht.
Eigentlich wirde ich in so einem Fall weder
Self.WindowsState
noch
Form1.WindowsState
sondern nur
WindowsState := wsMaximiced
verwenden.
Mittlerweile ist mir eigentlich auch bewusst, dass die Klasse im Create eigentlich noch gar nicht komplett instanziert sein muss, aber es gibt eben auch Altlasten.
Mir war allerdings nicht bewusst, dass der Zugriff über Form1 nicht zulässig ist. Form1 ist
nicht vielleicht, sondern ganz
sicher die globale Variable von TForm1. Andernfalls würde dort die korrekte globale Variable stehen.
Aber wie gesagt
1. Zugriff direkt auf WindowsState Eigentlich zu 80% so
2. Zugrif über Self.WindowsState Um deutlich zu machen dass es ein FormVariable ist oder Form1 in einer Funktion(Self) weitergeben wird
3. Zugriff über Form1.WindowsState Kann noch Code aus den Anfängen geben
Der reale Code sah so aus:
Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
uRegDo.SaveFormPos(self);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
uRegDo.RestoreFormPos(self);
end;