Einzelnen Beitrag anzeigen

Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#1

Ein OnAfterCreate Event für die eigene Komponente

  Alt 18. Jun 2007, 10:46
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?

  Mit Zitat antworten Zitat