Как получить доступ к проверенному свойству кнопки ленты Delphi 2009 во время выполнения?
Я хочу сбросить свойство "флажок" всех объектов TAction ленты на "ложь" при нажатии на любую кнопку ленты, а затем установить только значение "истина" на нажатой кнопке. Но я еще не нашел способ получить доступ ко всем "проверенным" свойствам действий ActionManager. Я думаю, что мне нужно просмотреть список действий actionmanager... однако, но я еще не нашел правильный способ сделать это. Я был бы очень рад, если бы кто-нибудь дал мне подсказку на это.
Спасибо!
1 ответ
TActionManager
спускается с TCustomActionList
так что все, что вы можете сделать с последним, вы можете сделать с первым. У него есть два свойства, которые вам нужно использовать, Actions
, которое является свойством массива, которое дает вам доступ ко всем действиям списка, и ActionCount
, который говорит вам, сколько их. Используйте их, чтобы написать обычный цикл, например так:
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;
Списки действий могут содержать множество видов действий, и они не все имеют Checked
свойства. Это свойство вводится в TCustomAction
поэтому приведенный выше код также отфильтровывает вещи, которые не происходят от этого класса.