Delphi VirtualStringTree onMouseCenter和OnMouseLeave
您好,请问是否有包含以下2个鼠标事件的VirtualStringTree版本:Delphi VirtualStringTree onMouseCenter和OnMouseLeave,delphi,virtualtreeview,tvirtualstringtree,Delphi,Virtualtreeview,Tvirtualstringtree,您好,请问是否有包含以下2个鼠标事件的VirtualStringTree版本: onmouseinter和OnMouseLeave?如果您的字符串树还不支持这些事件,则可以很容易地添加它们 TMyImprovedVirtualStringTree = class(TSomeVirtualStringTree) private FOnMouseEnter: TNotifyEvent; FOnMouseLeave: TNotifyEvent; // Watch fo
onmouseinter
和OnMouseLeave
?如果您的字符串树还不支持这些事件,则可以很容易地添加它们
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;
我向两个消息处理程序添加了对继承的
的调用。如果没有这些,则会中断控件,因为基础控件已经有了这些消息的处理程序。@DavidHeffernan谢谢David。