5

我正在尝试找到一种方法,将我的第二种形式用作第一种形式中组件(例如 TLabel)的提示窗口。

目前,我正在探索 and 的使用THintWindowHintWindowClass但无法直接将 a 分配TFormHintWindowClass。到目前为止,我看到的一些示例使用 aTBitmap然后在 上绘制THintWindow.Canvas,这还不错,但我仍然想使用某种集成的自动机制。

我想到的另一个解决方案是使用OnMouseEnter,OnMouseMoveOnMouseLeave所述 Tlabel 的事件手动实现此功能。

如果实际上有一种方法可以将 a “分配”TFormHintWindowClass,我想问是否有人可以提供一个代码片段来说明这一点。谢谢。

4

1 回答 1

12

THintWindow是 的后代TCustomControlTForm不是这些类的后代,因此您不能将任何TForm类分配给HintWindowClass. 提示窗口需要从THintWindow. 任何可以放在表格上的东西,也可以放在THintWindow. 您只需要手动实例化它并分配其Parent属性以使其显示。

最接近“视觉”设计提示窗口的方式可能是设计一个框架。让您的THintWindow后代创建框架的实例,然后覆盖ActivateHint(并且ActivateHintData,如果您需要数据)以将提示文本和所需大小转发到您的框架。

于 2011-01-27T15:11:01.150 回答