Je suis en train d'ajouter dynamiquement actionitems, je peux ajouter l'article et il fonctionne quand je fais ceci:Comment puis-je ajouter programatically actions à un gestionnaire d'action dans Delphi 2010
HostActionItem := ActionManager.ActionBars[0].Items[0].Items[2];
NewItem := HostAction.Items.Add;
NewItem.Action := MyActionToPerform;
NewItem.Caption := Description;
NewItem.ImageIndex := 1;
NewItem.Tag := 13;
Cependant, lorsque l'action Exécuter feux de méthode je tente d'obtenir le ActionComponent de l'objet de l'expéditeur comme ceci:
if (Sender is TAction) then
tag := (Sender As TAction).ActionComponent.Tag;
Mais le ActionComponent est toujours nul. Pourquoi le composant ActionComponent n'est pas initialisé?
_ "Pourquoi le composant ActionComponent n'est pas initialisé?" _ Semble être la vraie question ici, plutôt que de savoir comment ajouter des actions à un gestionnaire d'actions. En passant, essayez d'utiliser l'action 'Tag' et si vous avez besoin de tags différents pour la même action, cela peut-être symptomatique, vous avez besoin d'une autre action, au lieu de créer un gestionnaire d'événements" dieu "(http: //en.wikipedia. org/wiki/God_object). – Trinidad
Désolé de confondre la question en la formulant comme je l'ai fait. Essentiellement, vous avez raison. Je suis à la recherche d'actions dynamiques et j'ai donc besoin d'un gestionnaire d'événements assez flexible. Suggérez-vous de créer dynamiquement les actions sous-jacentes ou existe-t-il une meilleure façon de le faire? –