创建自定义提示窗口

时间:2011-01-27 14:58:49

标签: delphi hints

我正试图找到一种方法来使用我的第二种形式作为我的第一种形式的组件(例如TLabel)的提示窗口。

目前,我正在探索使用THintWindowHintWindowClass,但无法直接将TForm分配给HintWindowClass。到目前为止我看到的一些例子使用TBitmap,然后在THintWindow.Canvas上绘制,这也不错,但我还是想使用某种集成的自动机制。

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

如果确实有办法将TForm“分配”给HintWindowClass,我想问一下是否有人可以提供说明这一点的代码段。感谢。

1 个答案:

答案 0 :(得分:12)

THintWindowTCustomControl的后代。 TForm不是这两个类的后代,因此您无法将任何TForm类分配给HintWindowClass。提示窗口需要从THintWindow下降。您可以在表格上放置任何内容,也可以放在THintWindow上。您只需手动实例化它并指定其Parent属性即可显示它。

最接近你可以“直观地”设计提示窗口的是设计一个框架。让您的THintWindow后代创建一个框架实例,然后覆盖ActivateHint(和ActivateHintData,如果您需要数据)将提示文本和所需大小转发到您的框架。< / p>