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 :

Une même action MouseLeave pour tous les Bts d une toolbar


Sujet :

Delphi

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Points : 226
    Points
    226
    Par défaut Une même action MouseLeave pour tous les Bts d une toolbar
    Bonjour
    J ai une toolbar sur un form.
    J ai un tableau de string qui correspond au texte que j affiche sur un label en fonction du bouton.L index du tableau est identique à celui des boutons.

    J aimerais savoir s il est possible de reuperer l index du bouton 'OnMouseEnter' / onmouseleave pour affecter le texte[N°du bouton] / effacer le label dans une procedure unique à tous les boutons de la toolbar.

    J ai bien cherché une propriete du style index mais je n ai rien trouvé....


    Merci pour votre aide

  2. #2
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    Je ne suis pas sûr d'avoir compris mais il suffit de mettre ta valeur 'index' dans le Tag de chaque bouton concerné. Tu récupère ce Tag avec le Sender de ton event (car le sender est le bouton si j'ai bien compris) et le tour est joué...

  3. #3
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Une méthode que j'utilise de temps en temps : mettre dans Tag la valeur de l'index. Dans l'evènement un TComponent(Sender).Tag te donnera la bonne valeur.
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Points : 226
    Points
    226
    Par défaut
    Merci mais je suis désolé, j ai pas tout compris.
    Pour le tag sur chaque bouton ok.
    Mais pour le recuperer...pb

    l' evenement, c est le fait d entre/sortir d un bouton non ? Donc je dois faire une procedure pour chaque bouton alors ?
    Je pensais qu il y avait un moyen de recuperer la valeur du bouton survolé/quitté et de ce faire faire une procedure unique mais je crois que j ai pas tout saisi..

    Auriez vous un exemple s il vous plait ?

  5. #5
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    En fait tu crées un event pour le 1er bouton et pour les suivants tu pointes systématiquement sur cet event.
    Dans le code de cet event tu récupère le tag du bouton qui t'as envoyé l'event avec :
    TButton(sender).tag

    C'est plus clair ?

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Points : 226
    Points
    226
    Par défaut
    en theorie, oui c est clair mais en pratique non.
    Je dois utiliser Tapplicationevent ?
    Je ne vois pas comment creer un evenement qui ne soit pas dans la liste.
    Peut etre une action d une action liste ...
    Je melange peut etre tout mais là je suis depassé..

  7. #7
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Citation Envoyé par sp2308 Voir le message
    Je dois utiliser Tapplicationevent ?
    Non. Rien a voir.

    Je ne vois pas comment creer un evenement qui ne soit pas dans la liste.
    Lorsque tu sélectionnes un TToolButton, les évènements OnMouseEnter et OnMouseLeave ne sont pas présents dans l'inspecteur d'objets ?
    Quelle est ta version de Delphi ?

    @+

  8. #8
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    attention : pour le transtypage des "sender" dans les gestionnaires d'evenements il est recommendé d'utiliser le mots AS plutôt qu'un transtypage explicite :


    plutot que

    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Points : 226
    Points
    226
    Par défaut
    Citation Envoyé par Cl@udius Voir le message
    Salut


    Non. Rien a voir.


    Lorsque tu sélectionnes un TToolButton, les évènements OnMouseEnter et OnMouseLeave ne sont pas présents dans l'inspecteur d'objets ?
    Quelle est ta version de Delphi ?

    @+
    Oui effectivement ils sont presents. C est d ailleurs ces evenements que j utilise mais ce que je souhaitais faire c est justement eviter de les utiliser et faire une procedure commune à tous les boutons avec ces evenements sur la toolbar qui donnait le numero du bouton.

    J etais à la recheche d une sorte de propriete toolbarbutton.index ...

    j utilise d2007

  10. #10
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 668
    Points : 5 237
    Points
    5 237
    Par défaut
    Il y'a une méthode toute simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i := 0 to MaToolBAr.ButtonCount - 1 do
        MaToolBar.Button[i].OnMouseOver := OnMesBoutonsMouseOver;
    Bien sur il faut avoir déclaré la procedure OnMesBoutonsMouseOver

    Et dans la procedure tu récupère le Tag comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UnTag := (Sender as TButton).Tag;

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Points : 226
    Points
    226
    Par défaut
    merci, cette fois c est clair

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

Discussions similaires

  1. [Débutant] Lancer la même sub pour tous les contrôles d'une form
    Par chtinis dans le forum Windows Forms
    Réponses: 1
    Dernier message: 08/10/2014, 17h07
  2. Réponses: 3
    Dernier message: 06/09/2007, 14h31
  3. action (visible) sur tous les panels d'une page?
    Par cortex024 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 11/06/2007, 17h18
  4. Réponses: 4
    Dernier message: 29/09/2005, 11h50

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