TActionManager
TCustomActionList
に由来します。後者でできることは何でも、前者で行うことができます。それには、使用する必要のある2つのプロパティー、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
に導入されているので、上記のコードはそのクラスから降りていないものもフィルタリングします。
アクションのGroupIndexプロパティを設定した場合、追加のコードをまったく書く必要はありません。このプロパティーは、アクションがグループの一部であることをアクションに伝えるので、ラジオボタンのように、チェックされたときに自動的にすべてのチェックボックスをオフにします。 –
また、この質問はリボンやDelphi 2009とは関係がありません.Delphi 4でアクションが導入されました。これらのタグを削除するか、質問を編集して関連性の高いものにすることを検討してください。 –
@Rob:タグ上の優れた点は、誤ったタグ付けに賛成することを認めます。あなたの提案に従って編集しました。偉大な答えは、BTW! – Argalatyr