Procedure TWinForm.Dispose(Disposing: Boolean); Begin If Disposing Then Begin If Components <> NilThen
Components.Dispose(); End; Inherited Dispose(Disposing); End;
Constructor TWinForm.Create; Begin Inherited Create; // // Required for Windows Form Designer support //
InitializeComponent; // // TODO: Add any constructor code after InitializeComponent call //
DoitFermer:=False; End;
Procedure TWinForm.MenuReduire_Click(sender: System.Object; e: System.EventArgs); Begin // L'option réduire permet de ... réduire la fenêtre !
WindowState:=FormWindowState.Minimized; End;
Procedure TWinForm.MenuRestaurer_Click(sender: System.Object; e: System.EventArgs); Begin // L'option restaurer permet de ... restaurer la fenêtre ! If WindowState=FormWindowState.Minimized Then WindowState:=FormWindowState.Normal;
Show; End;
Procedure TWinForm.MenuFermer_Click(sender: System.Object; e: System.EventArgs); Begin // Il faut autoriser la feremeture cette fois-ci
DoitFermer:=True; // et fermer la fenêtre
Close; End;
Procedure TWinForm.TWinForm_Closing(sender: System.Object; e: System.ComponentModel.CancelEventArgs); Begin // On teste si la fermeture de la fenêtre doit être effective IfNot DoitFermer Then Begin // Dans le cas contraire, on se contente de réduire l'application
e.Cancel := True;
WindowState := FormWindowState.Minimized; End; End;
Procedure TWinForm.NotifyIcon1_MouseDown(sender: System.Object; e: System.Windows.Forms.MouseEventArgs); Begin // Dans le cas d'un click gauche sur l'icone, on test si c'est le premier // click puis on lance le timer de retard d'affichage du menu. // Cette méthode permet de laisser le temps de double cliquer sur l'icone // avant que le menu n'apparaisse. If (e.Button=System.Windows.Forms.MouseButtons.Left) And
(e.Clicks=1) Then
Timer1.Enabled:=True; End;
Procedure TWinForm.NotifyIcon1_DoubleClick(sender: System.Object; e: System.EventArgs); Begin // Dans le cas d'un double-click, on arrête le timer lancé par le premier // click et on effectue l'action par défaut.
Timer1.Enabled:=False;
MenuRestaurer_Click(Sender,e); End;
Procedure TWinForm.Timer1_Tick(sender: System.Object; e: System.EventArgs); Begin // Si le timer s'est écoulé, c'est qu'il n'y a pas eu de double-click. // Dans ce cas on affiche le menu là ou est la souris.
Timer1.Enabled:=False;
ContextMenu1.Show(Self,Control.MousePosition); End;