我想重新派生一个类,怎么把CMHintShow这个私有的方法,可以变成公有的以便调用??不过我不想从TControl派生,比如我想从它的下级下级,比如我想让TBUTTON类,拥有一个可见的CMHintShow方法怎么做

解决方案 »

  1.   

    大概可以这样做  :)你建立一个public方法  然后拦截原来的消息,然后用inherited CMHintShow就可以.  当然请注意inherited的位置.  先说明白这不是覆盖  所以不可以用override而是隐藏
      

  2.   

    对了  问一下 你的键盘什么牌子的  我的OEM联想的  用了3年还没坏 :(  买了一块25块RMB的敲了一个星期就挂了  郁闷
      

  3.   

    用私有方法处理这个消息.公布一个公有方法去调用这个方法不就是了?和处理其他消息一样啊。
    比如CMMOUSEENTER,
    private
      FMouseEnter:TNotifyEvent;
      procedure CMMOUSEENTER(var msg:TMessage);message CM_MOUSEENTER;
    .......
    published
     property OnMouseEnter TNotifyEvent read FMouseEnter write FMouseEnter;
    ..........
    procedure TYOurClass.CMMOUSEENTER(var Msg:TMessage);
    begin
      if assign(FMouseEnter)then
      FMouseEnter(Self);                         
    end;
      

  4.   

    哈哈。我的键盘是sumspring 呵,6年了都没坏
    谢谢各位了。楼上那位好像经常弄坏键盘哈