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

时间:2014-11-10 15:01:53

标签: 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;

但现在,当提示超时时,我怎么知道隐藏的时间/地点? CM_HINTSHOWCM_HINTSHOWPAUSE都没有给我这个信息。

1 个答案:

答案 0 :(得分:6)

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

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