Como acessar a propriedade checked de um botão Delphi 2009 fita em tempo de execução?

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

  •  23-08-2019
  •  | 
  •  

Pergunta

Eu quero redefinir a "verificada" a propriedade de todos os objetos TAction de uma fita para false ao clicar em qualquer botão fita e só então definir verdade sobre o botão pressionado. Mas eu ainda não encontrou uma maneira de acessar todos os "verificados" propriedades das ações do ActionManager. Eu acho que preciso percorrer ActionList do ActionManager ... no entanto, mas eu ainda não encontrou o caminho certo para fazer. Eu ficaria muito feliz se alguém poderia me dar alguma dica sobre isso.

Obrigado!

Foi útil?

Solução

desce TActionManager de TCustomActionList, então o que você pode fazer com o último, você pode fazer com o antigo. Ele tem duas propriedades que você precisa para usar, Actions, que é a propriedade de matriz que lhe dá acesso a todas as ações da lista, e ActionCount, que lhe diz quantos existem. Use-os para escrever um loop normal, como este:

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;

listas de ação pode conter muitos tipos de ações, e nem todos eles têm propriedades Checked. Essa propriedade é introduzido no TCustomAction, de modo que o código acima também filtra as coisas que não descem a partir dessa classe.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top