Einzelnen Beitrag anzeigen

mucsim

Registriert seit: 23. Jan 2018
4 Beiträge
 
#12

AW: Eigene Komponente mit erweitertem Construktor?

  Alt 23. Jan 2018, 11:05
Zitat:
ich möchte jetzt den Aufruf von Create um einen weiteren Parameter erweitern (z.B. ein Dateiname einer Datei die im Create bereits geladen werden soll)
Dafür erstellt man einfach einen

constructor Create(AOwner : TComponent; FileName : String)
begin
inherited Create( AOwner );
...
LoadFromFile( FileName );
end;

Man muss in dem code natürlich explizit dieses neue Create aufrufen - wie oben beschrieben kein Problem, da die Komponente/Control ja zur Laufzeit erzeugt werden soll.

Eigenschaften kann man dann auch innerhalb des Create setzen, also nachdem inherited aufgerufen wurde.

Wenn es sich um eine visuelle Komponente handelt muss man aufpassen - innerhalb von Create hat diese noch kein Fensterhandle.

Für Komponenten die aus der DFM geladen werden, wird nach dem Laden auch noch "Loaded" aufgerufen. Dies sollte man für manche Komponenten auch machen, wenn sie zur Laufzeit erzeugt wurden und die Eigenschaften gesetzt wurden.
  Mit Zitat antworten Zitat