Moin moin!
Derzeit bastel ich an einer visuellen Komponente (Abgeleitet von TCustomControl), bei der es ganz nützlich wäre, wenn es ein OnAfterCreate-Event gäbe, das eben ausgeführt wird, nachdem die Instanz der Komponente vollständig erzeugt wurde.
Dazu habe ich mal folgenden Ansatz probiert:
Delphi-Quellcode:
protected
procedure AfterCreate(var Msg: TMessage); message WM_USER + 104;
Delphi-Quellcode:
constructor Wuppdi.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Width := 150;
Height := 150;
PostMessage(
Handle, WM_USER + 104, 0, 0);
// trigger AfterCreate event
end;
Allerdings ergeben sich da zwei Probleme:
1. Es funktioniert nicht
. Obwohl ein CustomControl ja eigentlich Messages empfangen können müssten, gibt es eine
Exception (Ich glaube es war "Element "" hat kein übergeordnetes Fenster).
2. Mal angenommen es würde gehen - dann würde ja beim Erzeugen einer Instanz jede schon vorhandene Instanz wieder das AfterCreate-Event auslösen. Gibt es eine elegantere Lösung als noch einen zusätzlichen "Schalter" einzubauen, der überprüft, ob die Instanz schonmal das Event ausgelöst hat?