Cuando los controles TRAYICON delphi, cómo minimizar la ventana a la bandeja del sistema?

Cuando los controles TRAYICON, cómo minimizar la ventana a la bandeja del sistema? 
Al igual que como QQ, se minimiza a un icono en la esquina inferior derecha, haga clic en el icono en la pierna derecha, sino también abrir el formulario. 
¿Cómo debe la propiedad, o incidente? Adelante, tú hermano mayor ...... consejo de doce 

Unidad Unit1;
 interfaz 

utiliza 
Windows, los mensajes, las SysUtils, variantes, las clases, gráficos, controles, las formas, 
los diálogos, StdCtrls, ShellAPI, menús, ExtCtrls; 

const 
WM_TRAYNOTIFY = 10 ; 

del tipo 
TForm1 = clase (TForm ) 
Button1: la TButton; 
PopupMenu1: TPopupMenu; 
Nl: TMenuItem; 
N2 de: TMenuItem; 
el Timer1: TTimer; 
Button2: la TButton; 
de Button3: la TButton; 
Procedimiento la FormCreate (Sender: TObject);
 ProcedimientoFormDestroy (Sender: TObject);
procedimiento Button1Click (Sender: TObject);
procedimiento wmTrayNotify ( var Msg: TMessage); mensaje WM_TRAYNOTIFY;
procedimiento N1Click (Sender: TObject);
procedimiento N2Click (Sender: TObject);
procedimiento FormShow (Sender: TObject);
procedimiento Button2Click (Sender: TObject);
procedimiento Timer1Timer (Sender: TObject);
procedimiento Button3Click (Sender: TObject);
privada 
ChangeFlag: Boolean; 
A: Boolean; 
Icono: TIcon; 
Nid: TNotifyIconData; 
{ Declaraciones privadas } 
pública

{ Declaraciones públicas } 
final ; 

var 
Form1: TForm1; 

aplicación 

{ $ R * .dfm } 

procedimiento TForm1.FormCreate (Sender: TObject);
comenzará 
ChangeFlag: = false; 
A: = True;
{ Nid.cbSize: = sizeof (TNotifyIconData); 
Nid.Wnd: = manija; 
Nid.uID: = 1.000; 
Nid.uFlags: = NIF_MESSAGE o NIF_ICON o NIF_TIP; 
Nid.uCallbackMessage: = WM_TRAYNOTIFY; 
Nid.hIcon: = Application.Icon.Handle; 
Nid.szTip: = '我隐藏在系统托盘里了'; 
Shell_NotifyIcon (NIM_ADD, @ Nid); } 
Icono: = TIcon. Crear; 
Icon.LoadFromFile ( ' C: \ Archivos de programa \ Microsoft Office \ Office11 \ MSN.ICO ' ); 

terminar ; 

procedimiento TForm1.FormDestroy (Sender: TObject);
comenzará 
Shell_NotifyIcon (NIM_DELETE, @ Nid); 
terminar ; 

procedimiento TForm1.Button1Click (Sender: TObject);
comenzar 
Nid.cbSize: = sizeof (TNotifyIconData); 
Nid.Wnd: = manija; 
Nid.uID: = 1.000 ; 
Nid.uFlags: = NIF_MESSAGE o NIF_ICON o NIF_TIP; 
Nid.uCallbackMessage: =  WM_TRAYNOTIFY;
Nid.hIcon: =Application.Icon.Handle; 
Nid.szTip: = ' 我隐藏在系统托盘里了' ; 
Shell_NotifyIcon (NIM_ADD, @ Nid); 
ShowWindow (Application.Handle, SW_SHOWMINIMIZED); 
ShowWindow (Application.Handle, SW_HIDE); 
Timer1.Enabled: = True;
terminar ; 

procedimiento TForm1.wmTrayNotify ( var Msg: TMessage);
var  
p: TPoint; 
empezar 
si (Msg.lparam = WM_LBUTTONDBLCLK) entonces 
comenzar 
ShowWindow (Application.Handle, SW_SHOW); 
Shell_NotifyIcon (NIM_DELETE, @ Nid); 
Timer1.Enabled: =  False;
Application.Restore; 
poner fin a 
los demás  SI (Msg.LParam = WM_RBUTTONUP) la continuación 
del comienzan 
GetCursorPos (P); // obtener las coordenadas del ratón 
PopupMenu1.Popup (PX, PY); // mostrar el menú emergente situado en el cursor del ratón 
Fin ;
 Fin ; 

Procedimiento TForm1 .N1Click (Sender: TObject);
 el inicio 
del ShowWindow (Application.Handle, SW_SHOW); 
la Shell_NotifyIcon (NIM_DELETE, @ Nid); 
Application.Restore; 
Timer1.Enabled: = False;
 Fin ; 

Procedimiento TForm1.N2Click (Sender: TObject);
 Begin 
Application.Terminate; 
Fin ; 

ProcedimientoTForm1.FormShow (Sender: TObject);
comenzará 

Timer1.Enabled: = False;
terminar ; 

procedimiento TForm1.Button2Click (Sender: TObject); 

comenzará 
ChangeFlag: = True;
{ Icono: = TIcon.Create; 
Icon.LoadFromFile ( 'C: \ Archivos de programa \ Microsoft Office \ Office11 \ MSN.ICO'); 
Nid.cbSize: = sizeof (TNotifyIconData); 
Nid.Wnd: = manija; 
Nid.uID: = 1.000; 
Nid.uFlags: = NIF_MESSAGE o NIF_ICON o NIF_TIP; 
Nid.uCallbackMessage: = WM_TRAYNOTIFY; 
Nid.hIcon: = Icon.Handle; 
Shell_NotifyIcon (NIM_MODIFY, @ Nid); } 
Terminar ; 

procedimiento TForm1.Timer1Timer (Sender: TObject);
empezar 
si  noChangeFlag entonces 
la salida; 
Si A continuación, 
comienzan 
Nid.hIcon: = Icon.Handle; 
Shell_NotifyIcon (NIM_MODIFY, @ Nid); 
A: = False;
terminar 
lo demás  comenzará 
Nid.hIcon: = Application.Icon.Handle; 
Shell_NotifyIcon (NIM_MODIFY, @ Nid); 
A: = True;
terminar ;
terminar ; 

procedimiento TForm1.Button3Click (Sender: TObject);
comenzará 
ChangeFlag: = False;
terminar ; 

terminar .

 

Supongo que te gusta

Origin www.cnblogs.com/jijm123/p/12602700.html
Recomendado
Clasificación