纵谈Delphi的系统托盘实现
Author:Insun
Blog:http://yxmhero1989.blog.163.com
From:www.4safer.com
Delphi的系统托盘实现的方法很多。
一般都是这样:利用Shell_NotifyIcon这个API,然后定义下最小化的消息。此函数包含在shellapi里,所以要use。
//SIcon.pas unit SIcon; inte易做图ce uses const WM_NID=wm_user+1000; //定义一个消息常量.系统规定从WM_USER开始为用户自定义消息。 type var implementation {$R *.dfm} procedure TFIcon1.FormCreate(Sender: TObject); with NotifyIcon do procedure TFIcon1.FormDestroy(Sender: TObject); procedure TFIcon1.WMNID(var msg: TMessage);
procedure TFIcon1.N1Click(Sender: TObject); end. |
这个例子里我添加了imagelist方便图标,popupmenu做弹窗,skindata做皮肤美化。
安装第三方控件BusinessSkinForm VCL
{.dpk install
添加VCL页面SkinData组件,active属性改为true
tools--environment options-Library--Library Path找到dpk所在目录--OK
其他组件安装也是类似,出现下面错误基本技术没Library Path
[Fatal Error] Unit1.pas(7): File not found: UWSStartItemPanel.dcu
}
使用 BusinessSkinForm VCL组中的bsTrayIcon控件即可,里面属性自己设置。
Rize的控件也一样,用RzTrayIcon。
介绍CoolTrayIcon这个控件,这个控件有点好。安装CoolTrayIcon_D6plus.dpk ,方法同上。
里面有两个十分必要且有趣的Demo。
CoolTrayTest:
弹出气球提示文字
procedure TMainForm.Button4Click(Sender: TObject);
begin
TrayIcon1.ShowBalloonHint(Balloon hint,
Use the balloon hint to display important information. + #13 +
The text can be max. 255 chars. and the title max. 64 chars.,
bitInfo, 10);//内容随便改啦
end;
有左键弹窗,右键弹出,最小化到托盘,关闭到托盘等多选框。
有各种tray icons,各种动态图标。
动态图标是利用imagelist调用多个图标,然后cycle。
TrayIcon1.IconList := ImageList3;
TrayIcon1.CycleInterval := 300;
TrayIcon1.CycleIcons := True;
再看看
BigHint:
话说这个hint挺撒的,还有一种风格。
具体代码就不贴了,大家自己去看Demo
补充:软件开发 , Delphi ,