gpt4 book ai didi

delphi - PopupMenuItem Click和MouseOver之间的区别

转载 作者:行者123 更新时间:2023-12-03 17:59:46 25 4
gpt4 key购买 nike

当菜单项具有子菜单时,鼠标悬停以展开子菜单,它将触发单击事件。

此点击事件与用户实际点击之间是否有区别?

我正在使用TPopupMenu作为cxButton的下拉属性。

编辑
德尔福2007

最佳答案

不确定这是否适用于D2007;在D7中您可以尝试以下吗?

type
THackPopupList = class(TPopupList)
private
FActuallyClicked: Boolean;
protected
procedure WndProc(var Message: TMessage); override;
public
property ActuallyClicked: Boolean read FActuallyClicked;
end;

{ THackPopupList }

procedure THackPopupList.WndProc(var Message: TMessage);
begin
FActuallyClicked := Message.Msg = WM_COMMAND;
inherited WndProc(Message);
end;

{ TForm1 }

procedure TForm1.MenuFileOpenClick(Sender: TObject);
var
ActuallyClicked: Boolean;
begin
ActuallyClicked := THackPopupList(PopupList).ActuallyClicked;
...
end;

initialization
PopupList.Free;
PopupList := THackPopupList.Create;

end.


说明:由悬停触发的OnClick由WM_INITMENUPOPUP启动,但是由鼠标单击触发的OnClick由该WM_COMMAND启动。

这取决于已经初始化的Menus.pas。但是据我从 Delphi unit initialization order理解,即使将此代码放在辅助单元中也可以保证。

关于delphi - PopupMenuItem Click和MouseOver之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6328497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com