我自已做一个Label控件,是从TLabel类继承过来的,在设计期怎样捕获它的双击消息呢????
是WM_XXXXXXXX?那个了

解决方案 »

  1.   

    哦,明白了!你看看在你注册控件中可以,继承一个类,然后注册,如下:
      TXXXX= class( TComponentEditor)
      protected
        ......
      public
        .....
        procedure Edit; override;//这个就是你想要的,在这里写上你要的效果
      end;
    procedure Register;
    begin
     RegisterComponentEditor( TXXLabel, TXXXX);
    end;
      

  2.   

    to feitianbianfu16() :
    你还是不明白我的意思啊!!!!我的代码如下:
      TWjqLabel = class(TCustomLabel)
      private
        //处理事件消息
        procedure WMLButtonDblClk(var Message: Tmessage); message WM_LBUTTONDBLCLK;
      protected
      public
      published
      end;  //处理事件消息
    procedure TWjqLabel.WMLButtonDblClk(var Message: Tmessage);
    begin
      if csDesigning in ComponentState then
        ShowMessage('xx');
    end;我是要在设计期的时候双击那个WjqLabel就执行ShowMessage('xx'),在运行期肯定可以执行那个Showmessage('xx')了,那要是在设计期又怎样来呢?
      

  3.   

    我写的就是你的要求的东西呀!你看看我的不是继承自TLabel的,而且我这个是设计器!不是控件!
      

  4.   

    那有TComponentEditor这个东西啊,我现在是继承Label来的,看看有其他办法没有,不要从其他继承来的。
      

  5.   

    你的需求必须要修改设计器,在你注册TLabel控件的时候,把我给你的也注册进去就可以了!我这个是经过实践的!我还没有见过别的方法!如果有告诉我一下!
      

  6.   

    你想要的不就是像TPopupMenu双击鼠标的效果么!我给你的就可以的!
      

  7.   

    to feitianbianfu16() :
    为什么编译的时候找不到TComponentEditor类呢,那个类从那里来的?
      

  8.   

    to feitianbianfu16() :
    找不到DesignEditors.dcu,你能不能把那个dcu文件发到
      

  9.   

    to feitianbianfu16() :
    以上问题我已经解决了,还有个问题你看看是怎么回事?
    是这样子,我双击我那个Label控件显示一个窗体来设置它的一些属性,比如它有一个IDHandel属性,我在关闭窗体的时候给它赋一个给定的值,为什么在属性页里的IDHandel属性的值不会改变呢?我在程序设计里用ShowMessage出来的又是新的我给定的那个值?怎么解决呢?