Comment accéder à la propriété checked d'un bouton de ruban Delphi 2009 sur l'exécution?

StackOverflow https://stackoverflow.com/questions/1084659

  •  23-08-2019
  •  | 
  •  

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!

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top