比如说我想在新控件中添加一个事件, 让这个事件在OnMouseUp之后发生,请问大虾可以实现吗?
如果能应该怎么做?谢谢

解决方案 »

  1.   

    应该是可以实现的。
    但有一个地方不是很明白,你到底是想让这个OnMouseUp的事件是在你的控件里直接实现还是让用户来实现?
    建议楼主去下载一个别人写的控件源码看看,相信会有收获的。
      

  2.   

    我是想让这个事件在我的控件里实现, 就是我的控件多了同个事件,
    它将在OnMouseUp之后触发.
      

  3.   

    屏蔽原来的OnMouseUp事件
    发布两个新的事件:
    property OnMyMouseUp;
    property OnMyEvent;OnMouseUp := DoMouseUp;procedure TMyControl.DoMouseUp;
    begin
    if Assigned(FOnMyMouseUp) then
      FOnMyMouseUp(Self);
    if Assigned(FOnMyEvent) then
      FOnMyEvent(Self);
    end;
      

  4.   

    不明白楼主的意思,将事件处理代码写在onMouseUp事件里不行吗?
      

  5.   

    const MYMSG_AFTERMOUSEUP = WM_USER + 1;//这个随便你加多少啦.
    ......type
      TMyControl = class(......)
      private
        procedure MyMsgAfterMouseUp(var Msg : TWMMouse); message MYMSG_AFTERMOUSEUP;
        procedure LButtonUp(var Msg : TMessage); message LButtonUp;
      published
        property AfterMouseUp : TAfterMouseUpEvent read FAfterMouseUp write FAfterMouseUp;
      end;......procedure TMyControl.MyMsgAfterMouseUp(var Msg : TWMMouse);
    begin
      if Assigned(FAfterMouseUp) then FAfterMouseUp(......);
    end;procedure LButtonUp(var Msg : TMessage);
    begin
      PostMessage(MYMSG_AFTERMOUSEUP, Msg.wParam, Msg.LParam);
      inherited;
    end;上面的代码只是实现了左键的,地区而且只是部分. 但是好处是在你的AfterMouseUp事件中也能够得到鼠标的参数.