Démarrage d'une application sous forme d'une icône dans la barre d'état système


Cet article va vous montrer comment démarrer une applicacion minimisé avec une icône dans la barre d'état système (la zone à la droite de la barre des tâches)
PLACER UNE ICÔNE DANS LA barre d'état SYSTÈME
La barre d'état système est la zone à la droite de la barre des tâches où les 'arrière-plan', les applications peuvent placer leurs icônes. Pour placer une icône dans la barre vous devez appeler le Shell_NotifyIcon API déclaré dans le ShellAPI unité, en lui passant la constante NIM_ADD (pour le dire d'ajouter une icône) et l'adresse d'un TNotifyIconData enregistrement avec l'icône d'information qui comprend la poignée de l'icône pour afficher le texte à afficher comme info-bulle lorsque la souris est au-dessus de l'icône, la poignée de la fenêtre qui recevra les messages de l'icône et le type de message, l'icône s'envoyer à cette fenêtre.

& ! & ! & ! & ! & nbsp ..., ShellAPI
& nbsp & nbsp const
& ! & ! & ! & nbsp WM_ICONTRAY = WM_USER 1 // message défini par l'Utilisateur
& nbsp & nbsp type
& ! & ! & ! & nbsp ...
& nbsp & nbsp var
& ! & ! & ! & nbsp ...
& ! & ! & ! & nbsp NotifyIconData : TNotifyIconData
& nbsp & nbsp mise en œuvre
& nbsp & nbsp procedure TForm1.FormCreate(Sender: TObject)
& nbsp & nbsp commencer
& ! & ! & ! & nbsp avec NotifyIconData do begin
& ! & ! & ! & ! & ! & nbsp hIcon := Icône.Poignée
& ! & ! & ! & ! & ! & nbsp StrPCopy(szTip, Application.Titre)
& ! & ! & ! & ! & ! & nbsp Wnd := Poignée
& ! & ! & ! & ! & ! & nbsp uCallbackMessage := WM_ICONTRAY
& ! & ! & ! & ! & ! & nbsp uID := 1
& ! & ! & ! & ! & ! & nbsp uFlags := NIF_MESSAGE NIF_ICON NIF_TIP
& ! & ! & ! & ! & ! & nbsp cbSize := sizeof(TNotifyIconData)
& ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp Shell_NotifyIcon(NIM_ADD, @NotifyIconData)
& nbsp & nbsp fin

MANIPULATION de l'ICÔNE de MESSAGES
Form1 recevrez WM_ICONTRAY des messages à partir de l'icône. De capturer et de traiter ces messages nous avons à déclarer une nouvelle méthode dans notre formulaire. Par exemple:
type
& ! & ! & ! & nbsp TForm1 = class(TForm)
& ! & ! & ! & ! & ! & nbsp ...
& ! & ! & ! & nbsp privé
& ! & ! & ! & ! & ! & nbsp { Private declarations }
& ! & ! & ! & ! & ! & nbsp ...
& ! & ! & ! & ! & ! & nbsp procédure Icontray(var Message: TMessage) message WM_ICONTRAY
& ! & ! & ! & nbsp public

& ! & ! & ! & ! & ! & nbsp { déclarations Publiques }
& ! & ! & ! & ! & ! & nbsp ...
& ! & ! & ! & nbsp fin

Dans la mise en œuvre de cette méthode, on peut par exemple afficher un pop-up menu lorsque l'utilisateur clique avec le bouton droit sur l'icône. En supposant que vous avez créé un menu déroulant nommé PopupMenu1, le code suivant va faire l'affaire:
procedure TForm1.Icontray(var Message: TMessage)
& nbsp & nbsp var
& ! & ! & ! & nbsp CursorPos : TPoint
& nbsp & nbsp commencer
& ! & ! & ! & nbsp si Msg.lParam = WM_RBUTTONDOWN puis commencer
& ! & ! & ! & ! & ! & nbsp GetCursorPos(CursorPos)
& ! & ! & ! & ! & ! & nbsp PopupMenu1.Popup(CursorPos.x, CursorPos.y)
& ! & ! & ! & nbsp fin else
& ! & ! & ! & ! & ! & nbsp hérité
& nbsp & nbsp fin

affichage ET MASQUAGE de LA FORME
Normalement, vous pouvez inclure un élément de menu dans le menu pop-up pour afficher le formulaire, donc, tout ce que vous avez à faire est d'écrire un gestionnaire d'événement pour appeler la méthode Show de la forme et éventuellement supprimer l'icône de la barre d'état système:
procedure TForm1.mnuShowClick(Sender: TObject)
& nbsp & nbsp commencer
& ! & ! & ! & nbsp Show
& ! & ! & ! & nbsp // Shell_NotifyIcon(NIM_DELETE, @NotifyIconData)
& nbsp & nbsp fin

Lorsque l'utilisateur ferme le formulaire, vous pouvez par exemple le cacher au lieu de le fermer et d'en option afficher l'icône nouveau dans la barre d'état système si vous l'avez supprimé lorsque vous faites la forme visible. Par exemple:
procedure TForm1.FormClose(Sender: TObject var Action: TCloseAction)
& nbsp & nbsp commencer
& ! & ! & ! & nbsp Action := caNone
& ! & ! & ! & nbsp Cacher
& ! & ! & ! & nbsp // Shell_NotifyIcon(NIM_ADD, @NotifyIconData)
& nbsp & nbsp fin

FINITION de L'APPLICATION
Vous pouvez avoir un élément de menu dans le menu pop-up pour quitter l'application. Dans ce cas, vous devez écrire un gestionnaire d'événement pour son événement click pour supprimer l'icône et la finition de l'application:
procedure TForm1.mnuExitClick(Sender: TObject)
& nbsp & nbsp commencer
& ! & ! & ! & nbsp Shell_NotifyIcon(NIM_DELETE, @NotifyIconData)
& ! & ! & ! & nbsp Application.ProcessMessages
& ! & ! & ! & nbsp Application.Résilier
& nbsp & nbsp fin

Le code source complet de l'exemple de cet article peut être téléchargé à partir de:
http://www.latiumsoftware.com/download/d00035.zip









Demarrage d'une application sous forme d'une icone dans la barre d'etat systeme


Demarrage d'une application sous forme d'une icone dans la barre d'etat systeme : Plusieurs milliers de conseils pour vous faciliter la vie.


Cet article va vous montrer comment demarrer une applicacion minimise avec une icone dans la barre d'etat systeme (la zone a la droite de la barre des taches)
PLACER UNE ICONE DANS LA barre d'etat SYSTEME
La barre d'etat systeme est la zone a la droite de la barre des taches ou les 'arriere-plan', les applications peuvent placer leurs icones. Pour placer une icone dans la barre vous devez appeler le Shell_NotifyIcon API declare dans le ShellAPI unite, en lui passant la constante NIM_ADD (pour le dire d'ajouter une icone) et l'adresse d'un TNotifyIconData enregistrement avec l'icone d'information qui comprend la poignee de l'icone pour afficher le texte a afficher comme info-bulle lorsque la souris est au-dessus de l'icone, la poignee de la fenetre qui recevra les messages de l'icone et le type de message, l'icone s'envoyer a cette fenetre.

& ! & ! & ! & ! & nbsp ..., ShellAPI
& nbsp & nbsp const
& ! & ! & ! & nbsp WM_ICONTRAY = WM_USER 1 // message defini par l'Utilisateur
& nbsp & nbsp type
& ! & ! & ! & nbsp ...
& nbsp & nbsp var
& ! & ! & ! & nbsp ...
& ! & ! & ! & nbsp NotifyIconData : TNotifyIconData
& nbsp & nbsp mise en œuvre
& nbsp & nbsp procedure TForm1.FormCreate(Sender: TObject)
& nbsp & nbsp commencer
& ! & ! & ! & nbsp avec NotifyIconData do begin
& ! & ! & ! & ! & ! & nbsp hIcon := Icone.Poignee
& ! & ! & ! & ! & ! & nbsp StrPCopy(szTip, Application.Titre)
& ! & ! & ! & ! & ! & nbsp Wnd := Poignee
& ! & ! & ! & ! & ! & nbsp uCallbackMessage := WM_ICONTRAY
& ! & ! & ! & ! & ! & nbsp uID := 1
& ! & ! & ! & ! & ! & nbsp uFlags := NIF_MESSAGE NIF_ICON NIF_TIP
& ! & ! & ! & ! & ! & nbsp cbSize := sizeof(TNotifyIconData)
& ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp Shell_NotifyIcon(NIM_ADD, @NotifyIconData)
& nbsp & nbsp fin

MANIPULATION de l'ICONE de MESSAGES
Form1 recevrez WM_ICONTRAY des messages a partir de l'icone. De capturer et de traiter ces messages nous avons a declarer une nouvelle methode dans notre formulaire. Par exemple:
type
& ! & ! & ! & nbsp TForm1 = class(TForm)
& ! & ! & ! & ! & ! & nbsp ...
& ! & ! & ! & nbsp prive
& ! & ! & ! & ! & ! & nbsp { Private declarations }
& ! & ! & ! & ! & ! & nbsp ...
& ! & ! & ! & ! & ! & nbsp procedure Icontray(var Message: TMessage) message WM_ICONTRAY
& ! & ! & ! & nbsp public

& ! & ! & ! & ! & ! & nbsp { declarations Publiques }
& ! & ! & ! & ! & ! & nbsp ...
& ! & ! & ! & nbsp fin

Dans la mise en œuvre de cette methode, on peut par exemple afficher un pop-up menu lorsque l'utilisateur clique avec le bouton droit sur l'icone. En supposant que vous avez cree un menu deroulant nomme PopupMenu1, le code suivant va faire l'affaire:
procedure TForm1.Icontray(var Message: TMessage)
& nbsp & nbsp var
& ! & ! & ! & nbsp CursorPos : TPoint
& nbsp & nbsp commencer
& ! & ! & ! & nbsp si Msg.lParam = WM_RBUTTONDOWN puis commencer
& ! & ! & ! & ! & ! & nbsp GetCursorPos(CursorPos)
& ! & ! & ! & ! & ! & nbsp PopupMenu1.Popup(CursorPos.x, CursorPos.y)
& ! & ! & ! & nbsp fin else
& ! & ! & ! & ! & ! & nbsp herite
& nbsp & nbsp fin

affichage ET MASQUAGE de LA FORME
Normalement, vous pouvez inclure un element de menu dans le menu pop-up pour afficher le formulaire, donc, tout ce que vous avez a faire est d'ecrire un gestionnaire d'evenement pour appeler la methode Show de la forme et eventuellement supprimer l'icone de la barre d'etat systeme:
procedure TForm1.mnuShowClick(Sender: TObject)
& nbsp & nbsp commencer
& ! & ! & ! & nbsp Show
& ! & ! & ! & nbsp // Shell_NotifyIcon(NIM_DELETE, @NotifyIconData)
& nbsp & nbsp fin

Lorsque l'utilisateur ferme le formulaire, vous pouvez par exemple le cacher au lieu de le fermer et d'en option afficher l'icone nouveau dans la barre d'etat systeme si vous l'avez supprime lorsque vous faites la forme visible. Par exemple:
procedure TForm1.FormClose(Sender: TObject var Action: TCloseAction)
& nbsp & nbsp commencer
& ! & ! & ! & nbsp Action := caNone
& ! & ! & ! & nbsp Cacher
& ! & ! & ! & nbsp // Shell_NotifyIcon(NIM_ADD, @NotifyIconData)
& nbsp & nbsp fin

FINITION de L'APPLICATION
Vous pouvez avoir un element de menu dans le menu pop-up pour quitter l'application. Dans ce cas, vous devez ecrire un gestionnaire d'evenement pour son evenement click pour supprimer l'icone et la finition de l'application:
procedure TForm1.mnuExitClick(Sender: TObject)
& nbsp & nbsp commencer
& ! & ! & ! & nbsp Shell_NotifyIcon(NIM_DELETE, @NotifyIconData)
& ! & ! & ! & nbsp Application.ProcessMessages
& ! & ! & ! & nbsp Application.Resilier
& nbsp & nbsp fin

Le code source complet de l'exemple de cet article peut etre telecharge a partir de:
http://www.latiumsoftware.com/download/d00035.zip


Démarrage d'une application sous forme d'une icône dans la barre d'état système

Démarrage d'une application sous forme d'une icône dans la barre d'état système : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation