delphi - 为什么 D2010 中鼠标未移动时 OnMouseMove 会重复触发?

标签 delphi event-handling delphi-2010 onmousemove

我正在将 Delphi 5 应用程序移植到 D2010,但遇到了一些问题。一种形式是带有 OnMouseMove 事件的 TImage 组件,只要鼠标在图像上移动,该事件就会更新标签。这在原来的应用程序中工作得很好,但现在只要鼠标悬停在图像上,无论图像是否移动,OnMouseMove 事件就会不断触发,这会导致标签可怕地闪烁。

有谁知道是什么原因造成的以及如何解决它?

最佳答案

我的心灵调试感觉告诉我,您在 Windows 上,标签是一个工具提示窗口,并且您每次鼠标移动都会更新。

说实话,当我们切换到 Vista 时,我在工具提示窗口中看到了这一点。似乎更新版本的 Windows 工具提示窗口在更新时会以某种方式生成 WM_MOUSEMOVE 消息。我能找到的唯一解决办法是仅在文本实际更改时更新标签。

所以,如果你不在 Windows 上,请忽略我。但如果您使用的是 Windows,请尝试仅在标签文本实际发生更改时更新它。

关于delphi - 为什么 D2010 中鼠标未移动时 OnMouseMove 会重复触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1986872/

相关文章:

android - Firemonkey Mobile 中的从右到左的双向语言

javascript - jQuery Mobile 的后退按钮似乎在页面之间传递缓存数据

delphi - 可以从 ansistring 中删除 unicode 或 UTF8 字符吗?

arrays - 如何在 Delphi 中将一个数组 append 到另​​一个相同类型的数组?

delphi - 使用 DeHL 集合库中的 THashSet 时出错

delphi - 在Delphi中使用REST请求

delphi - DataSnap 使用 AutoInc 键并仅在插入后刷新当前记录

c# - 阻止代码并等待事件处理程序触发?

javascript - Safari 文本框不接受任何输入

delphi - 帮助更好的复选框逻辑