Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi-从应用程序的另一个控件激活提示_Delphi - Fatal编程技术网

Delphi-从应用程序的另一个控件激活提示

Delphi-从应用程序的另一个控件激活提示,delphi,Delphi,我试图在焦点时激活delphi创建的不同应用程序控件的提示,我使用钩子识别焦点控件,然后使用WM_MOUSEMOVE,我认为它将激活该控件的提示,句柄将是控件本身,lParam是控件的左侧和顶部。该控件激活OnMouseMove事件,但提示从未显示。但是当我使用SetCursorPos时,提示显示,但是我需要显示提示,而不让光标在该控件上移动。你能帮我做这个吗?提前谢谢你。。。顺便说一句,我正在使用Delphi XE4以编程方式显示提示,您需要调用TApplications ActivateHi

我试图在焦点时激活delphi创建的不同应用程序控件的提示,我使用钩子识别焦点控件,然后使用WM_MOUSEMOVE,我认为它将激活该控件的提示,句柄将是控件本身,lParam是控件的左侧和顶部。该控件激活OnMouseMove事件,但提示从未显示。但是当我使用SetCursorPos时,提示显示,但是我需要显示提示,而不让光标在该控件上移动。你能帮我做这个吗?提前谢谢你。。。顺便说一句,我正在使用Delphi XE4以编程方式显示提示,您需要调用TApplications ActivateHint方法,并为其指定位置参数。

基于位置参数,应用程序自动查找哪个控件位于该位置并显示其提示

注意:以像素为单位定位参数屏幕坐标,而不是控制坐标。因此,您必须使用ClientToScreen方法适当地更改坐标

您可以在此处看到如何使用此功能的简单示例:

现在,如果您需要从另一个应用程序执行此操作,那么您必须在这两个应用程序中添加一些通信机制,以便其中一个可以发送适当的消息,告诉另一个在特定位置显示提示。但这确实需要您能够更改这两个应用程序


编辑:这适用于VCL应用程序,但我不确定它是否适用于FireMonkey应用程序。

在真正被问到的问题中,如何显示驻留在另一个应用程序上的控件的提示(我担心没有钩子,该应用程序无法运行),标题是“Delphi-从应用程序的另一个控件激活提示”

第一个是第一个:这可以在不知道另一个应用程序使用了什么语言的情况下完成,但把它放在这里非常复杂(我不是这种编码方式的专家,我也讨厌那种工作方式的应用程序)

第二:主要的想法是挂接另一个应用程序,在谷歌上搜索该应用程序的一些代码,可以显示鼠标经过的对象的矩形孔正方形,该应用程序在执行操作时被图标化(我不记得它的名称)

这样的应用程序有什么作用:当你在屏幕上移动鼠标时,它会在鼠标所在的控件上覆盖一个矩形,然后如果你按下打印屏幕的键,这个小区域是唯一进入剪贴板的东西;在我看到的这些应用程序中,有一个额外的功能,它们可以移动这样的控件,如果你按下键盘上的光标,也可以隐藏/en能够/禁用这样的控制…更重要的是,它还可以使不可见的控件可见,等等…我看到它在我的计算机上工作,嘿,为了好玩,它很漂亮,在一些应用程序上调试或获取额外的东西也很好(让一些人可见并启用,然后可以使用这样的功能)

请,请理解,我反对盗版,也反对使用此类应用程序让代码运行……有些应用程序需要为允许启用某些菜单付费,但它们有代码,无需更改EXE以拥有/使用该菜单;仅使用此类应用程序就可以使有限的应用程序不受限制(只需启用或显示隐藏菜单,瞧)

注意:要取消隐藏菜单,鼠标点不需要位于应用程序上方,可以在任何位置,并且不移动

我想说的想法是:任何应用程序都可以移动、更改正在运行的任何其他应用程序(至少在Windows上)上的任何控件,所以也许有一种方法可以显示这样的提示

在过去,我曾使用此类应用程序(对不起,我不记得名称)调试我自己的应用程序,因此在错误隐藏某些内容的情况下,我不需要重新编译,也可以使用按钮、标签、文本、组合、备忘录等

现在我的小问题是:我只需要确切的标题所说的,但我不能让它工作

必须是:

  • 鼠标位置必须是无关的(它也必须能够在应用程序之外)
  • 当用键盘(空格键或回车键)按下一个有焦点的按钮时,或者在我的应用程序中某个地方的某个代码之后,我想在短时间内显示特定TEdit的提示
  • 我没有得到要显示的提示;除非鼠标点在这样的TEdit上,但我希望/需要鼠标指针不要在上面,也不要跳到TEdit上

    这个提示的想法是:在做了一些改变某些东西的代码之后,显示相关的额外信息

    例如:

    • 一个使用打开对话框加载文件的按钮,文件名放在一个只读的TEdit上(这样用户就可以复制文本,但不能更改);我想要额外的信息,我可以在上面下注。这种TEdit的提示将在中间显示
    该提示用于不重载窗口,窗口中有许多字段(TLabel)用于显示此类文件数据

    简单的想法:这样的提示显示所选文件的时间戳和大小


    注意:不太相关(因为我尝试使用普通的纯文本提示),但是提示也可以存储完整的HTML页面,并且与第三方工具一起显示为HTMLhint,因此它们可以显示该文件的许多信息(以及其内容等)以基于web的格式;正如我所说,我首先尝试使用标准的纯文本提示。

    这对我来说没有什么意义,我们也不知道您实际上在尝试做什么,以及您如何尝试。您以这种方式问了一系列神秘的问题,每个问题都询问一个未说出的问题的解决方案。我准备打赌您的chosen的解决方案是错误的。问题是什么?嗨,David,问题是如何强制另一个应用程序的控件显示提示,而不使光标在该控件上移动。使用SendMessage,在控件左侧和顶部的lParam上发送WM_MOUSEMOVE。这不是最终的原因。您的程序是什么大卫·费弗南(DavidHeffernan),这与