⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 delphi编写的托盘显示软件
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,shellapi;

const
icon_id=1; //icon的id标志
MI_ICONEVENT=WM_USER+1; //自定义icon事件
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
       normalicon:ticon;
       procedure InstallIcon;
       procedure UnInstallIcon;
       procedure icononclick(var message:tmessage);
       message MI_ICONEVENT;  //捕捉自定义消息MI_ICONEVENT的过程IconOnClick的声明
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
uses unit2;

procedure TForm1.IconOnClick(var message:TMessage);
//处理鼠标在指示状态栏对应的图标上的单击事件
begin
  //如果按下的是鼠标左键,并且允许显示,则显示Form2 
  if message.lParam=WM_LBUTTONDOWN  then
    Form2.Show;
end;

procedure TForm1.InstallIcon; 
//安装图标 
var 
  IconData:TNotifyIconData;
begin 
  NormalIcon:=TIcon.Create;
   NormalIcon.LoadFromFile('normal.ico'); 
//允许使用状态下的图标 
  IconData.cbSize:=SizeOf(IconData);
  IconData.Wnd:=Handle; 
  IconData.uID:=ICON_ID;
  IconData.uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
  IconData.uCallBackMessage:=MI_ICONEVENT;
  IconData.hIcon:=NormalIcon.Handle;
  IconData.szTip:='给指示状态栏加图标的例程'; 
  //鼠标悬在状态指示栏对应的图标上时的提示信息 
  Shell_NotifyIcon(NIM_ADD,@IconData);
end;


procedure TForm1.UnInstallIcon;
//卸载图标 
var 
  IconData:TNotifyIconData;
begin 
  IconData.cbSize:=SizeOf(IconData); 
  IconData.Wnd:=Handle; 
  IconData.uID:=ICON_ID; 
  Shell_NotifyIcon(NIM_DELETE,@IconData); 
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
InstallIcon;
 ShowWindow(Application.Handle,SW_HIDE);
//隐藏主窗体
  SetWindowLong(Application.Handle,GWL_EXSTYLE	,WS_EX_TOOLWINDOW); //WS_EX_TOOLWINDOW
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnInstallIcon;
  //卸载图标
NormalIcon.Free;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
Form1.width:=0;
Form1.Height:=0;
ShowWindow(Application.Handle,SW_HIDE);
  //隐藏Form1
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -