GARANTIR DESCONTO

Fórum ActionManager e Menus #483774

26/06/2014

0

Pessoall,

Tenho um ActionManager no meu projeto que possui todas chamadas para os forms do mesmo. Também tenho um painel no meu form principal com alguns labels em branco. Gostaria de que, quando alguma ação fosse executada no ActionManager (sei que existe um evento nele chamado ONEXECUTE), automaticamente o caption dessa ação fosse copiada para o caption do label e também o evento execute da ação passasse a ser executada pelo evento on-click do label.

Alguém poderia me ajudar nisso aí?
Adilson Júnior

Adilson Júnior

Responder

Posts

27/06/2014

Joel Rodrigues

No OnExecute do ActionManager, teste o seguinte:
  Label1.Caption := (Action as TAction).Caption;
  Label1.OnClick := (Action as TAction).OnExecute;
Responder

Gostei + 0

27/06/2014

Adilson Júnior

No OnExecute do ActionManager, teste o seguinte:
  Label1.Caption := (Action as TAction).Caption;
  Label1.OnClick := (Action as TAction).OnExecute;


Obrigado pela dica Joel...

Mas deixa eu aproveitar e abusar um pouco mais... Estou criando tipo um "Favoritos" com as opções mais usadas pelo usuário. Criei uma tabela onde eu guardo o nome do atalho (Consumo, por exemplo), o nome do Taction (AC_Consumo) e o index dele no objeto ActionManager... Quando o programa é aberto, eu chamo um procedimento que criei que "monta" esse favorito. Ele pega um linklabel de uma suite de componentes que tenho aqui, coloca no caption a descrição do atalho. Só não estou conseguindo associar o Action desse objeto ao respectivo action do favorito. Você teria alguma ideia de como eu posso fazer isso?
Responder

Gostei + 0

27/06/2014

Joel Rodrigues

Você pode primeiramente acessar a action pelo nome, a partir da lista de componente do form ou do actionmanager, fazer um cast para TAction e usar o mesmo esquema da segunda linha do código que lhe passei. Creio que assim dá certo.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar