现在的位置: 首页 > 综合 > 正文

Delphi 系统托盘 TrayIcon(1)

2018年05月27日 ⁄ 综合 ⁄ 共 2000字 ⁄ 字号 评论关闭

TTrayIcon 的主要属性: 
          TrayIcon.Icon
指定托盘图标, 有几种用法:
1、设计时选择; 
2、把一个 TIcon 对象给它;
3、使用当前程序图标: TrayIcon1.Icon := Application.Icon;
4、TrayIcon1.SetDefaultIcon; 这也是使用当前程序图标. 
 

TrayIcon.Icons
TrayIcon1.IconIndex
TrayIcon.Icons 对应一个 TImageList, 用 TrayIcon.IconIndex 来指定使用 TImageList 中的第一个图标.
这结合 TrayIcon 的其他功能做出图标动画都没有问题. 
       TrayIcon.PopupMenu
TrayIcon.PopupMenu 对应一个 TPopupMenu, 托盘图标一般少不了右键菜单.

TrayIcon.Visible
隐藏或显示系统托盘的图标; 虽简单、但关键, 因默认是 False. 
       TrayIcon.Hint
随鼠标指针的提示文本, 这是老式的, 下面有新型的.

   TrayIcon.BalloonHint、BalloonTitle、BalloonFlags、BalloonTimeout
这都是新型的 Hint 相关的.
TrayIcon.BalloonHint: Hint 文本
TrayIcon.BalloonTitle: Hint 标题
TrayIcon.BalloonFlags: Hint 图标样式
TrayIcon.BalloonTimeout: Hint 停留时间
需要用 TrayIcon 的 ShowBalloonHint 方法启动显示

TrayIcon.Animate
TrayIcon1.AnimateInterval
TrayIcon 的新 Hint(BalloonHint)可设定动画.
TrayIcon.Animate: 这决定是否启用动画
TrayIcon1.AnimateInterval: 动画间隔时间

TTrayIcon 的主要事件:

OnAnimate: 写动画代码的事件
OnBalloonClick: 点击 BalloonHint 时...
OnClick: 单击图标时...
OnDblClick
OnMouseDown
OnMouseMove
OnMouseUp

TTrayIcon 还有两个方法, 前面都已提到了:
TTrayIcon.SetDefaultIcon;
TTrayIcon.ShowBalloonHint;

    1 . TTrayIcon 。该控件是用于在托盘中显示自己软件的图标。使用 TTrayIcon 控件可以很容易的实现“动态图标”及“气泡提示”功能。如下图所示:

    托盘显示

    ( 1 )“气泡提示”的制作

    第一步:在窗体中放置 TrayIcon 控件( Additional 面板中可以找到)。

    第二步:设置 TrayIcon 的 Icon 图标,载入一个 ICO 文件。

    第三步:设置 TrayIcon 的 BalloonHint 为“ Delphi 2006 高级控件应用”,设置 BalloonTitle 为“电脑报 2005 年合订本”。设置 Visible 为 True 。

    第四步:双击窗体,在 OnCreate 事件中写入下面代码: TrayIcon1.ShowBalloonHint;

    好了, F9 运行程序,一个“气泡提示”就会出现在图标上。属性中的 BalloonTimeout 是设置“气泡提示”多少秒后消失,默认是 3 秒。

    ( 2 )动态图标

    我们大家都知道,当有 QQ 消息时,托盘中会有一个闪烁图标,使用 TrayIcon 控件可以非常容易地实现这个功能。

    使图标动起来,其实就是使用多个图标进行切换。QQ 的闪烁图标,其实就是使用的两个图标来进行切换的,一个是头像图标,一个是空的图标。

    下面我们就来模拟 QQ 头像闪烁功能:

    第一步:在窗体上放置 ImageList 控件(在 Win32 面板中可以找到)。

    第二步:设置 ImageList 控件的 Width 和 Height 属性为 32 ,然后双击 ImageList ,点击“ Add ”按钮添加图标文件。第一个添加的是要显示的图标,第二个添加一个空的图标(可以使用 Image Editor 新建一个 ICO 文件,然后直接保存即可得到一个空的图标。)。

    第三步:设置 TrayIcon 的 Icons 属性为 ImageList1 (可以直接在列表中选择)。

    第四步:在 Form1 的 OnFormShow 事件中加入下面的代码:

    TrayIcon1.Animate := True;

    TrayIcon1.AnimateInterval := 450;

    当 Animate 为 True 时,将自动按 ImageList 控件中图标的顺序进行依次显示,形成动态效果。 AnimateInterval 为每隔多少时间显示下一个图标。如果要停止闪烁,将 Animate 设置为 False 即可。

抱歉!评论已关闭.