Delphi 2010中的BalloonHint.ShowHint获得控件的提示作为标题

Rob*_*ank 0 delphi

这是我第一次使用BalloonHints.我正在使用Delphi 2010.

我不确定我是否正确使用提示,因为在下面的场景中,我得到了两次相同文本的提示:一次作为标题,一次作为正文.我已经挣扎了一段时间,这里也提到了其他帖子,Delphi的帮助,以及Cantu在D2009手册中的例子.

如果检测到用户需要单击按钮,我希望我的代码弹出一个提示.然后我想要显示相同的提示,如果用户稍后将鼠标悬停在按钮上.

按照以下顺序,在步骤3中,按钮的提示文本显示为气球文本上的标题,就好像有一个管道符...

第1步:调用ShowHint.提示正确显示,然后正常消失.

第2步:用户将鼠标移到按钮上.按钮的提示正确显示.

第3步:再次调用ShowHint.出现的提示具有来自气球提示的描述中的正确文本,但它具有来自按钮的标题.

Procedure TForm.ShowHintIfNeeded.
var
  Pt: TPoint;
begin
  if fNeedFileName then
  begin
    BalloonHint1.Description := 'Click this button to open';
    Pt.X := btnOpenFile.Width Div 2;
    Pt.Y := 0;
    BalloonHint1.ShowHint(btnOpenFile.ClientToScreen(Pt));
  end;
end;
Run Code Online (Sandbox Code Playgroud)

和我的按钮的dfm:

object btnOpenFile: TBitBtn
  Hint = 'Click this button to open'
  CustomHint = BalloonHint1
  ShowHint = True
end
Run Code Online (Sandbox Code Playgroud)

AJ.*_*AJ. 5

如果您明确将BaloonHint1.Title设置为空,例如:

Procedure TForm.ShowHintIfNeeded.
var
  Pt: TPoint;
begin
  if fNeedFileName then
  begin
    BalloonHint1.Title := ''; 
    BalloonHint1.Description := 'Click this button to open';
    Pt.X := btnOpenFile.Width Div 2;
    Pt.Y := 0;
    BalloonHint1.ShowHint(btnOpenFile.ClientToScreen(Pt));
  end;
end;
Run Code Online (Sandbox Code Playgroud)

这是否仍然将标题显示为按钮中的文本?