Hola NEG1414.
A modo de guía, debería ser similar a esto:
MiComponente.h
Código:
#ifndef MiComponenteH
#define MiComponenteH
#include <SysUtils.hpp>
#include <Classes.hpp>
#include <Controls.hpp>
class PACKAGE TMiComponente : public TCustomControl
{
private: // User declarations
TNotifyEvent FOnMouseEnter;
TNotifyEvent FOnMouseLeave;
protected:
void __fastcall CMMouseEnter(Messages::TMessage &Message);
void __fastcall CMMouseLeave(Messages::TMessage &Message);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(CM_MOUSEENTER, TMessage, CMMouseEnter)
MESSAGE_HANDLER(CM_MOUSELEAVE, TMessage, CMMouseLeave)
END_MESSAGE_MAP(TCustomControl)
public: // User declarations
__fastcall TMiComponente(TComponent* Owner);
__published: // IDE-managed Components
__property TNotifyEvent OnMouseEnter= {read= FOnMouseEnter, write= FOnMouseEnter};
__property TNotifyEvent OnMouseLeave= {read= FOnMouseLeave, write= FOnMouseLeave};
//...
};
#endif
MiComponente.cpp
Código:
#include <vcl.h>
#pragma hdrstop
#include "MiComponente.h"
#pragma package(smart_init)
// ValidCtrCheck is used to assure that the components created do not have
// any pure virtual functions.
static inline void ValidCtrCheck(TMiComponente *)
{
new TMiComponente(NULL);
}
__fastcall TMiComponente::TMiComponente(TComponent* Owner) : TCustomControl(Owner)
{
FOnMouseEnter = 0;
FOnMouseLeave = 0;
}
void __fastcall TMiComponente::CMMouseEnter(Messages::TMessage &Message)
{
if (FOnMouseEnter)
FOnMouseEnter(this);
}
void __fastcall TMiComponente::CMMouseLeave(Messages::TMessage &Message)
{
if (FOnMouseLeave)
FOnMouseLeave(this);
}
namespace Micomponente
{
void __fastcall PACKAGE Register() {
TComponentClass classes[1] = {__classid(TMiComponente)};
RegisterComponents("Samples", classes, 0);
}
}
Saludos
