É possível colocar um botão dentro de um componente panel? Olá, bom dia! Estou engatinhando no Framework e não consegui encontrar uma forma de colocar um botão dentro de um panel, estou preferindo trabalhar com coordenadas dentro de um Panel para montar os formulários. Pretendo em breve adquirir o Adianti Studio mas quero tentar produzir sem a ajuda da ferramento de design. Alguém saberia me dizer a melhor forma de implementar o código? Abr...
GO
É possível colocar um botão dentro de um componente panel?  
Fechado
Olá, bom dia!

Estou engatinhando no Framework e não consegui encontrar uma forma de colocar um botão dentro de um panel, estou preferindo trabalhar com coordenadas dentro de um Panel para montar os formulários.
Pretendo em breve adquirir o Adianti Studio mas quero tentar produzir sem a ajuda da ferramento de design.
Alguém saberia me dizer a melhor forma de implementar o código?

Abraços!

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (6)


PD

use a TTable, com ela fica facil de organizar os itens e sem suar coordenadas
GO

Olá Progs, Bom dia!

Eu não gostei da disposição dos itens na tela, prefiro a ideia de poder colocar os itens em qualquer posição, vou tentar insistir.

Sabe se existe a possibilidade de colocar um botão dentro de um TPanel?

Obrigado pelo retorno!
PD

Oi Geovani,

Você precisará:

1) Criar o botão:
$button1=new TButton('action1');
$button1->setAction(new TAction(array($this, 'onSave')), 'Save');
$button1->setImage('ico_save.png');

2) Acrescentar o botão no painel:
$panel->put($button1, ...);

Entretanto somente isso não será suficiente. Você precisará acrescentar um formulário ao redor do painel para manipular os campos do painel.

O painel (TPanel) assim como a tabela (TTable) são somente objetos de apresentação. Já o formulário, ao encapsular estes, adiciona a possibilidade de manipulação dos objetos. Então você precisará adicionar o painel ao formulário.

Além disso, precisará executar o método TForm::setFields() para definir explicitamente quais campos serão manipulados (postados) pelo form, nunca esquecendo de passar o próprio botão de ação junto.

De qualquer maneira, todos os conceitos estão detalhados aqui:
www.adianti.com.br/bkframe

Caso você não tenha entendido direito, adaptei seu exemplo e acrescentei o botão que você queria:

 
  1. <?php
  2. class ClienteFormPanel extends TPage{
  3. private $form;
  4. function __construct(){
  5. parent::__construct();
  6. $this->form = new TForm;
  7. $panel = new TPanel(940, 500);
  8. $titulo = new TLabel('Cadastro de Clientes');
  9. $titulo->setFontSize(14);
  10. $titulo->setFontFace('Arial');
  11. $titulo->setFontColor('black');
  12. $titulo->setFontStyle('b');
  13. $panel->put($titulo,10,2);
  14. $imagem = new TImage('app/images/mouse.png');
  15. $panel->put($imagem,800,380);
  16. $id = new TEntry('id');
  17. $id->setSize(70);
  18. $id->setEditable(FALSE);
  19. $name = new TEntry('name');
  20. $name->setSize(300);
  21. $name->setMaxLength(100);
  22. $fantasia = new TEntry('fantasia');
  23. $fantasia->setSize(300);
  24. $fantasia->setMaxLength(100);
  25. $cpfcnpj = new TEntry('CpfCnpj');
  26. $cpfcnpj->setSize(150);
  27. $cpfcnpj->setMaxLength(14);
  28. $rgie = new TEntry('Rgie');
  29. $rgie->setSize(100);
  30. $rgie->setMaxLength(14);
  31. $label1 = new TLabel('Código');
  32. $label1->setFontStyle('b');
  33. $label2 = new TLabel('Razão Social');
  34. $label2->setFontStyle('b');
  35. $label3 = new TLabel('UF');
  36. $label3->setFontStyle('b');
  37. $lblFantasia = new TLabel('Nome Fantasia');
  38. $lblFantasia->setFontStyle('b');
  39. $lblcpfcnpj = new TLabel('CPF/CNPJ');
  40. $lblcpfcnpj->setFontStyle('b');
  41. $lblrgie = new TLabel('RG/IE');
  42. $lblrgie->setFontStyle('b');
  43. $panel->put($label1 ,10,40);
  44. $panel->put($id ,10,60);
  45. $panel->put($label2 ,10,90);
  46. $panel->put($name ,10,110);
  47. $panel->put($lblFantasia, 330,90);
  48. $panel->put($fantasia, 330,110);
  49. $panel->put($lblcpfcnpj, 650,90);
  50. $panel->put($cpfcnpj , 650,110);
  51. $panel->put($lblrgie, 820,90);
  52. $panel->put($rgie , 820,110);
  53. $button1=new TButton('action1');
  54. $button1->setAction(new TAction(array($this, 'onSave')), 'Save');
  55. $button1->setImage('ico_save.png');
  56. $panel->put($button1, 200,500 );
  57. $this->form->add($panel);
  58. $this->form->setFields(array( $id, $name, $fantasia, $cpfcnpj, $rgie, $button1));
  59. parent::add($this->form);
  60. }
  61. public function onSave()
  62. {
  63. $data = $this->form->getData();
  64. $this->form->setData($data);
  65. var_dump($data);
  66. }
  67. }
  68. ?>
PD

Ou aqui:
pastebin.com/g8emj5JS

Att,
Pablo
GO

Perfeito Pablo!

Consegui entender muito bem.
E adquiri o livro sobre o Framework e estou gostando muito, meu próximo passo será adquirir o Adianti estudio.

obrigado pelo retorno.

Abraço!
PD

Oi Geovani,

Maravilha, no que precisar, estamos às ordens.

Abraço!
Pablo