Board index » cppbuilder » Re: Class
Remy Lebeau (TeamB)
![]() CBuilder Developer |
Remy Lebeau (TeamB)
![]() CBuilder Developer |
Re: Class2005-02-04 02:46:26 AM cppbuilder87 "Arnaldo Giacomitti Junior" < XXXX@XXXXX.COM >wrote in message QuoteI have inside of TWinControl two components TLabel, and TMyMaskEdit Gambit |
bar
![]() CBuilder Developer |
2007-08-26 01:34:19 AM
Re:Re: Class
Hello all
I have a form class TfrmMain : public TForm { __published: // IDE-managed Components TPanel *picTickerPanel; private: // User declarations public: // User declarations __fastcall TfrmMain(TComponent* Owner); }; //------------------------------------------------- extern PACKAGE TfrmMain *frmMain; I created a class derived from TShockwaveFlash //in the header class TImageFLASH : public TShockwaveFlash { private: String FlashCursor; public: __fastcall TImageFLASH(TComponent *Owner); BEGIN_MESSAGE_MAP VCL_MESSAGE_HANDLER(CM_MOUSEENTER, TMessage, CMMouseEnter) VCL_MESSAGE_HANDLER(CM_MOUSELEAVE, TMessage, CMMouseLeave) END_MESSAGE_MAP(TShockwaveFlash) }; //in the Cpp file void __fastcall TImageFLASH::CMMouseEnter(TMessage &Message) { TShockwaveFlash::Dispatch(&Message) ...........//some thing } At runtime i am creating a some flash controls in the "picTickerPanel" panel of frmMain for(int FLASHImageNumber=0; FLASHImageNumber<=3; FLASHImageNumber++) { TImageFLASH *ImageFLASH = new TImageFLASH(picTickerPanel); ImageFLASH->Parent = picTickerPanel; ImageFLASH->Tag = FLASHImageNumber; } and placing in the panel. My Problems ---------- When the mouse is over the flash images i want to know the ImageFLASH Tag number (Sender) of the event. Thanks SA |
Damon Chandler (TeamB)
![]() CBuilder Developer |
2007-08-26 07:52:53 AM
Re:Re: Class
Hi SA,
I don't know what TShockwaveFlash descends from, but if your TImageFLASH has a Tag property, you can access that property directly from within the TImageFLASH::CMMouseEnter (or CMMouseLeave) method(s). When you receive the CMMouseEnter/Leave messages, just make sure to check that the Msg.LParam data member is NULL; if it's not, then the message was intended for a child of the TImageFLASH (not an issue if TImageFLASH can't contain other child controls). I would suggest creating OnMouseEnter and OnMouseLeave events for your TImageFLASH class; this is similar to what's available to TControl descendants in newer versions of C++Builder; some similar to... class TImageFLASH : public TShockwaveFlash { __published: __property TNotifyEvent OnMouseEnter = {read=OnMouseEnter_, write=OnMouseEnter_}; __property TNotifyEvent OnMouseLeave = {read=OnMouseLeave_, write=OnMouseLeave_}; public: __fastcall TImageFLASH(TComponent* AOwner) : TShockwaveFlash(AOwner) {} private: void __fastcall CMMouseEnter(TMessage& Msg); void __fastcall CMMouseLeave(TMessage& Msg); private: TNotifyEvent OnMouseEnter_; TNotifyEvent OnMouseLeave_; public: BEGIN_MESSAGE_MAP VCL_MESSAGE_HANDLER(CM_MOUSEENTER, TMessage, CMMouseEnter) VCL_MESSAGE_HANDLER(CM_MOUSELEAVE, TMessage, CMMouseLeave) END_MESSAGE_MAP(TCustomControl) }; void __fastcall TMyControl:: CMMouseEnter(TMessage& Msg) { TCustomControl::Dispatch(&Msg); if (Msg.LParam == NULL && OnMouseEnter_ != NULL) { OnMouseEnter_(this); } } void __fastcall TMyControl:: CMMouseLeave(TMessage& Msg) { TCustomControl::Dispatch(&Msg); if (Msg.LParam == NULL && OnMouseLeave_ != NULL) { OnMouseLeave_(this); } } Cheers, bar wrote: QuoteAt runtime i am creating a some flash controls in the "picTickerPanel" panel {smallsort} |
bar
![]() CBuilder Developer |
2007-08-27 12:35:11 AM
Re:Re: ClassQuoteI don't know what TShockwaveFlash descends from, but if your TImageFLASH find from which flash image the event is occuring. void __fastcall TImageFLASH::CMMouseEnter(TMessage &Message) { //some thing working fine. ..... Now how to find the Sender of this event. } |
Clayton Arends
![]() CBuilder Developer |
2007-08-27 01:31:13 AM
Re:Re: ClassQuotevoid __fastcall TImageFLASH::CMMouseEnter(TMessage &Message) void __fastcall TImageFLASH::CMMouseEnter(TMessage &Message) { TShockwaveFlash::Dispatch(&Message); switch (Tag) { // blah } } - Clayton |
JD
![]() CBuilder Developer |
2007-08-27 10:26:14 AM
Re:Re: Class
"bar" < XXXX@XXXXX.COM >wrote:
Quote
the implicit 'this' pointer would point to the current object. Quotevoid __fastcall TImageFLASH::CMMouseEnter(TMessage &Message) and even then it would most likely be at issue because ... Prior to BDS (and possibly including BDS), CM_MOUSEENTER and CM_MOUSELEAVE are unreliable. For more see here: www.stevetrefethen.com/blog/IntroducingOnMouseEnterOnMouseLeaveEventsOnTControlInVCLForDelphi2006.aspx You need to explain exactly what it is that you want to accomplish and then explain exactly how the samples fit into your design. ~ JD |
bar
![]() CBuilder Developer |
2007-08-27 03:43:48 PM
Re:Re: Class
Hi Clayton.Thanks
this is what i need Cheers SA |
Remy Lebeau (TeamB)
![]() CBuilder Developer |
2007-08-28 01:15:15 AM
Re:Re: Class
"bar" < XXXX@XXXXX.COM >wrote in message
QuoteWhen the mouse is over the flash images i want to know void __fastcall TImageFLASH::CMMouseEnter(TMessage &Message) { TShockwaveFlash::Dispatch(&Message) if( Tag == whatever ) // do something ... } Gambit |