Wie die geprüfte Eigenschaft eines Delphi 2009 Band-Taste auf der Laufzeit zugreifen?
Frage
Ich möchte die „geprüft“ Eigentum aller TAction Objekte eines Bandes auf false zurückgesetzt, wenn auf jedem Band-Button klicken und dann setzen sie nur auf der gedrückten Taste wahr. Aber ich fand nicht, noch einen Weg, um alle für den Zugriff auf die „geprüft“ Eigenschaften der Actionmanager der Aktionen. Ich denke, ich Schleife muß durch die Aktionsliste der Action ... aber, aber ich habe noch nicht den richtigen Weg finden zu tun. Ich wäre sehr froh, wenn mir jemand einen Hinweis auf diese geben könnte.
Danke!
Lösung
TActionManager
stammt von TCustomActionList
, so was auch immer Sie mit diesem tun können, können Sie mit dem ehemaligen tun. Es verfügt über zwei Eigenschaften Sie verwenden müssen, Actions
, die die Array-Eigenschaft ist, dass Sie die Aktionen Zugriff auf alle Liste gibt, und ActionCount
, die Ihnen sagt, wie viele es sind. Verwenden sie eine gewöhnliche Schleife zu schreiben, wie folgt aus:
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;
Aktionslisten können viele Arten von Aktionen halten, und sie haben nicht alle Checked
Eigenschaften haben. Diese Eigenschaft wird in TCustomAction
eingeführt, so dass der Code oben auch filtert die Dinge aus, die von dieser Klasse nicht absteigen.