Comment accéder à la propriété checked d'un bouton de ruban Delphi 2009 sur l'exécution?
Question
Je veux rétablir la « cochée » la propriété de tous les objets TCommand d'un ruban à false lorsque vous cliquez sur un bouton de ruban puis définissez seulement il vrai sur le bouton enfoncé. Mais je ne trouve pas encore un moyen d'accéder à toutes les propriétés « checked » des actions du ActionManager. Je pense que je dois faire une boucle à travers le ActionList du ActionManager ... cependant, mais je ne trouve pas encore la bonne façon de le faire. Je serais très heureux si quelqu'un pourrait me donner quelques indices à ce sujet.
Merci!
La solution
TActionManager
descend de TCustomActionList
, donc tout ce que vous pouvez faire avec ce dernier, vous pouvez le faire avec l'ancien. Il dispose de deux propriétés dont vous aurez besoin d'utiliser, Actions
, qui est la propriété de tableau qui vous donne accès à toutes les actions de la liste, et ActionCount
, qui vous indique combien il y a. Utilisez-les pour écrire une boucle ordinaire, comme ceci:
var
i: Integer;
Contained: TContainedAction;
Action: TCustomAction;
begin
for i := 0 to Pred(ActionList.ActionCount) do begin
Contained := ActionList[i]; // shorthand for ActionList.Actions[i]
if not (Contained is TCustomAction) then
continue; // Doesn't have Checked property
Action := TCustomAction(Contained);
Action.Checked := False;
end;
end;
Les listes d'actions peuvent contenir beaucoup de types d'actions, et ils ont des propriétés tout ne Checked
. Cette propriété est introduit dans TCustomAction
, de sorte que le code ci-dessus aussi filtre les choses qui ne descendent pas de cette classe.