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 :

TAction -> Tag du composant qui le lance


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut TAction -> Tag du composant qui le lance
    Bonjour,

    Tout est dit dans le titre... ..Mais voici plus de détails
    J'ai plusieurs composants (tMenuItem) qui sont attachés au même tAction d'un tActionList
    J'aimerais récuperer, dans le ActionList1Execute(Sender: TObject), les proprietés du composant "père".
    Si je fait: ShowMessage(IntToStr(TComponent(Sender).Tag));
    Il me retourne le tag du tAction, et non celui du tMenuItem.

    Comment faire ?

    Merci d'avacnce.

  2. #2
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Ce ne serait pas plutôt le OnExecute du TAction qui te permettrait de faire ça ?

    Au pire, ce que tu peux faire, c'est de modifier le Tag du TAction, dans TACtion.OnExecute , puis de récupérer celui-ci dans le TActionList.OnExecute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure Form1.Action1Execute(Sender:TObject);
    begin
      Action1.Tag:=TComponent(Sender).Tag;
    end;
     
    procedure TForm1.Action1Execute(Sender:TObject);
    begin
      Action1.Tag:=TComponent(Sender).Tag;
    end;
     
    procedure TForm1.ActionList1Execute(Action:TBasicAction;varHandled:Boolean);
    begin
      ShowMessage(IntToStr(Action.Tag));
    end;

    Sinon,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActionList1Execute(Sender: TObject)
    Chez moi, cet événement n'est pas prototypé comme ça, mais plutôt comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActionList1Execute(Action:TBasicAction;varHandled:Boolean);

  3. #3
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    N'importe quoi, je raconte n'importe quoi !

    Essaies ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.Action1Execute(Sender: TObject);
    begin
      ShowMessage(IntToStr(Action1.ActionComponent.Tag));
    end;
    Bon dev

  4. #4
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    Bonjour waskol,

    En effet, je me suis trompé, ce n'est pas ActionList1Execute mais Action1Execute, j'ai été trop vite...

    Merci pour la solution, ça marche !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/02/2015, 21h28
  2. Procedure détecte le composant qui l'a lancée
    Par xenos dans le forum Composants VCL
    Réponses: 10
    Dernier message: 16/06/2006, 21h41
  3. Bootloader qui ne lance pas le Kernel
    Par Jb59 dans le forum Programmation d'OS
    Réponses: 2
    Dernier message: 01/08/2005, 22h29
  4. [JTable] [FocusListener] Savoir le composant qui appelle
    Par IvanPopov dans le forum Composants
    Réponses: 7
    Dernier message: 27/07/2005, 13h55
  5. Gérer ce qui se lance avec linux
    Par Harry dans le forum Mandriva / Mageia
    Réponses: 7
    Dernier message: 26/07/2004, 16h05

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