优秀的编程知识分享平台

网站首页 > 技术文章 正文

Lazarus中托盘应用开发 托盘的应用分析

nanyue 2024-12-16 15:09:00 技术文章 7 ℃

在应用开发中,我们经常会遇到开发类似 Windows 服务的应用程序,比如:需要开启一个服务,如果仅仅开发服务,用户在使用时不清楚这个服务是否已经运行,此时,我们可以将这个应用开发为托盘应用,当程序运行时,在任务栏上的托盘区域显示一个托盘,这样,对于用户更加友好。

本文实现的托盘应用同样适用于 Delphi 和 CodeTyphon。我们以示例来说明托盘应用的开发。

示例:实现一个托盘应用,打开应用程序后,在系统托盘区显示一个托盘图标,右击托盘图标的菜单如下:

显示 - 显示主窗口

退出 - 退出应用程序

当用户单击应用程序的关闭按钮时,将应用程序最小化到托盘。

首先,创建一个应用程序项目。

然后在应用程序的窗体上添加一个 TPopupMenu 组件,其 Name 属性为:TrayPopupMenu,编辑菜单如下图:

在应用程序窗体上添加一个 TTrayIcon 组件,其 Name 属性设置为:MainTrayIcon。

编写应用程序代码:

1.窗体的 OnShow 事件代码

procedure TMainForm.FormShow(Sender: TObject);
begin
  MainTrayIcon.Icon.LoadFromFile('Sun.ico');
  MainTrayIcon.ShowIcon:= True;
  MainTrayIcon.Hint:='Test Tray';

  MainTrayIcon.PopUpMenu := TrayPopupMenu;

  MainTrayIcon.Show;
end; 

当窗体创建或显示时,初始化 TTrayIcon 组件。

2.菜单事件

显示:

procedure TMainForm.DisplayMenuItemClick(Sender: TObject);
begin
  // 显示
  Show;
end; 

退出:

procedure TMainForm.QuitMenuItemClick(Sender: TObject);
begin
  // 退出
  Close;
  Application.Terminate;
end;  

3.实现单击应用程序的关闭按钮时,将应用程序最小化到托盘。

在窗体的 OnClose 事件中编写代码如下:

procedure TMainForm.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
  CloseAction := caNone;
  Hide;
end;



最近发表
标签列表