有没有办法确定我点击了哪个气球

  • 本文关键字:气球 有没有 delphi balloon
  • 更新时间 :
  • 英文 :


我正在Delphi中编写一个程序,该程序在气球中显示新信息。

有没有办法确定我点击了哪个气球?

像这样:

sendername := 'Gert'; 
TrayIcon1.Visible := True;
TrayIcon1.BalloonHint := 'You got a new message from '+sendername+'!';
TrayIcon1.ShowBalloonHint;

sendername := 'Peter'; 
TrayIcon1.Visible := True;
TrayIcon1.BalloonHint := 'You got a new message from '+sendername+'!';
TrayIcon1.ShowBalloonHint;

现在,我想在BalloonClick事件中显示相关的字母,但我如何确定单击了哪个字母?

您的问题似乎意味着单个TTrayIcon组件可以显示多个气球。事实并非如此。只有一个引出序号,该引出序号的文本将包含您上次指定给BalloonHint的内容。

因此,在您的情况下,sendername变量将包含气球中当前显示的名称。

每个纸盘图标只有一个气球,因此您无法告诉单击了哪个气球

您可以通过利用所有VCL控件共享的Tag属性来实现您的要求。

sendername := 'Gert'; 
TrayIcon1.Tag := 1;
TrayIcon1.Visible := True;
TrayIcon1.BalloonHint := 'You got a new message from '+sendername+'!';
TrayIcon1.ShowBalloonHint;
sendername := 'Peter'; 
TrayIcon1.Tag := 2;
TrayIcon1.Visible := True;
TrayIcon1.BalloonHint := 'You got a new message from '+sendername+'!';
TrayIcon1.ShowBalloonHint;

现在在TTrayIcon中。OnBalloonClick事件:

case TrayIcon1.Tag of
1: // Gert was the sendername
2: // Peter was the sendername
else
// Catch any where you forgot to set the tag
ShowMessage('Unknown sendername. BallooonHint: ' + TrayIcon1.BalloonHint);
end;
TrayIcon1.Tag := 0;  // Reset tag to 0 when finished

相关内容

  • 没有找到相关文章

最新更新