WS
Método para trocar cor de um TButton
Bom dia a todos,
estou tentando fazer um método que altera a cor dos botões. Até aí é bem simples. Segue exemplo de como estou fazendo:
O problema é que preciso acessar esse método a partir de um método estático. Sendo assim, não poderia chamá-lo com o comando
Para que fosse possível acionar o método, teria que transformá-lo em estático e consequentemente nao poderia usar mais o comando
para alterar o botão.
No componente TButton, consigo por exemplo torná-lo disable ou enable através do comando
Neste caso passo o formulário a ser alterado e o componente, mas para alterar cor e label nao sei de nada parecido.
Seria possível alterar a cor e o label do botão com algo semelhante ou por acaso, alguem tem uma ideia diferente dessa que possa funcionar?
obrigado!
estou tentando fazer um método que altera a cor dos botões. Até aí é bem simples. Segue exemplo de como estou fazendo:
- <?php
- public function onChangeColor($campo, $status)
- {
- if ($campo == 'status')
- {
- $status_btn = $this->form->getField('status_btn');
- if ($status == 'A')
- {
- $status_btn->setLabel("Ativo");
- $status_btn->style = 'background:#006400;color:white;';
- }
- elseif ($status == 'D')
- {
- $status_btn->setLabel("Desistiu");
- $status_btn->style = 'background:orange;color:white;';
- }
- elseif ($status == 'I')
- {
- $status_btn->setLabel("Inativo");
- $status_btn->style = 'background:black;color:white;';
- }
- elseif ($status == 'P')
- {
- $status_btn->setLabel("Pré-Contrato");
- $status_btn->style = 'background:#eead2d;color:white;';
- }
- elseif ($status == 'N')
- {
- $status_btn->setLabel("Negativado");
- $status_btn->style = 'background:#ae0000;color:white;';
- }
- }
- }
- ?>
O problema é que preciso acessar esse método a partir de um método estático. Sendo assim, não poderia chamá-lo com o comando
- <?php
- $this->onChangeColor($campo, $status);
- ?>
Para que fosse possível acionar o método, teria que transformá-lo em estático e consequentemente nao poderia usar mais o comando
- <?php
- $status_btn = $this->form->getField('status_btn');
- ?>
para alterar o botão.
No componente TButton, consigo por exemplo torná-lo disable ou enable através do comando
- <?php
- TButton::disableField('form_Contrato', 'status');
- ?>
Neste caso passo o formulário a ser alterado e o componente, mas para alterar cor e label nao sei de nada parecido.
Seria possível alterar a cor e o label do botão com algo semelhante ou por acaso, alguem tem uma ideia diferente dessa que possa funcionar?
obrigado!
Boa tarde, Willian
Muda com javascript, segue um exemplo:
Boa tarde Hélquisson Dourado,
Primeiramente, obrigado pela ajuda!
Fiz o que me sugeriu e funcionou para alterar a classe do botão. Não domino JS e tentei adaptar o código para minha necessidade que é de mudar o label, alterar o backgroud do botão e deixar a letra branca, no entanto, não consegui. Pesquisei na internet alguns comandos para alterar tais atributos mas até agora nenhum funcionou. Tem alguam ideia de como poderia fazer?
Segue abaixo algumas das tentativas que fiz
att,
William
Tenta assim:
show cara... deu certinho.... com esse seu código entendi melhor como funciona a coisa...
Muito obrigado Hélquisson Dourado!
Perfeito... William!!