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

Lazarus Pascal Discussion :

Accéder à la propriété "Enabled" d'une action d'un TActionList [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut Accéder à la propriété "Enabled" d'une action d'un TActionList
    Bonjour à toutes et à tous,

    Je dois être bien bête, mais je n'arrive pas à avoir accès par programmation à la propriété "Enabled" d'une action d'un TActionList, bien que cette propriété figure dans l'inspecteur d'objets et que si on la coche ou décoche dans l'inspecteur cela agit.

    Que j'écrive :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      i:= MaListeActions.IndexOfName('MonAction');
      MaListeActions.Actions[i].  // pas de propriété "Enable"
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaListeActions.ActionByName('MonAction').  // pas de propriété "Enable"
    Je n'ai pas de propriété "Enabled". Comment fait-on pour y accéder ?

    Cordialement.

    Pierre

  2. #2
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Bon, j'ai trouvé la solution.

    Les actions étant des enfants de ActionList, je voulais passer par "MaListeActions" pour atteindre les enfants.

    Il suffit en fait d'accéder directement aux actions elles-mêmes, soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonAction.Enabled:= True ou False ...
    Voilà, voilà, c'était bien bête

    Cordialement.

    Pierre.

  3. #3
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par ChPr Voir le message
    ... Les actions étant des enfants de ActionList, ...
    Mis à part que ma solution fonctionne, TAction n'est pas un descendant de TActionList, n'en est même pas une propriété. La propriété de TActionList qui pourrait y faire lien est la propriété "Actions", mais elle ne fait référence qu'à un ancêtre "TContainedAction" de TAction.

    Cordialement.

    Pierre.

  4. #4
    Expert confirmé
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Points : 4 346
    Points
    4 346
    Billets dans le blog
    2
    Par défaut
    Salut Pierre,

    Les TAction / TActionList, ne fonctionnent pas comme une liste normale.

    Le plus "vieux" parent de TAction est TComponent.

    Si tu veux acceder aux Actions via l'ActionList tu doit transtyper

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TAction(ActionList.Actions[0].ActionList.ActionByName('Test')).Enabled := true;
    ou ActionList.Actions[0] correspond aux catégories de l'ActionList

    A+

    Jérôme
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  5. #5
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Citation Envoyé par BeanzMaster Voir le message
    ... Si tu veux acceder aux Actions via l'ActionList tu doit transtyper ...
    Salut Jérome, j'avais essayé de transtyper, mais je n'étais pas remonté assez loin.

    Bon, par ailleurs, c'est plus simple d'y avoir accès directement.

    Cordialement.

    Pierre

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/03/2011, 01h54
  2. Réponses: 5
    Dernier message: 11/06/2009, 17h46
  3. Réponses: 6
    Dernier message: 11/11/2008, 13h20
  4. Réponses: 1
    Dernier message: 19/12/2007, 12h55
  5. Réponses: 2
    Dernier message: 09/11/2007, 15h32

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