Mój problem polega na tym, że nie mogę przechwycić zdarzenia. Opiszę w skrócie:
Mam własny komponent:
KOD cpp: UKRYJ
typedef void __fastcall (__closure *TMsgEvent) (TObject* Sender, TMessage *Msg);
//
class PACKAGE TKontrolka_OK : public TComponent
{
private:
TMsgEvent CallBack_Message;
__published:
__property TMsgEvent OnMessage = {read = CallBack_Message, write = CallBack_Message};
};
//
class PACKAGE TKontrolka_OK : public TComponent
{
private:
TMsgEvent CallBack_Message;
__published:
__property TMsgEvent OnMessage = {read = CallBack_Message, write = CallBack_Message};
};
Kiedy nachodzi potrzeba wywołuję to zdarzenie:
KOD cpp: UKRYJ
if(OnMessage) OnMessage(this, &Msg);
Ogólnie wszystko gra, więc postanowiłem, że napiszę inny komponent który dziedziczy po TKontrolka_OK (powyższej):
KOD cpp: UKRYJ
class PACKAGE TLipa : public TKontrolka_OK
{
protected:
DYNAMIC void __fastcall Message(TObject *Sender, TMessage *Msg);
};
//
void __fastcall TLipa::Message(TObject *Sender, TMessage *Msg)
{
ShowMessage("Wywołano najpierw zdarzenie z kontrolki TLipa ");
TKontrolka_OK::OnMessage(this, Msg); // A potem TKontrolka_OK
}
{
protected:
DYNAMIC void __fastcall Message(TObject *Sender, TMessage *Msg);
};
//
void __fastcall TLipa::Message(TObject *Sender, TMessage *Msg)
{
ShowMessage("Wywołano najpierw zdarzenie z kontrolki TLipa ");
TKontrolka_OK::OnMessage(this, Msg); // A potem TKontrolka_OK
}
Problem w tym, że TLipa::Message nigdy nie jest wywoływane.
Jak wywołać najpierw zdarzenie w TLipa a potem w TKontrolka_OK ?