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

7cwmlq89  于 2022-09-21  发布在  其他
关注(0)|答案(1)|浏览(204)

这是我第一次使用气球提示。我使用的是Delphi 2010。

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

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

在下面的序列中,在步骤3中,按钮的提示文本显示为气球文本上的标题,就好像有一个竖线字符...

步骤1:调用ShowHint。该提示正确地出现,然后正确地消失。

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

第三步:再次调用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;

和我的按钮的DFM:

object btnOpenFile: TBitBtn
  Hint = 'Click this button to open'
  CustomHint = BalloonHint1
  ShowHint = True
end
ctrmrzij

ctrmrzij1#

如果您显式地将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;

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

相关问题