如何为特定控件创建自己的自定义提示?

zig*_*zig 2 delphi delphi-7

我需要为特定控件(而不是整个应用程序)创建一个自定义提示窗口(具有它自己的颜色和布局)

提示文本本身不会连接到该特定Hint属性控件.

正如我所建议的那样,我写了一个处理程序CM_HINTSHOW(如果控件具有这个功能ShowHint=True):

procedure TMyControl.CMHintShow(var Message: TMessage);
begin
  Form1.caption := 'x';
  // Here I will display my own Hint window 
  // inherited;
end;
Run Code Online (Sandbox Code Playgroud)

但现在,当提示超时时,我怎么知道何时/何处隐藏它?既没有CM_HINTSHOWCM_HINTSHOWPAUSE给我这个信息.

Rem*_*eau 6

CM_HINTSHOW消息处理程序中,您可以将lParam值强制转换为PHintInfo指针,然后根据需要自定义其字段.例如,要简单地更改背景颜色,请设置THintInfo.HintColor字段.要更改提示的布局,可以从中派生新类THintWindow并将该类类型分配给该THintInfo.HintWindowClass字段.

让VCL为您管理提示,包括显示和隐藏它.