IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Item PopupMenu handle


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 71
    Par défaut Item PopupMenu handle
    Bonjour à tous.

    J'agis sur une application externe, et là, j'ai besoin de récupérer les items, donc les textes qui se trouve dans un PopupMenu "externe à mon application".
    J'arrive à récuperer son handle à chaque clic par sa classe, donc, sachant son handle, comment puis-je procéder.
    Merci à vous.

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    Tu peux faire ceci par exemple (fonctionne sous Delphi 2009) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Count: Integer;
      Buffer: array[0..MAX_PATH - 1] of Char;
    begin
    Count := Length(Buffer);
    GetWindowText(Button1.Handle, Buffer, 255);
    ShowMessage(Buffer);
    end;
    Tu remplaces Button1.Handle par l'Handle de ton item ...
    En espérant t'avoir aidé

    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 71
    Par défaut
    Bonjour ero-sennin

    Merci de t'interesser à mon problème.
    Cela ne fonctionne pas, même sous delphi 2009...
    J'ai même essayer de renvoyer le contenu dans un memo, mais c'est la même chose.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm1.Timer1Timer(Sender: TObject);
     Var monhandle, Count : Integer;
          Buffer: array[0..MAX_PATH - 1] of Char;
    begin
     monhandle:= FindWindow('#32768', Nil);
     label1.Caption:= IntToStr(monhandle); // pour vérifier que j'ai un handle.
     Count := Length(Buffer);
     GetWindowText(monhandle, Buffer, 255);
     Memo1.Lines.Add(Buffer);
    Voilà, le tous placé dans un Timer, étant donner que c'est du popup et que je ne peut pas cliquer sur un bouton et un popup en même temps.
    Peut-être est-ce dû à GetWindowText qui ne peut récupérer uniquement le contenue Texte d'une barre de titre mais qpas d'un popup ?
    Merci.
    je suis sûr que c'est presque ça

    J'ai même essayer ceci, mais en vain:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure TForm1.Timer1Timer(Sender: TObject);
     Var monhandle, longueur : Integer;
         texte: String;
    begin
     monhandle:= FindWindow('#32768', Nil);
     label1.Caption:= IntToStr(monhandle);
     
    longueur := SendMessage(monhandle, WM_GETTEXTLENGTH, 0, 0); // recupère dans variable longueur le contenue de longueur
      SetLength(texte, longueur);   // On demande de la place
      SendMessage(monhandle, WM_GETTEXT, longueur +1, LParam(PChar(texte))); // longueur + 1 pour 0#
     
      Memo1.Lines.Add(texte); // Ajoute le contenue de texte dans memo1
    Voilà, c'est la galère
    Autre chose ?
    merci

  4. #4
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut yannfrance,

    J'avais pourtant essayé avec un TButton ... et ce n'est pas une barre de titre
    Pour ce qui est de la seconde solution, c'est celle que j'aurai donné si éventuellement ça ne fonctionnerait pas

    Faudrait voir pour être sur que ton Handle est bien celui que tu penses être.
    Tu peux télécharger WindowSpy pour voir le Handle de ton TItems ...

    A+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 71
    Par défaut
    Re ero-sennin

    Oui, le handle est le bon étant donné que je le tiens dans un Label et que je procède la vérification via windowsSpy.
    On parle bien d'agir sur une appli externe, car tu me dit un Titems, qui semble être du local.
    Ensuite, je précise que dans un popupMenu, Chaque items ne contient pas de handle, c'est le popup qui le contient, donc sachant ceci, même avec GetText, je ne doit normalement pas récuperer les items.
    Arf, je suis à bout de connaissance là ont dirais
    personne n'as déjà fait cette manip ?

    ero-sennin , merci beaucoup pour ton aide, c'est sympa

  6. #6
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Bon, j'avoue que c'est assez délicat comme soucis
    Je viens de faire quelques tests, et effectivement, je n'arrive à rien.
    Le handle du popup menu est celui lorsque l'on clic droit sur le bureau non ?
    Du moins, c'est celui ci que j'ai comme class ...

    Bon, ba là, je sèche aussi, désolé

Discussions similaires

  1. Question : PopupMenu.Items[ ].visible
    Par JJJJJ dans le forum Débuter
    Réponses: 9
    Dernier message: 03/07/2009, 14h25
  2. TListview ClicDroit vers PopupMenu et pas d'item
    Par James_ dans le forum C++Builder
    Réponses: 9
    Dernier message: 02/10/2007, 17h00
  3. couleur pour item dans popupmenu
    Par boopix dans le forum C++Builder
    Réponses: 4
    Dernier message: 21/08/2006, 21h40
  4. PopupMenu et Item->Caption
    Par Franck26 dans le forum C++Builder
    Réponses: 2
    Dernier message: 30/10/2005, 11h00
  5. PopupMenu sur item de TListBox
    Par nmathon dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/03/2003, 17h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo