Come accedere alla proprietà verificata di un pulsante della barra multifunzione Delphi 2009 in fase di esecuzione?

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

  •  23-08-2019
  •  | 
  •  

Domanda

Voglio azzerare il "controllato" proprietà di tutti gli oggetti dell'aderenza in marcia di un nastro su false quando si fa clic su qualsiasi pulsante della barra multifunzione e quindi unico set vero sul tasto premuto. Ma non ho ancora trovato un modo per accedere a tutti i "controllato" proprietà delle azioni del ActionManager. Penso di aver bisogno di scorrere ActionList del ActionManager ... tuttavia, ma non ho ancora trovato il modo giusto per farlo. Sarei molto felice se qualcuno mi potrebbe dare qualche suggerimento su questo.

Grazie!

È stato utile?

Soluzione

TActionManager scende dal TCustomActionList, per cui qualunque cosa si può fare con questi ultimi, si può fare con l'ex. Ha due proprietà che avrete bisogno di utilizzare, Actions, che è la proprietà di matrice che consente di accedere a tutte le azioni della lista, e ActionCount, che ti dice quanti ce ne sono. Utilizzare loro di scrivere un ciclo normale, in questo modo:

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;

liste di azione può contenere un sacco di tipi di azioni, e lo fanno proprietà non tutti hanno Checked. Che la proprietà è stato introdotto in TCustomAction, in modo che il codice di cui sopra anche filtra le cose che non discendono da quella classe.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top