创建自定义提示窗口

Lig*_*ulb 5 delphi hints

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

目前,我正在探索使用THintWindowHintWindowClass,但它不可能直接分配TFormHintWindowClass.到目前为止我看到的一些例子使用的TBitmap是然后绘制的THintWindow.Canvas,这也不错,但我还是想使用某种集成的自动机制.

掠过我脑海的另一个解决方案是使用手动实现这个功能OnMouseEnter,OnMouseMove而且OnMouseLeave上述的TLabel的事件.

如果确实有一种方法可以"分配" TFormHintWindowClass,我想问一下是否有人可以提供说明这一点的代码片段.谢谢.

Rob*_*edy 12

THintWindow是...的后代TCustomControl.TForm不是这两个类的后代,所以你不能分配任何TFormHintWindowClass.提示窗口需要下降THintWindow.您可以放在表格上的任何东西THintWindow.您只需手动实例化它并指定其Parent属性以使其显示.

你可以在"视觉上"设计一个提示窗口的最接近的是设计一个框架.让你的THintWindow后代创建一个框架的实例,然后覆盖ActivateHint(ActivateHintData如果你需要数据),将提示文本和所需的大小转发到你的框架.

  • 它有点hacky,但你可以将你想要用的形式作为提示放在一个从`THintWindow`派生的容器中.你可以设置`Form.Parent:= HintWindowContainer; Form.Align:= alClient;` (3认同)