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 :

événement onclick intempestif d'1 TMenuItem


Sujet :

Delphi

  1. #1
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut événement onclick intempestif d'1 TMenuItem
    Bonjour

    J'ai associé un popupmenu à une stringgrid
    A la conception, j'ai affublé ce popupmenu d'un certain nombre de tmenuitems
    Chaque tmenuitem a son événement onclick
    Jusque là, no pb

    Mon dernier tmenuitem a lui-même ses tmenuitems (sous-menus)
    Appelons-le dernmenu
    J'ai écrit du code dans la procédure dernmenuClick
    Et je constate que le code de cet événement onclick est exécuté dès que la souris passe au-dessus de dernmenu, sans aucun clic, donc...
    Les autres tmenuitems ne me font pas ça : le code de l'événement onclic est bien exécuté au moment du clic
    Je précise (c'est p't'être là l'explication) que les autres tmenuitems n'ont pas de sous menus...

    Bon, j'espère avoir été limpide
    Merci pour votre aide
    Choisir, c'est renoncer...

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 45
    Points : 41
    Points
    41
    Par défaut Piste...
    Bonjour.
    Vérifie que ton TMenuItem (celui qui contient les sous-menus) n'a pas d'évènement OnClick qui lui est affecté (si c'est le cas, il se déclenche automatiquement quand il est focalisé, ne me demande pas pourquoi...).
    Amicalement.

  3. #3
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Problème de conception ça Un menu qui possède des sous-menu n'est pas censé être cliqué Donc son événement OnClick ne devrait jamais être utilisé. A la limite tu pourrais t'en servir pour calculer dynamiquement les sous-menus qu'il doit afficher.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  4. #4
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Salut

    Pas forcément en fait pour le problème de conception, mais plutot une inadvertance qui peut arriver, ca m'est déjà arrivé dans ce cas:

    création d'un MenuItemTemp : TMenuItem
    création d'un sous menu sur MenuItemTemp contenant
    - MenuItemTemp1 : TMenuITem
    - MenuItemTemp2: TMenuItem

    à MenuItemTemp1 et MenuItemTemp2, j'ai associé le même evt se nommant:
    - MenuItemTempClick()
    (là mauvaise idée de le nommer comme ca du coup)

    jusque là OK, mais il suffit, par inadvertance en conception de double-cliquer sur MenuItemTemp -> et hop, l'association est faite par défaut sur MenuItemTempClick() (dédié seulement pour les sous menu normalement).

    Le résultat, -> le problème énoncé du fil.

    Peut-être est-ce le même cas, et cela rejoint ce quà dit Ardiller
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  5. #5
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut
    Non TicTacToe, il n'y a pas d'inadvertance
    En fait, je voudrais que
    1) dernmenu ait son propre événement onclick, même si il possède lui-même des sousmenus
    2) que cet événement dernmenuclick se déclenche au moment du click, et non lors du passage au-dessus

    Citation Envoyé par ARDILLER
    Vérifie que ton TMenuItem (celui qui contient les sous-menus) n'a pas d'évènement OnClick qui lui est affecté (si c'est le cas, il se déclenche automatiquement quand il est focalisé, ne me demande pas pourquoi...)
    Je crois que tu as mis le doigt sur mon pb ARDILLER...
    Si qqn a une soluce

    En tout cas, merci pour vos pistes...
    Choisir, c'est renoncer...

  6. #6
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Citation Envoyé par OutOfRange
    2) que cet événement dernmenuclick se déclenche au moment du click, et non lors du passage au-dessus
    Ce n'est pas possible parce que c'est contraire au principe fondamental des menus sous Windows.

    La vraie question est : pourquoi veux-tu faire cela ?

    Ce que tu peux faire est faire un sous-menu Général ou qqch du genre, qui aurait l'effet voulu de ton menu.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  7. #7
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut
    Citation Envoyé par sjrd
    Ce n'est pas possible parce que c'est contraire au principe fondamental des menus sous Windows.
    C'est bien ce que je craignais
    Citation Envoyé par sjrd
    La vraie question est : pourquoi veux-tu faire cela ?
    Ce serait trop long à expliquer
    Je vais me débrouiller

    Merci quand même

    Je coche [non]résolu
    Choisir, c'est renoncer...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/07/2006, 13h15
  2. Pb Création évènement OnClick
    Par BigMike dans le forum C++Builder
    Réponses: 10
    Dernier message: 26/06/2006, 15h47
  3. Changement dynamique de l'évènement OnClick
    Par cluis dans le forum Access
    Réponses: 3
    Dernier message: 22/03/2006, 11h30
  4. Erreur avec l'évènement OnClick de ListView
    Par xenos dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/03/2006, 14h54
  5. Modification de l'évènement OnClick
    Par MrJéjé dans le forum C++Builder
    Réponses: 9
    Dernier message: 22/08/2002, 12h52

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