Lançado Adianti Framework 7.6!
Clique aqui para saber mais
É 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 completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto 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.     
  5.     function __construct(){
  6.         parent::__construct();
  7.         $this->form = new TForm;
  8.         
  9.         $panel = new TPanel(940500);
  10.         $titulo = new TLabel('Cadastro de Clientes');
  11.         $titulo->setFontSize(14);
  12.         $titulo->setFontFace('Arial');
  13.         $titulo->setFontColor('black');
  14.         $titulo->setFontStyle('b');
  15.         
  16.         $panel->put($titulo,10,2);
  17.         $imagem = new TImage('app/images/mouse.png');
  18.         $panel->put($imagem,800,380);
  19.         
  20.         $id = new TEntry('id');
  21.         $id->setSize(70);
  22.         $id->setEditable(FALSE);
  23.         
  24.         $name = new TEntry('name');
  25.         $name->setSize(300);
  26.         $name->setMaxLength(100);
  27.         
  28.         $fantasia = new TEntry('fantasia');
  29.         $fantasia->setSize(300);
  30.         $fantasia->setMaxLength(100);
  31.         
  32.         $cpfcnpj = new TEntry('CpfCnpj');
  33.         $cpfcnpj->setSize(150);
  34.         $cpfcnpj->setMaxLength(14);
  35.         
  36.         $rgie = new TEntry('Rgie');
  37.         $rgie->setSize(100);
  38.         $rgie->setMaxLength(14);
  39.         
  40.         $label1 = new TLabel('Código');
  41.         $label1->setFontStyle('b');
  42.         $label2 = new TLabel('Razão Social');
  43.         $label2->setFontStyle('b');
  44.         
  45.         $label3 = new TLabel('UF');
  46.         $label3->setFontStyle('b');
  47.         
  48.         $lblFantasia = new TLabel('Nome Fantasia');
  49.         $lblFantasia->setFontStyle('b');
  50.         
  51.         $lblcpfcnpj = new TLabel('CPF/CNPJ');
  52.         $lblcpfcnpj->setFontStyle('b');
  53.         
  54.         $lblrgie = new TLabel('RG/IE');
  55.         $lblrgie->setFontStyle('b');
  56.         
  57.         $panel->put($label1 ,10,40);       
  58.         $panel->put($id     ,10,60);
  59.         
  60.         $panel->put($label2 ,10,90);
  61.         $panel->put($name   ,10,110);
  62.         
  63.         $panel->put($lblFantasia330,90);
  64.         $panel->put($fantasia,    330,110);
  65.         
  66.         $panel->put($lblcpfcnpj650,90);
  67.         $panel->put($cpfcnpj   650,110);
  68.         
  69.         $panel->put($lblrgie,    820,90);
  70.         $panel->put($rgie   ,    820,110);
  71.         
  72.         $button1=new TButton('action1');
  73.         $button1->setAction(new TAction(array($this'onSave')), 'Save');
  74.         $button1->setImage('ico_save.png');
  75.         
  76.         $panel->put($button1200,500 );
  77.         
  78.         
  79.         $this->form->add($panel);
  80.         $this->form->setFields(array( $id$name,  $fantasia$cpfcnpj$rgie$button1));
  81.         parent::add($this->form);
  82.          
  83.     }
  84.     
  85.     public function onSave()
  86.     {
  87.         $data $this->form->getData();
  88.         $this->form->setData($data);
  89.         var_dump($data);
  90.     }
  91. }
  92. ?>
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