PopupMenuItem Click 和 MouseOver 的区别

2024-04-18

当菜单项有一个子菜单时,鼠标悬停在展开子菜单时会触发单击事件。

这个点击事件和用户实际点击有什么区别吗?

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

EDIT德尔福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单元初始化顺序 http://www.saunalahti.fi/janij/blog/2006-04.html,即使您将此代码放在辅助单元中也是可以保证的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PopupMenuItem Click 和 MouseOver 的区别 的相关文章

  • 从delphi应用程序调用.net4.0 com服务器后出现错误异常

    我们正在将代码库从 BDS2006 迁移到 Rad Studio XE 我们发现了一些非常奇怪的行为 如果我们在从 Net4 0 中实现的 COM 服务器创建一些对象后进行无效的浮点运算 即除以零 我们不会没有得到正常异常 即 EDivis
  • 检测反射 DLL 注入

    在过去的几年中 恶意软件 以及一些渗透测试工具 如 Metasploit 的 meterpreter 负载 已经开始使用反射 DLL 注入 PDF http www harmonysecurity com files HS P005 Ref
  • 在 Delphi 2009 上安装最新版本的 Indy 10 [重复]

    这个问题在这里已经有答案了 是否有更新 Delphi 2009 中的 Indy 10 组件的分步指南 我读过正在卸载线程 https stackoverflow com questions 486210 what is the proper
  • Delphi 5 的哈希表实现 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 您知道 Delphi 5 的良好且免费的哈希表实现吗 我需要在哈希表中组织大量数据 并且我有点担心在网
  • Delphi应用程序窗口z顺序和MainFormOnTaskBar属性

    我正在维护一个最初用 Delphi 7 编写并移植到 Delphi XE 的应用程序 使用 Windows 7 我们遇到了一些问题 例如模态窗口出现在主窗口下方 以及最终无法与程序交互 因为用户需要与模态窗体交互 而这是不可能的 因为它位于
  • 如何在Delphi中显示Vista风格的气球提示?

    在输入验证时 我使用气球提示而不是消息框 我的问题是 在 Vista 上 它们具有带圆角的旧 XP 样式 而不是较新的矩形外观 我尝试使用 CreateWindowEx 创建它们并且tooltips class32或使用 SendMessa
  • 如何使 StringGrid 的列适合网格的宽度?

    我已经寻找解决方案很长时间了 但没有任何运气 有谁知道一个简单的方法来做到这一点 例如 我想拉伸网格的第二列以适应网格的宽度 Use the ColWidths财产 像这样 with StringGrid1 do ColWidths 1 C
  • Delphi中使用FindVCLWindow调用WinHelp32(WinXP Pro SP3 32bit)

    有什么问题吗 procedure TForm1 VCLHelpClick Sender TObject var Ctrl TWinControl begin Ctrl FindVCLWindow Mouse CursorPos if Ctr
  • 在 Delphi 或 C++ Builder 中使用 Chromium Edge WebView2 [重复]

    这个问题在这里已经有答案了 既然 Microsoft Chromium Edge 已经最终确定 是否可以在 Delphi 或 C Builder 中使用它 据我了解 它是基于WebView2成分 是否有一个组件 例如TWebView2或者E
  • CharInSet 不适用于非英文字母?

    我已经将应用程序从 Delphi 2007 更新到 Delphi 2010 一切都很顺利 除了一条编译正常但不起作用的语句 If Edit1 Text 1 in S then ShowMessage Found else ShowMessa
  • Delphi XE7 Android 全屏(隐藏软键)

    如何在XE7中全屏显示 隐藏顶部 标题 和底部 软键 工具栏 在 XE6 中 我可以通过在应用程序部分写入来调整 AndroidManifest 以使我的应用程序全屏显示并且没有操作栏 android theme android style
  • Delphi - Indy - 保存 GMail 草稿

    我一直在 Delphi 下使用 Indy 通过 gmail 帐户发送消息 使用 TIdSMTP 和 TIdMessage 组件 这绝对没问题 但是 我的客户请求将消息保存到 DRAFTS 文件夹 以便他在实际发送消息之前对 以编程方式创建的
  • 如何读取和更改 TEdit 控件的值?

    我有一个表格TForm1有 5TEdit and 2 TBitBtn 我还需要该程序 以便在输入数字数据后Edit1 and Edit2 on BitBtn1Click Edit1 and Edit2值将被求和并显示在Edit3 你想做这样
  • Delphi 的内存分析工具?

    我建立了一个项目并运行它 然后在 Process Explorer 中查看它 结果发现它在启动时使用的 RAM 比我想象的要多 5 倍 现在 如果我的程序运行得太慢 我会将其连接到分析器并让它告诉我什么正在使用我的所有周期 有没有类似的工具
  • 如何在按键时识别 unicode 键?

    我的应用程序使用 unicode 字符 并且我有几个文本字段 我想限制用户输入特殊字符 例如 begin if not Key in a z A Z 0 9 13 8 then Key 0 if Key 13 then bOk Click
  • 任何第三方都可以从我的项目加载嵌入式资源吗?

    请参考我的一篇之前的问题 https stackoverflow com questions 14681364 issues passing data from dll to application 我问的是如何从 DLL 加载已编译的资源
  • 似乎有时 Delphi 是区分大小写的 - “覆盖方法应该与祖先的大小写匹配”

    今天我遇到了一个 奇怪 的提示 覆盖方法 xxxx 应匹配祖先 yyyy 的大小写 解决方案是完全按照祖先中的方式声明方法名称 我相信这是自 Delphi Net 编译器以来编译器中保留的东西 与祖先中完全相同的方法声明方法使编译器 沉默
  • 为什么 TImage 旋转我的图像?

    编写一个移动应用程序 它从安全网站提取图像 如下所示 第一个图像 提取不正确 注意网络版本与移动版本 第二个图像在网站上正确显示 但 Delphi TImage 由于某种原因正在旋转它我不明白为什么 旋转设置为 0 并且在 TImage 组
  • Delphi XE4 中是否可以更改应用程序短标题而不使其与项目 dpr 名称相同?

    我正在编写我的第一个由 delphi 驱动的 iPhone 应用程序 我已经创建了它 但我希望将其命名为 dpr 文件名称以外的名称 因为 dpr 文件不能包含空格 例如 EXE 名称并不总是与人们可能分配给应用程序的人类可读名称相同 而在
  • 使用 TArray 而不是 Array of T 的原因是什么?

    我正在将遗留的 Delphi 应用程序迁移到 Delphi XE2 我想知道是否有充分的理由替换定义为的数组Array of MyType to TArray

随机推荐

  • 我无法在react-dom/client中使用createRoot函数

    import React from react import as ReactDOMClient from react dom client import App from App import reportWebVitals from r
  • 提取授权号的正则表达式模式

    我在用着GSKinner 的 Reg Exr 工具 http gskinner com RegExr 帮助提出一种模式 可以在包含大量其他垃圾的字段中找到授权号 授权号是一个包含字母 有时 数字 始终 和连字符 有时 的字符串 i e 授权
  • 访客模式的实际优势是什么?有哪些替代方案?

    我读了很多关于访客模式及其假定优势的内容 然而对我来说 在实践中应用它们似乎并没有那么大的优势 方便 和 优雅 似乎意味着大量的样板代码 因此 代码很难遵循 另外 接受 访问 的描述性并不强 如果您的编程语言没有方法重载 即 Vala 那么
  • 在sql server中如何获取用`
    `分开的列值

    在sql server中如何获取列的值 br 分开他们 这里我用逗号分隔 但是我怎样才能得到 br 在sql服务器中的html中 SELECT STUFF SELECT cast Citation Id as nvarchar 500 FR
  • 我的简单 ListView 应用程序正在泄漏内存。我做错了什么?

    首先 我确实先将其发布到 android google 群组 但它经过了审核 我不确定它需要多长时间才能出现在那里 所以希望这里有人可以提供帮助 我创建了一个简单的应用程序 其中 ListView 遵循 ListActivity 我在网上找
  • 有没有办法重新打开套接字?

    我在一些代码中创建了许多 短期 套接字 如下所示 nb 1000 for i in range nb sck socket socket socket AF INET socket SOCK STREAM sck connect adr p
  • 如何让VS忽略Test dll的代码覆盖率

    目前 当我运行代码覆盖率分析时 报告的覆盖率为 90 问题是 另外 10 是实际测试的代码 我怎样才能让VS忽略该测试代码而只考虑实际代码 您可以在项目中添加运行设置文件 在该文件中 您可以提及需要从代码覆盖率中排除的 DLL 名称
  • 多个水豚等待时间?

    我想要有不一样的Capybara我的代码中的等待时间取决于它们通常需要多长时间才能完全加载 我是否必须重复不断地改变Capybara default wait time或者 还有更好的方法 您可以使用使用等待时间 秒 http rubydo
  • 将recvfrom() 与原始套接字一起使用:一般疑问

    我创建了一个原始套接字 它从数据链路层获取所有 IPv4 数据包 删除了数据链路层标头 为了读取我使用的数据包recvfrom 我的疑问是 假设由于操作系统进行了一些调度 我的进程休眠了 1 秒 当它醒来时 它做到了recvfrom 要接收
  • 使用 SSLSocket 的 SOCKS5 代理

    我有一个客户端 服务器应用程序 它通过 Java 的 SSLSocket 远程连接到服务器 我正在尝试实现一种可选模式 通过经过身份验证的 SOCKS v5 代理启用连接 我尝试使用相关教程 http download oracle com
  • 设置目录和子项的权限

    我的程序将一些目录 子目录和文件从服务器复制到本地计算机 我需要 每个本地用户都可以修改它 编辑 删除 删除 重命名 但现在它只能做所有者 如何为复制的目录及其子项目设置必要的权限 我尝试这样的代码 String account Path
  • 关闭 UIScrollView 中的键盘

    好吧 我有几个UITextFields and UITextViews里面一个UIScrollView 我想将键盘设置为消失scrollview被触摸或滚动 当然 当您触摸文本字段 视图内时除外 我目前的尝试是替换UIScrollView与
  • 如何使用 PDO 从 MySQL 获取数字类型?

    我正在使用 PDO 和 MySQL 由于某种原因 当从数据库获取 int 类型的值时 PDOStatement 返回数字的字符串表示形式 而不是数字类型的值 我该如何防止这种情况发生 我注意到 PDO 类有一个属性 PDO ATTR STR
  • jSoup 从 类获取文本

    我有一部分 HTML 文件 格式如下 h6 class uiStreamMessage span class messageBody Welcome span h6 在该文件中 还有其他跨度类 但我只想获取所有 messageBody 范围
  • Castle Windsor 或 Spring.NET - 优点和缺点 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在android中比较两个图像

    在我的应用程序中 我想使用相机捕获两个图像 然后我想比较这些图像 那么 如何比较两个图像呢 编辑 比较第一幅图像与第二幅图像的像素到像素完全相同 谢谢 1 检查高度是否匹配 如果不匹配则返回 false 然后 检查宽度是否匹配 如果不匹配
  • 如何获取从现在到未来时间的月数、周数、天数和小时数?

    我需要使用 Java 找出从现在到未来时间还剩多少月 周 天和小时 我不能使用像 Joda 这样的第三方库 我怎样才能只使用 JDK 类来做到这一点 到目前为止 这就是我想到的 除了某些情况之外 它有点有效 public class Dat
  • Hadoop 构建在 Windows 中失败:native.sln 中缺少 zconf.h?

    我正在尝试在使用 Windows 10 家庭版的开发计算机上构建以下 hadoop 版本 hadoop 2 7 3 src 以下是我本地开发环境的详细信息 Windows 10家庭版 英特尔酷睿 i5 6200U CPU 2 30GHz 内
  • 在某些 Android 设备中,Cordova 不会根据请求发送来源

    这是在某些 Android 设备上发生的问题 我有一个Samsung Galaxy A5 2017 与谷歌Chrome version 76 0 3809 89和 Android 版本 8 0 0 当我第一次在此设备上部署 Cordova
  • PopupMenuItem Click 和 MouseOver 的区别

    当菜单项有一个子菜单时 鼠标悬停在展开子菜单时会触发单击事件 这个点击事件和用户实际点击有什么区别吗 我使用 TPopupMenu 作为 cxButton 的下拉属性 EDIT德尔福2007 不确定这是否适用于 D2007 在 D7 中也是