Essa é tipica a pergunta de quem vem do Visual Basic ou Delphi no ambiente web esse procedimento é feito por meio de uma requisição. ou seja é criada uma função dentro da classe onde no objeto botão passamos "a ação" que na verdade é uma requisição feita em "JavaScript" onde dentro do Adianti Framework é como se estive usando o Delphi ou VB.
Exemplo:
Imagina o botão salvar esta na mesma classe que possui a função "onSave()" os parametros do botão a action fica assim.
Apesar de ser um mundo novo para mim o ambiente web PHP e Orientação a Objetos (tenho menos de 1 ano) tenho tido ótimos resultados.
Os mais experientes podem ajudar, complementar ou corrigir "Estou sempre disposto a apreender".
Sds
Felipe Cortez
SF
Sergio Figueiredo - AUTOR DO POST
17/03/2015 (há 10 anos)
Felipe,
grato pela ajuda, ajuda muito
mas o que eu preciso é realizar o evento "click" . Vc ensinou a "programar" o evento. Eu quero é clicar
PD
Pablo Dall'Oglio
23/03/2015 (há 10 anos)
Sergio,
Se você desenhou o formulário no Form designer, ao clicar sobre o botão, na parte de propriedades aparece um campo chamado método. Ali você preenche com o método a ser executado. Quando você gerar o código PHP, ele já vai gerar aquele método. Se você preencher a combobox modelo, então aquele método já terá o "corpo" da função apontado ali.
Se você quer desenhar o formulário, e apontar a função manualmente, você precisa "obter" o botão via programação para depois anexar um método à ele. Para tal, é importante preencher o campo (Nome) lá no Form Designer. O código fica mais ou menos assim:
<?php
try
{
$ui = new TUIBuilder(500,500);
$ui->setController($this);
$ui->setForm($this->form);
$ui->parseFile('app/forms/teste.form.xml');
// obtêm o botão e define a ação
$botao1 = $ui->getWidget('botao1'); // veja que o nome dado para ele é botao1
Por que você precisa gerar esse evento?
Pergunto isso, pois existem inúmeras formas de se resolver o mesmo problema e raramente precisamos utilizar isso no framework.
Talvez você está com alguma técnica "Delphiana" na mente :-)
Lembre que em PHP, você pode invocar um método a qualquer momento, dentro de qualquer ação:
<?php
$class = new Classe;
$class->metodo();
?>
Abs,
SF
Sergio Figueiredo - AUTOR DO POST
25/03/2015 (há 10 anos)
KKK Delphiana ? O nome seria Raposiana (de raposas a linguagem é Foxpro)
Mas é isso mesmo.
E que tal capturar o evento que coloquei no botao (exemplo action1) e aí invocar o metodo, como sugeriu ?
Como seria ?
SF
Sergio Figueiredo - AUTOR DO POST
25/03/2015 (há 10 anos)
Pablo, não respondi a sua pergunta:
"Por que você precisa gerar esse evento? "
Quero fazer algo como this->form1->botao1('click')
e ele executar a ação que está gravada no botão (exemplo onedit())
A ideia é que não quero lembrar do "metodo", e sim do "botão"
PD
Pablo Dall'Oglio
15/04/2015 (há 10 anos)
O botão é somente um elemento de interface, não podemos dar muita importância para ele ;-)
O Botão possui o método getAction(), que retorna a ação (TAction) vinculada.
A classe TAction, por sua vez, possui o método getAction(), que retorna o método,
no formato array($objeto, $metodo), que pode ser invocado pela função call_user_func() do PHP.
Bom dia Sergio
Essa é tipica a pergunta de quem vem do Visual Basic ou Delphi no ambiente web esse procedimento é feito por meio de uma requisição. ou seja é criada uma função dentro da classe onde no objeto botão passamos "a ação" que na verdade é uma requisição feita em "JavaScript" onde dentro do Adianti Framework é como se estive usando o Delphi ou VB.
Exemplo:
Imagina o botão salvar esta na mesma classe que possui a função "onSave()" os parametros do botão a action fica assim.
$save_button->setAction(new TAction(array($this, 'onSave')), 'Salvar');
Apesar de ser um mundo novo para mim o ambiente web PHP e Orientação a Objetos (tenho menos de 1 ano) tenho tido ótimos resultados.
Os mais experientes podem ajudar, complementar ou corrigir "Estou sempre disposto a apreender".
Sds
Felipe Cortez
Felipe,
grato pela ajuda, ajuda muito
mas o que eu preciso é realizar o evento "click" . Vc ensinou a "programar" o evento. Eu quero é clicar
Sergio,
Se você desenhou o formulário no Form designer, ao clicar sobre o botão, na parte de propriedades aparece um campo chamado método. Ali você preenche com o método a ser executado. Quando você gerar o código PHP, ele já vai gerar aquele método. Se você preencher a combobox modelo, então aquele método já terá o "corpo" da função apontado ali.
Se você quer desenhar o formulário, e apontar a função manualmente, você precisa "obter" o botão via programação para depois anexar um método à ele. Para tal, é importante preencher o campo (Nome) lá no Form Designer. O código fica mais ou menos assim:
Att,
Pablo
Entendi, Pablo. Só falta mesmo fazer o que preciso, "clicar"
Não tenho duvida na ação, mas eu preciso realizar o "evento" clicar, por programação.
Em VB seria algo
thisform.botao1.click()
somente com java script
exemplo:
jsfiddle.net/9Kx2t/
Sérgio,
Por que você precisa gerar esse evento?
Pergunto isso, pois existem inúmeras formas de se resolver o mesmo problema e raramente precisamos utilizar isso no framework.
Talvez você está com alguma técnica "Delphiana" na mente :-)
Lembre que em PHP, você pode invocar um método a qualquer momento, dentro de qualquer ação:
Abs,
KKK Delphiana ? O nome seria Raposiana (de raposas a linguagem é Foxpro)
Mas é isso mesmo.
E que tal capturar o evento que coloquei no botao (exemplo action1) e aí invocar o metodo, como sugeriu ?
Como seria ?
Pablo, não respondi a sua pergunta:
"Por que você precisa gerar esse evento? "
Quero fazer algo como this->form1->botao1('click')
e ele executar a ação que está gravada no botão (exemplo onedit())
A ideia é que não quero lembrar do "metodo", e sim do "botão"
O botão é somente um elemento de interface, não podemos dar muita importância para ele ;-)
O Botão possui o método getAction(), que retorna a ação (TAction) vinculada.
A classe TAction, por sua vez, possui o método getAction(), que retorna o método,
no formato array($objeto, $metodo), que pode ser invocado pela função call_user_func() do PHP.
Ex:
Att,
Pablo