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

Langage Delphi Discussion :

Réutilisation du Sender (TObject)


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Mai 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2004
    Messages : 156
    Points : 90
    Points
    90
    Par défaut Réutilisation du Sender (TObject)
    Bon j'explique rapidement mon problème
    J'utilise un menu et je souhaite (pour des raisons diverses) regrouper l'évènement clic de ces menus en une seule procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TFrmPrincipale.ActionMenu(Sender: TObject);
    begin
      // Action en fonction de l'élément du menu cliqué
    end;
    Je pense que pour savoir sur quel bouton j'ai cliqué il faut que j'utilise la variable Sender
    Malheureusement je n'arrive pas à la réutiliser

    Ma question est donc de savoir si je suis parti sur une bonne base et comment procéder si c'est le cas ?

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 245
    Points : 154
    Points
    154
    Par défaut
    Tu peux donner a te MenuItems des tags differents. Il suffit alors de tester Sender.Tag

  3. #3
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Mai 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2004
    Messages : 156
    Points : 90
    Points
    90
    Par défaut
    Oui mais non
    J'arrive pas à accéder à la méthode Tag à partir du Sender

    Voici les éléments auquel j'ai accès à partir du Sender
    - Create (constructeur)
    - ClassName (fonction)
    - MethodName (fonction)

  4. #4
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 564
    Points : 3 968
    Points
    3 968
    Par défaut
    Salut

    Tu peux effectivement réutiliser un gestionnaire d'événement mais sache que cela peut compliquer la maintenance (il faudra en effet se rappeler que le gestionnaire est partagé). Evites la propriété Tag dans la mesure du possible.

    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
     
    // Attention : gestionnaire partagé
    procedure TFrmPrincipale.ActionMenu(Sender: TObject);
    begin
      // Action en fonction de l'élément du menu cliqué
      if Sender = Button1 then
      begin
       // convertit Sender à l'aide de as si besoin est d'agir sur le sender
       // (Sender as TButton).Caption par exemple
     
      end
      else if Sender = Button2 then
      begin
     
      end
      else // jusqu'à plus soif
      begin
     
      end;
    end;
    C'est assez clair ?

    Une autre solution consiste à utiliser une action partagée mais je ne m'attarde pas là-dessus (pas trop le temps).

    cdlt

    e-ric

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 245
    Points : 154
    Points
    154
    Par défaut
    Oops, j'ai tape une betise: la syntaxe exacte est (sender as TMenuItem) .tag ou TMenuItem(Sender).Tag. Ca devrait marcher.

  6. #6
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Mai 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2004
    Messages : 156
    Points : 90
    Points
    90
    Par défaut
    Ok merci je vais tester de suite !

  7. #7
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Mai 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2004
    Messages : 156
    Points : 90
    Points
    90
    Par défaut
    Merci à vous 2 ça marche désormais !!

  8. #8
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 564
    Points : 3 968
    Points
    3 968
    Par défaut
    C'est pas merveilleux la vie ??

    e-ric

  9. #9
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Mai 2004
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2004
    Messages : 156
    Points : 90
    Points
    90
    Par défaut
    si si

  10. #10
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 564
    Points : 3 968
    Points
    3 968
    Par défaut
    Pas encore au lit ???

    e-ric

  11. #11
    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
    Toi non plus Et moi non plus ^^

    Mais ça tourne un peu beaucoup au hors-sujet, là

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

Discussions similaires

  1. A propos du "Sender : Tobject" dans les évènements
    Par Letinono dans le forum Débuter
    Réponses: 3
    Dernier message: 28/05/2008, 15h17
  2. Réponses: 6
    Dernier message: 01/02/2006, 01h30
  3. Record et TObject
    Par spirale dans le forum Langage
    Réponses: 2
    Dernier message: 13/09/2002, 13h06
  4. Un Sender peut-il s'auto-détruire lors d'un onClick?
    Par Flo. dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/07/2002, 11h31
  5. TObject->Color et composantes RGB
    Par Flo. dans le forum C++Builder
    Réponses: 10
    Dernier message: 14/06/2002, 18h07

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