unit Unit1;
托盘的实现(转)
托盘的实现(转)interface
托盘的实现(转)
托盘的实现(转)uses
托盘的实现(转)  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, shellapi, 
//ADD shellapi  
托盘的实现(转)
托盘的实现(转)  AppEvnts, ImgList, Menus;
托盘的实现(转)
const   
托盘的实现(转)  ghy_tray
=wm_user+2;     
托盘的实现(转)
type
托盘的实现(转)  TForm1 
= class(TForm)
托盘的实现(转)    ApplicationEvents1: TApplicationEvents;      
托盘的实现(转)    ImageList1: TImageList;                      
托盘的实现(转)    PopupMenu1: TPopupMenu;                      
托盘的实现(转)    N1: TMenuItem;                               
托盘的实现(转)    N2: TMenuItem;                               
托盘的实现(转)    N3: TMenuItem;                               
托盘的实现(转)    
procedure ApplicationEvents1Minimize(Sender: TObject);  
托盘的实现(转)    
procedure FormClose(Sender: TObject; var Action: TCloseAction);
托盘的实现(转)    
procedure N1Click(Sender: TObject);
托盘的实现(转)    
procedure N2Click(Sender: TObject);
托盘的实现(转)    
procedure N3Click(Sender: TObject);
托盘的实现(转)    
procedure FormCreate(Sender: TObject);
托盘的实现(转)  private
托盘的实现(转)    
{ Private declarations }
托盘的实现(转)    
procedure   WMSysCommand(var   msg:   TMessage);message   wm_syscommand;    
托盘的实现(转)  public
托盘的实现(转)    
{ Public declarations }
托盘的实现(转)    
procedure   mytray(var   Msg:   TMessage);   message   ghy_tray;            
托盘的实现(转)    
procedure BeforeRestore;
托盘的实现(转)  
end;
托盘的实现(转)
托盘的实现(转)
var
托盘的实现(转)  Form1: TForm1;
托盘的实现(转)  
托盘的实现(转)  tray1,tray2:TNotifyIconData;      
托盘的实现(转)  ico1,ico2:ticon;                  
托盘的实现(转)  tags:boolean;                     
托盘的实现(转)implementation
托盘的实现(转)
托盘的实现(转)
{$R *.DFM}
托盘的实现(转)
托盘的实现(转)
procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
托盘的实现(转)
begin   
托盘的实现(转)  tags:
=false;   
托盘的实现(转)  ShowWindow(Application.Handle,SW_HIDE);   
托盘的实现(转)
托盘的实现(转)  tray2.cbSize:
=sizeof(tray2);   
托盘的实现(转)  tray2.Wnd:
=form1.Handle;   
托盘的实现(转)  tray2.uID:
=0;   
托盘的实现(转)  tray2.uFlags:
=NIF_ICON   or   NIF_TIP   or   NIF_MESSAGE;   
托盘的实现(转)  tray2.uCallbackMessage:
=ghy_tray;   
托盘的实现(转)  tray2.hIcon:
=ico2.Handle;   
托盘的实现(转)  tray2.szTip:
='我的托盘程序';
托盘的实现(转)  
if   not   Shell_NotifyIcon(NIM_modify,@tray2)   then   
托盘的实现(转)  
begin   
托盘的实现(转)    ShowMessage(
'no');   
托盘的实现(转)  
end;   
托盘的实现(转)
end;   
托盘的实现(转)
托盘的实现(转)
procedure TForm1.BeforeRestore;
托盘的实现(转)
begin
托盘的实现(转)  tags:
=true;
托盘的实现(转)  ShowWindow(Application.Handle,SW_SHOW);
托盘的实现(转)
托盘的实现(转)  ico1:
=ticon.Create;
托盘的实现(转)  ico2:
=ticon.create;
托盘的实现(转)  imagelist1.GetIcon(
0,ico1);
托盘的实现(转)  imagelist1.geticon(
1,ico2);
托盘的实现(转)  tray1.cbSize:
=sizeof(tray1);
托盘的实现(转)  tray1.Wnd:
=form1.Handle;
托盘的实现(转)  tray1.uID:
=0;
托盘的实现(转)  tray1.uFlags:
=NIF_ICON   or   NIF_TIP   or   NIF_MESSAGE;
托盘的实现(转)  tray1.uCallbackMessage:
=ghy_tray;
托盘的实现(转)  tray1.hIcon:
=ico1.Handle;
托盘的实现(转)  tray1.szTip:
='我的托盘程序';
托盘的实现(转)  
if   not   Shell_NotifyIcon(NIM_modify,@tray1)   then
托盘的实现(转)  
begin
托盘的实现(转)    ShowMessage(
'no');
托盘的实现(转)  
end;
托盘的实现(转)
end;
托盘的实现(转)
托盘的实现(转)
procedure TForm1.mytray(var Msg: TMessage);
托盘的实现(转)
var   
托盘的实现(转)  pt:tpoint;   
托盘的实现(转)
begin
托盘的实现(转)  GetCursorPos(pt);   
托盘的实现(转)    
托盘的实现(转)  
case   msg.lParam   of
托盘的实现(转)  
托盘的实现(转)  WM_LBUTTONDOWN:
托盘的实现(转)  
begin   
托盘的实现(转)    
//鼠标左键被按下
托盘的实现(转)    
if   tags=true   then
托盘的实现(转)    
begin
托盘的实现(转)      application.Minimize;
托盘的实现(转)      form1.Hide;
托盘的实现(转)    
end
托盘的实现(转)    
else
托盘的实现(转)    
begin
托盘的实现(转)      BeforeRestore;
托盘的实现(转)      application.Restore;
托盘的实现(转)    
end;   
托盘的实现(转)  
end;   
托盘的实现(转)    
托盘的实现(转)  WM_LBUTTONUP:   
托盘的实现(转)  
begin   
托盘的实现(转)    
//释放鼠标左键
托盘的实现(转)  
end;
托盘的实现(转)   
托盘的实现(转)  wm_rbuttondown:   
托盘的实现(转)  
begin   
托盘的实现(转)    
//鼠标右键被按下   
托盘的实现(转)    SetForegroundWindow(Form1.Handle);
托盘的实现(转)    form1.PopupMenu1.Popup(pt.x,pt.y);
托盘的实现(转)  
end
托盘的实现(转)     
托盘的实现(转)  
else//调用父类的WndProc方法处理其它消息   
托盘的实现(转)    inherited;   
托盘的实现(转)  
end;
托盘的实现(转)
end;
托盘的实现(转)
托盘的实现(转)
procedure TForm1.WMSysCommand(var msg: TMessage);
托盘的实现(转)
begin
托盘的实现(转)  
if   msg.WParam   =   SC_MINIMIZE   then   
托盘的实现(转)  
begin   
托盘的实现(转)    showwindow(application.handle,sw_hide);
托盘的实现(转)    inherited;
托盘的实现(转)  
end
托盘的实现(转)  
else
托盘的实现(转)    inherited;   
托盘的实现(转)
end;
托盘的实现(转)
托盘的实现(转)
procedure TForm1.FormCreate(Sender: TObject);
托盘的实现(转)
begin
托盘的实现(转)  tags:
=true;   
托盘的实现(转)  ShowWindow(Application.Handle,SW_HIDE);
托盘的实现(转)
托盘的实现(转)  ico1:
=ticon.Create;   
托盘的实现(转)  ico2:
=ticon.create;   
托盘的实现(转)  imagelist1.GetIcon(
0,ico1);   
托盘的实现(转)  imagelist1.geticon(
1,ico2);   
托盘的实现(转)  tray1.cbSize:
=sizeof(tray1);   
托盘的实现(转)  tray1.Wnd:
=form1.Handle;   
托盘的实现(转)  tray1.uID:
=0;   
托盘的实现(转)  tray1.uFlags:
=NIF_ICON   or   NIF_TIP   or   NIF_MESSAGE;   
托盘的实现(转)  tray1.uCallbackMessage:
=ghy_tray;   
托盘的实现(转)  tray1.hIcon:
=ico1.Handle;   
托盘的实现(转)  tray1.szTip:
='我的托盘程序';
托盘的实现(转)  
if   not   Shell_NotifyIcon(NIM_ADD,@tray1)   then   
托盘的实现(转)  
begin   
托盘的实现(转)    ShowMessage(
'no');   
托盘的实现(转)  
end;
托盘的实现(转)
end;
托盘的实现(转)
托盘的实现(转)
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
托盘的实现(转)
begin   
托盘的实现(转)  ico1:
=ticon.Create;   
托盘的实现(转)  ico2:
=ticon.create;   
托盘的实现(转)  imagelist1.GetIcon(
0,ico1);   
托盘的实现(转)  imagelist1.geticon(
1,ico2);   
托盘的实现(转)  tray1.cbSize:
=sizeof(tray1);   
托盘的实现(转)  tray1.Wnd:
=form1.Handle;   
托盘的实现(转)  tray1.uID:
=0;   
托盘的实现(转)  tray1.uFlags:
=NIF_ICON   or   NIF_TIP   or   NIF_MESSAGE;   
托盘的实现(转)  tray1.uCallbackMessage:
=ghy_tray;   
托盘的实现(转)  tray1.hIcon:
=ico1.Handle;
托盘的实现(转)  tray1.szTip:
='我的托盘程序';
托盘的实现(转)  
if not Shell_NotifyIcon(NIM_delete,@tray1)   then   
托盘的实现(转)  
begin   
托盘的实现(转)    ShowMessage(
'no');
托盘的实现(转)  
end;
托盘的实现(转)
end;
托盘的实现(转)
托盘的实现(转)
procedure TForm1.N1Click(Sender: TObject);
托盘的实现(转)
begin
托盘的实现(转)  showmessage(
'you   click   open');
托盘的实现(转)
end;
托盘的实现(转)
托盘的实现(转)
procedure TForm1.N2Click(Sender: TObject);
托盘的实现(转)
begin
托盘的实现(转)  showmessage(
'you   click   save');
托盘的实现(转)
end;
托盘的实现(转)
托盘的实现(转)
procedure TForm1.N3Click(Sender: TObject);
托盘的实现(转)
begin
托盘的实现(转)  showmessage(
'you   click   saveas');   
托盘的实现(转)
end;
托盘的实现(转)
托盘的实现(转)
托盘的实现(转)
托盘的实现(转)
托盘的实现(转)
end.

 

http://www.cnblogs.com/safezone/articles/1260888.html

相关文章:

  • 2021-08-12
  • 2021-07-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2023-02-02
  • 2022-02-03
猜你喜欢
  • 2022-12-23
  • 2021-11-25
  • 2022-01-16
  • 2022-12-23
  • 2021-05-26
相关资源
相似解决方案