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

Composants VCL Delphi Discussion :

Relier l'évenement OnClick d'un MenuItem à un event éxistant


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Points : 17
    Points
    17
    Par défaut Relier l'évenement OnClick d'un MenuItem à un event éxistant
    Bonjour,

    J'ai un menu dans une fenêtre qui se crée dynamiquement à partir d'un treeview aussi dans la même fenêtre (avec la récursivité des noeuds).
    Je souhaite indiquer pour chaque noeud que sur son evenement OnClick, il déclenche l'action correspondant au noeud correspondant du treeview. Est-il possible d'indiquer dans l'élément MenuItem un objet (en l'occurence le noeud correspondant) ?

    Merci de votre aide.
    Olivier Roux

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut


    regarde l'exemple fournit dans la reponse

    http://www.developpez.net/forums/vie...light=#2383471

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Points : 17
    Points
    17
    Par défaut Pb de survol
    Merci Phil,

    C'est effectivement la solution que j'avais adopté tout seul, par contre, je rencontre désormais un autre problème, l'évenement OnClick se produit lorsque la souris survole un menu qui a des sous-menu. C'est génant car dans mon cas, cela ouvre et ferme des fenêtre au fur et à mesure que je descend dans les sous-menus, avant même d'avoir cliqué !

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut


    Ton evenement doit etre relier a un autre evenement que le onclik
    je me sert de cette technique et je n'ai jamais eu a deplorer ce probleme
    sans le code incriminer je ne peut pas t'aider plus


    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Points : 17
    Points
    17
    Par défaut C'est pas ça mais bon....
    J'ai réussi à gèrer au mieux en testant le nb d'élément du menu sélectionné, s'il y a 0 dans le count, je sais alors qu'il n'y a pas de sous-menu et je peux le lancer.

    Mais bon, cela empêche de lancer des menu qui ont des sous-menus et sur lesquels je souhaitait tout de même gèrer le click....

    Moindre mal....

  6. #6
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    je comprend pas pourquoi tu gere tes menu

    il te suffit de deux fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    function AddMenuItem(AMenu: TMenu; const ACaption: String; ATag: Integer; AShortCut: TShortCut;
      OnClick: TNotifyEvent): TMenuItem;
    begin
      Result := TMenuItem.Create(AMenu);
      Result.Caption := ACaption;
      Result.Tag := ATag;
      Result.ShortCut := AShortCut;
      Result.OnClick := AOnClick;
     
      AMenu.Items.Add(Result);
    end;
     
    function AddSubMenuItem(AMenuItem: TMenuItem; const ACaption: String; ATag: Integer; AShortCut: 
      TShortCut; AOnClick: TNotifyEvent): TMenuItem;
    begin
      Result := TMenuItem.Create(AMenuItem);
      Result.Caption := ACaption;
      Result.Tag := ATag;
      Result.ShortCut := AShortCut;
      Result.OnClick := AOnClick;
     
      AMenuItem.Add(Result);
    end;
    et les menu et sous menu sont gerer automatiquement

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Points : 17
    Points
    17
    Par défaut Parce que
    c'est le client qui souhaite avoir un menu identique au treeview....

    La création du menu n'a pas posé de pb, je m'en suis sorti avec les tag effectivements, par contre, ce qui reste génant, c'est le fait que l'évenement onclick d'un menu s'effectue lorsque la souris survole un menu qui a des sous-menu, même sans cliquer dessus, l'évenement se produit.

    J'ai essayé de gérer ce pb en mettant une variable globale modifiée sur le onmousedown de la fenêtre possédant le menu, mais lors d'un click dans le menu, l'évenement onmousedown de la fenêtre n'est pas appelé.

    Je pensais sinon trouver une fonction, variable permettant de connaitre l'état des boutons de la souris en temps réel pour pouvoir savoir si le click gauche est enfoncé au moment du onclick sur le menu mais je n'ai trouvé que la récupération de la position du pointeur, pas de l'état des boutons.

    Peut-être avec les évenements windows ?.....

    Merci d'avoir essayé de m'aider en tous cas ! ;-)
    Olivier

Discussions similaires

  1. impossible de déclencher l'évenement onclick
    Par vacknov dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/01/2010, 16h08
  2. [javascript] changer l'évenement Onclick d'un bouton
    Par brudao dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 25/05/2009, 12h21
  3. Réponses: 5
    Dernier message: 20/11/2008, 10h12
  4. Récupérer l'évenement onclick d'un Tlistbox
    Par cincap dans le forum Débuter
    Réponses: 7
    Dernier message: 04/08/2008, 14h15
  5. Utiliser l'évenement ONCLICK
    Par Sytchev3 dans le forum Langage
    Réponses: 2
    Dernier message: 08/11/2007, 14h02

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