0

我们正在使用修改后的TToolWindow97 = class(TCustomControl)组件。

在此处输入图像描述

我只能找到它TForm.Components。并且没有它TForm.Controls。所以, TForm.ActiveControlis nil 和TToolWindow97.Focused = FalsewhenTToolWindow97是专注的。我需要知道它什么时候集中。

我还试图在TToolWindow97. 但他们都回来了Focused = False

当属性总是返回时,如何确定TToolWindow97(继承自TCustomControl)是否集中?FocusedFalse

PSTToolWindow97窗口在图像上有阴影。只有聚焦TToolWindow97的窗口才有它 - 所以焦点存在。我可以将任何控制集中在它上面。但他们都回来了Focused = False。我不知道为什么。

非常感谢您的帮助!

4

2 回答 2

4

工具栏按钮没有焦点。在图像中,很明显网格控件具有焦点——它有一个虚线焦点矩形,并且单元格以焦点颜色突出显示。

用鼠标指向带有阴影图像的“15”按钮。它处于“悬停”或“热”状态,而不是“焦点”状态。代码中状态名称为bsMouseIn,存储在FState字段中;该字段具有受保护的可见性,并且不会通过任何公共属性或方法公开。您可能对OnMouseEnterOnMouseExit事件感兴趣。

工具栏按钮很少获得焦点。它们只能用鼠标操作。要使用键盘操作它们,您应该按下它们关联的快捷键组合。特定的按钮控件TToolbarButton97绝对不会获得焦点,因为它来自TGraphicControl

于 2013-04-01T20:41:19.937 回答
0

1)。当 TBToolWindow 获得焦点而不是焦点时扫描以下句柄:

        aHandle := (Sender as TForm).Handle;
        aHandle := aVisible.Handle;
        aHandle := GetForegroundWindow;
        aHandle := GetActiveWindow;
        aHandle := Screen.ActiveForm.Handle;
        aHandle := Application.ActiveFormHandle;

因此,区别仅在于 Screen.ActiveForm.Handle。

2)。安装微软间谍。

3)。将 Screen.ActiveForm.Handle 转换为 HEX 并在 Spy 上找到它们。

4)。看课。因此,当 TTBToolWindow 聚焦时,aHandle 的类是 TBFloatingWindowParent。

5)。编写代码通过 TBFloatingWindowParent 控件寻找正确的活动浮动窗口(TTBToolWindow)。

于 2013-04-03T15:03:33.343 回答