Wie die geprüfte Eigenschaft eines Delphi 2009 Band-Taste auf der Laufzeit zugreifen?

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

  •  23-08-2019
  •  | 
  •  

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!

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top