Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在运行时访问Delphi 2009功能区按钮的checked属性?_Delphi_Taction - Fatal编程技术网

如何在运行时访问Delphi 2009功能区按钮的checked属性?

如何在运行时访问Delphi 2009功能区按钮的checked属性?,delphi,taction,Delphi,Taction,我想在单击任何功能区按钮时将功能区的所有TAction对象的“checked”属性重置为false,然后仅在按下的按钮上将其设置为true。 但我还没有找到访问ActionManager操作的所有“选中”属性的方法。 我想我需要循环查看actionmanager的actionlist。。。但是,我还没有找到正确的方法去做。 如果有人能给我一些提示,我将非常高兴 谢谢 TActionManager是从TCustomActionList派生而来的,因此无论您如何使用后者,都可以使用前者。它有两个您需

我想在单击任何功能区按钮时将功能区的所有TAction对象的“checked”属性重置为false,然后仅在按下的按钮上将其设置为true。 但我还没有找到访问ActionManager操作的所有“选中”属性的方法。 我想我需要循环查看actionmanager的actionlist。。。但是,我还没有找到正确的方法去做。 如果有人能给我一些提示,我将非常高兴


谢谢

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;

操作列表可以包含许多类型的操作,并且它们并不都具有选中的属性。该属性是在
TCustomAction
中引入的,因此上面的代码也会过滤掉不属于该类的内容。

如果设置操作的GroupIndex属性,则根本不需要编写任何其他代码。该属性告诉操作它们是一个组的一部分,因此当任何一个被选中时,它们会自动取消选中其他所有项,就像单选按钮一样。此外,我不确定这个问题是否与Ribbon或Delphi 2009有关。在Delphi4中引入了操作。考虑删除这些标签或编辑问题,使这些细节相关。@罗布:标签上的大点,并承认是在MIS标签的串通。根据你的建议进行编辑。很好的回答,顺便说一句@罗布:你完全正确,不知道我为什么错过了。这解决了我的问题;)虽然下面的答案也很有帮助,因为我以后可能需要访问一些属性。@Argalatyr:谢谢您编辑标记!虽然rob用另一种方式解决了我的具体问题,但这个答案对于理解所有这些动作是如何工作的也很有帮助。谢谢