Hi,
ne wenig verwirrend ist die Beschreibung der Forum ja schon ne wenig. Hoffe doch sehr, dass ich hier richtig bin, else move plz
Folgende Situation: Ich schreibe gerade eine Komponente, die mir eine einfache Kapselung auf eine API-Funktion liefern soll. (TNotifyIconData). Nun versuche ich gerade meine non-visuelle Komponente entsprechend auf einige Ereignisse reagieren zu lassen und nutze dafür das dafür vorgesehen WinAPI-Callback:
uCallbackMessage := WM_TICOMSG;
WM_TICOMSG wurde als Konstante wie folgt vereinbart:
Delphi-Quelltext
1: 2:
| const WM_TICOSG = WM_USER + 10; |
nun habe ich mir eine Methode definiert und lasse diese auf das Signal warten:
procedure events(VAR msg:TMessage); message WM_TNAMSG;
Solange ich das ganze von einem Formular aus mache und per Knopf ein Icon in die Tray legen lasse, so kann ich nun in events alle Nachrichten abfangen, behandeln und entsprechend reagieren. Soweit die Theorie, die Praxis bei meiner Komponente sieht leider ganz anders aus. Praktisch der gleiche Code wurde in eine TComponent genommen. Das ganze momentan noch ohne Ereignise im OI realisiert, scheint bei der Komponente events nicht auf die entsprechende ID zu reagieren... das Callback scheint dort zu versagen. Ich bin ein wenig verwirrt, da ich mir eigentlich keinen Fehler bewußt bin. Mir hat nun ein Vogel ins Ohr gezwitschert, dass TComponent doch gar keine Ereignisse unterstützt... ich persönlich kann es mir nicht vorstellen und auch bisher nirgendswo eines besseren belehrt worden, allerdings in der VCL bisher nur visuelle Komponenten gesehen, die mit "message" arbeiten, alle anderen arbeiten mit Callbacks á la HwndProc.
Hoffe, dass jemand ne alten Pascaler helfen kann, der sich nun ne wenig verloren in der "neuen Welt" verloren kommt. Kann es wirklcih sein, dass TComponent aus mir nicht ersichtlichen Gründen die Messages unterdrückt und ich das Problem anders als bei einem TForm lösen muss?
Danke
Moderiert von
Klabautermann: Delphi-Tags hinzugefügt.
"Menschen sterben nicht wenn man sie zu Grabe trägt, sondern wenn sie ihre Träume verlieren..."