begin process at 2012 02 11 08:33:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Aide et documentation

 > 

Directive inconnue sur une définition de procedure


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Directive inconnue sur une définition de procedure

mercredi 15 août 2007 à 19:13:27 | Directive inconnue sur une définition de procedure

John Dogget

Salut à tous.

Je tente d'écrire une unité qui contiendrait les quelques fonctions élémentaires pour réduire une application dans le systray ...
Jusqu'à maintenant j'arrive à réduire et agrandir mon application, mais par contre impossible d'arriver à capturer un double-clic sur l'icône de l'application réduite.

D'après les nombreuses sources que j'ai trouvé ici et là, il faut utiliser les messages pour faire ce genre de choses.

Le hic, c'est que tous les exemples que j'ai pu tester fonctionnent bien, mais quand je fais un bête copier/coller de la procedure qui est censé gerer les messages, le compilateur ne veux plus en entendre parler (m'enerve celui là )

Voici texto ce que j'ai ecris (toute l'unité en question)
---------------------------------------------------

unit Reduction_SysTray;

interface

uses ShellAPI, Forms, Messages, Windows;

Const
  WM_MONICONE = WM_USER +1;

  procedure AjouterIcone(FenetreConcernee:TForm);
  procedure SupprimerIcone(FenetreConcernee:TForm);
  procedure ReduireFenetre(FenetreConcernee:TForm);
  procedure RestaurerFenetre(FenetreConcernee:TForm);
  procedure WMTrayIconMessage(var Msg: TMessage); message WM_MONICONE;

var
  FenetreApplication:TForm;

implementation

uses Fenetre_Principale;

procedure AjouterIcone(FenetreConcernee:TForm);
var
  Info:TNotifyIconData;
begin
  Info.cbSize           := SizeOf(Info);
  Info.Wnd              := FenetreConcernee.Handle;
  Info.uID              := 1;
  Info.szTip            := 'test';
  Info.hIcon            := Application.Icon.Handle;
  Info.uCallbackMessage := WM_MONICONE;
  Info.uFlags           := NIF_TIP Or NIF_ICON Or NIF_MESSAGE;
  Shell_NotifyIcon(NIM_ADD,@Info);
end;

procedure SupprimerIcone(FenetreConcernee:TForm);
var
  Info:TNotifyIconData;
begin
  Info.cbSize := SizeOf(Info);
  Info.Wnd    := FenetreConcernee.Handle;
  Info.uID    := 1;
  Shell_NotifyIcon(NIM_DELETE,@Info);
end;

procedure ReduireFenetre(FenetreConcernee:TForm);
begin
  FenetreApplication:=FenetreConcernee;
  AjouterIcone(FenetreConcernee);
  ShowWindow(Application.Handle, SW_HIDE);
end;

procedure RestaurerFenetre(FenetreConcernee:TForm);
begin
  ShowWindow(Application.Handle, SW_SHOW);
  Application.Restore;
  SupprimerIcone(FenetreConcernee);
end;

procedure WMTrayIconMessage(var Msg: TMessage);
begin
  if Msg.LParam=WM_LBUTTONDBLCLK then
    RestaurerFenetre(FenetreApplication);
end;

end.
----------------------------------------------------------------

A la compilation, ça coince à la ligne 14 :
> procedure WMTrayIconMessage(var Msg: TMessage); message WM_MONICONE
> [Erreur] Reduction_SysTray.pas(14): Directive inconnue : 'message'

Je vais devenir chèvre avec ces messages ... help
jeudi 16 août 2007 à 08:31:54 | Re : Directive inconnue sur une définition de procedure

WhiteHippo

Membre Club
Bonjour

la directive message n'est utilisable qu'avec des méthodes, c'est à dire au sein de la définition d'une classe. Sinon il faut passer par la définition d'une fonction WndProc.

Cordialement.

"L'imagination est plus importante que le savoir." Albert Einstein
jeudi 16 août 2007 à 17:37:13 | Re : Directive inconnue sur une définition de procedure

John Dogget

Ha ... bin ça m'eclaire pas plus que ça
Concretement, qu'est ce qu'il faudrait rajouter à mon code pour que ça marche ?
jeudi 16 août 2007 à 18:17:03 | Re : Directive inconnue sur une définition de procedure

WhiteHippo

Membre Club
Comme je l'ai dit précédemment, il faut créer une classe pour pouvoir beneficier de l'utilisation de la directive message. Donc tu crées une class dérivée de TForm par exemple, et tu y integres ton code.

N.B. Les exemples ne manquent pourtant pas sur le site concernant la gestion du systray :
  http://www.delphifr.com/recherche.aspx?r=systray&tr=source (Le premier exemple de la liste contient déjà tout ce que tu cherches à faire)

Cordialement.

"L'imagination est plus importante que le savoir." Albert Einstein


Cette discussion est classée dans : application, tform, procedure, info, fenetreconcernee


Répondre à ce message

Sujets en rapport avec ce message

difficile à résumer en une phrase :) [ par nicobara ] Bonjour à tous.Voila, j'ai un problème (non sans blague), voila mon code :procedure TFModifUtil.GestAffNiveauUtil(NiveauUtil : integer);var i : intege Create Form explication [ par Bruto ] Salut,voila comme je débute en Delphi ( migration VB oblige ), je rencontre qq prob's.Explication ( ce que je voudrais ) :Mon programme se lance et pa Application console et procedure [ par MoveX ] dans mon appli je suis oblige d ecrire les procedures avant quelles ne soient appelees sinon ca plante sachant que ma structure est :program ...;{$APP cacher une MDi [ par neko ] Bonjour tout le monde, vala, j'ai un petit probleme avec une form mdi:en effet, mon but est de cacher l'application pour la mettre dans le tray. Chose Problème avec les TMemo [ par sebmime ] Bonjour,Mon application permet de créer des petites zones de texte (des TMEMO) qui sont affichées sur une TFORM.je créé donc mes TMemo avec des "creat dériver une form ? [ par DeltaFX ] En fait j'ai besoin d'ajouter à la class Tform une procedure, donc de créer une classe du genre TExtendForm qui reprendraient tout d'une TForm normale inheritance class [ par popo_joe ] bonjour tout le monde!voila je voudrai encore mieu comprendre les class ainsi que les sous class , j'ai justement une question par rapport a cela ,lor Choisir le dosier de sauvegarde [ par cocowz ] Bonjour,J'ai telecharge un fichier mxWebUpdate sur (http://www.maxcomponents.net/download.html#MXWEBUPDATE)J'ai compris le systeme mais la chose que j Je pensais faire un Keylogger mais c pas si simple... [ par Youyou0214 ] je voudrais faire un keylogger mais je viens a peine de commencer et des problemes se posent deja. Je voulait que mon application demarre au demarrage Je pensais faire un Keylogger mais c pas si simple... [ par Youyou0214 ] je voudrais faire un keylogger mais je viens a peine de commencer et des problemes se posent deja. Je voulait que mon application demarre au demarrage


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,917 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales