Soyez le premier à donner votre avis sur cette source.
Vue 9 355 fois - Téléchargée 892 fois
unit Systray; interface uses Forms, Messages, ShellAPI, Windows; procedure EnleveIconeTray(); procedure ModifIconeTray(Texte:String;Icone:HICON); procedure AjouteIconeTray(handle:HWND;Icone:HICON;Texte:string); var IconeT:TNotifyIconData; implementation procedure AjouteIconeTray(handle:HWND;Icone:HICON;Texte:string); var a:integer; begin IconeT.cbSize := SizeOf(IconeT); //Taille de l'icône en octet IconeT.wnd := handle; //Handle de l'application IconeT.uID := 1; //Identificateur de l'icône IconeT.uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE; IconeT.uCallbackMessage := WM_MOUSEMOVE; //Renvoyer les messages concernant l'action de la souris IconeT.hIcon := Icone; //Mettre en icône l'image qui est dans le contrôle "Image1" //Texte de la bulle d'aide if Length(Texte) > 64 then SetLength(Texte,64); IconeT.szTip:=''; for a:=0 to Length(Texte)-1 do IconeT.szTip[a] := Texte[a+1]; //Appel de la fonction pour mettre l'icône dans le système tray Shell_NotifyIcon(NIM_ADD,@IconeT); end; procedure EnleveIconeTray(); begin IconeT.uID := 1; Shell_NotifyIcon(NIM_DELETE,@IconeT); end; procedure ModifIconeTray(Texte:String;Icone:HICON); var a:integer; begin IconeT.uID:=1; //Texte de la bulle d'aide if Length(Texte) > 64 then SetLength(Texte,64); IconeT.szTip:=''; for a:=0 to Length(Texte)-1 do IconeT.szTip[a] := Texte[a+1]; IconeT.hIcon := Icone; //Icone Shell_NotifyIcon(NIM_MODIFY, @IconeT); //modifie End; end. //---------------------------------------------------- //le code suivant permet d'effectuer des actions kan on klik sur l'icone: //il est a placer dans la propriété mousemove de la form //voici un exemple : procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var Pos:TPoint; begin //action kan on clique GetCursorPos(Pos);//positon de la souris; Case X of WM_LBUTTONDBLCLK:showmessage('Vous avez double cliqué sur l'icone') ; //Double kilk gauche WM_LBUTTONDOWN:; //Bouton gauche pousse WM_LBUTTONUP:; //Bouton gauche lève WM_RBUTTONDBLCLK:; //Double kilk droit WM_RBUTTONDOWN:; //Bouton droit pousse WM_RBUTTONUP:PopupMenu1.Popup(Pos.X,Pos.Y); //Bouton droite lève: Popup End; end;
Mais je voudrais que ma form s'affiche dans le systray quand on la réduit. Peux-tu m'aider ?
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.