如何获取表单上的光标位置?

Posted

技术标签:

【中文标题】如何获取表单上的光标位置?【英文标题】:How can I get cursor position on the form? 【发布时间】:2011-08-09 05:10:41 【问题描述】:

我需要获取表单上的光标位置,我该怎么做?

【问题讨论】:

【参考方案1】:

Mouse.CursorPos 传递给TForm.ScreenToClient()

Mouse.CursorPos 在屏幕坐标系中返回。 TForm.ScreenToClient() 将点转换为表单的客户端坐标系。

事实上,所有 TControl 后代都提供 ScreenToClient() 方法及其逆方法 ClientToScreen(),用于在坐标系之间进行转换。

【讨论】:

您可以使用CalcCursorPos 方法缩短它,该方法在定义TForm 后代的单元中变为不受保护。这种方法甚至在 Delphi 7 中也存在... 我需要在uses中加入什么单位才能让编译器知道鼠标? @Guido 我刚刚进行了网络搜索以找出答案。或者您可以只搜索 VCL 源代码。而不是告诉你我会让你做其中之一。 好吧,如果我可以通过网络搜索轻松找到它,我就不会在这里问了。该文档提到了很多明显的东西,但没有提到您需要添加到您的使用中的内容。没有什么私人的,但我在网上看到很多答案和例子,忘记提到一些让人们无法使用它的琐碎事情。我只是想提一下这个,如果我不介意的话。晚上好,先生 @guido 我不知道,但我通过网络搜索立即找到了它。在tuor搜索中包含关键字delphi和docwiki,您也会找到它。

以上是关于如何获取表单上的光标位置?的主要内容,如果未能解决你的问题,请参考以下文章

Delphi如何在控件上获取光标位置?

在 iText 7 中编写文档时如何获取垂直光标位置?

如何获取光标:嵌入对象上的指针?

如何在 Qt 中获取鼠标在屏幕上的位置?

如何获取光标在指定窗口内的具体位置

如何从 GWT 中的 RichTextArea 获取光标位置或位置?