我正试图找到一种方法来使用我的第二种形式作为我的第一种形式的组件(例如TLabel)的提示窗口。
目前,我正在探索使用THintWindow
和HintWindowClass
,但无法直接将TForm
分配给HintWindowClass
。到目前为止我看到的一些例子使用TBitmap
,然后在THintWindow.Canvas
上绘制,这也不错,但我还是想使用某种集成的自动机制。
我想到的另一个解决方案是使用上述Tlabel的OnMouseEnter
,OnMouseMove
和OnMouseLeave
事件手动实现此功能。
如果确实有办法将TForm
“分配”给HintWindowClass
,我想问一下是否有人可以提供说明这一点的代码段。感谢。
答案 0 :(得分:12)
THintWindow
是TCustomControl
的后代。 TForm
不是这两个类的后代,因此您无法将任何TForm
类分配给HintWindowClass
。提示窗口需要从THintWindow
下降。您可以在表格上放置任何内容,也可以放在THintWindow
上。您只需手动实例化它并指定其Parent
属性即可显示它。
最接近你可以“直观地”设计提示窗口的是设计一个框架。让您的THintWindow
后代创建一个框架实例,然后覆盖ActivateHint
(和ActivateHintData
,如果您需要数据)将提示文本和所需大小转发到您的框架。< / p>