【问题标题】:Delphi VirtualStringTree OnMouseEnter and OnMouseLeaveDelphi VirtualStringTree OnMouseEnter 和 OnMouseLeave
【发布时间】:2013-07-06 12:16:01
【问题描述】:

您好,请问有没有包含这 2 个鼠标事件的 VirtualStringTree 版本:

OnMouseEnterOnMouseLeave ?

【问题讨论】:

    标签: delphi virtualtreeview tvirtualstringtree


    【解决方案1】:

    如果您的字符串树尚不支持这些事件,则添加这些事件很容易。

      TMyImprovedVirtualStringTree = class(TSomeVirtualStringTree)
      private
        FOnMouseEnter: TNotifyEvent;
        FOnMouseLeave: TNotifyEvent;
    
        // Watch for MouseEnter and MouseLeave messages...
        procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
        procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
      protected
        // Provide MouseEnter() and MouseLeave() methods
        // for descendent controls to override if needed.
        procedure MouseEnter; virtual;
        procedure MouseLeave; virtual;
      published
        // Publish the events so they show in Delphi's object inspecter.
        property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
        property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
      end;
    
    implementation
    
    { TMyImprovedVirtualStringTree }
    
    procedure TMyImprovedVirtualStringTree.CMMouseEnter(var Message: TMessage);
    begin
      inherited;
      MouseEnter;
    end;
    
    procedure TMyImprovedVirtualStringTree.CMMouseLeave(var Message: TMessage);
    begin
      inherited;
      MouseLeave;
    end;
    
    procedure TMyImprovedVirtualStringTree.MouseEnter;
    begin
      if Assigned(FOnMouseEnter) then
        FOnMouseEnter(Self);
    end;
    
    procedure TMyImprovedVirtualStringTree.MouseLeave;
    begin
      if Assigned(FOnMouseLeave) then
        FOnMouseLeave(Self);
    end;
    

    【讨论】:

    • 我向您的两个消息处理程序添加了对inherited 的调用。如果没有这些,您会破坏控件,因为底层控件已经具有这些消息的处理程序。
    • @DavidHeffernan 谢谢大卫。
    猜你喜欢
    • 1970-01-01
    • 2017-12-28
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 2021-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多