Ver Mensaje Individual
  #2  
Antiguo 03-02-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita