PD
Acrescentando um THtmlEditor ao Designer
Fechado
Há um tempo atrás foi perguntado na nossa lista como acrescentar um THtmlEditor à uma tela criada pelo Designer, uma vez que ele não suporta diretamente o THtmlEditor. Pois bem, qualquer objeto pode ser acrescentado de maneira dinâmica (no código-fonte) à um formulário criado pelo designer. Para acrescentar um THtmlEditor é bem simples.
Como todo TUIBuilder é também filho de TPanel, podemos instanciar o objeto desejado e em seguida usar o método put() para adicioná-lo à tela. É isso mesmo. Tendo em mãos o objeto instância de TUIBuilder dá pra fazer várias coisas.
Mas normalmente queremos acrescentar o THtmlEditor dentro de uma aba do notebook ou outro lugar pré-marcado. Neste caso, existe uma estratégia melhor, que é criar um TFrame para marcar o lugar onde o THtmlEditor será inserido. Assim, você deve criar um frame no designer e dar um nome para ele. Neste caso, usei o nome "frame_html". No código a seguir, obtemos o Frame criado, e adicionamos o THtmlEditor em seu interior:
Além disso, você só terá de adicionar o campo ao setFields(), caso contrário, ele não passará no POST. Lembrando que o setFields() indica quais objetos serão postados com o formulário:
Como todo TUIBuilder é também filho de TPanel, podemos instanciar o objeto desejado e em seguida usar o método put() para adicioná-lo à tela. É isso mesmo. Tendo em mãos o objeto instância de TUIBuilder dá pra fazer várias coisas.
- <?php
- $html = new THtmlEditor('html');
- $ui = new TUIBuilder(500,300);
- $ui->put($html, 40,40); // coluna e linha
- ?>
Mas normalmente queremos acrescentar o THtmlEditor dentro de uma aba do notebook ou outro lugar pré-marcado. Neste caso, existe uma estratégia melhor, que é criar um TFrame para marcar o lugar onde o THtmlEditor será inserido. Assim, você deve criar um frame no designer e dar um nome para ele. Neste caso, usei o nome "frame_html". No código a seguir, obtemos o Frame criado, e adicionamos o THtmlEditor em seu interior:
- <?php
- $html = new THtmlEditor('html');
- $html->setSize( 500, 280 );
- $ui = new TUIBuilder(500,300);
- $frame_html = $ui->getWidget( 'frame_html' ); // lê o frame
- $frame_html->clearChildren(); // limpa o conteúdo do frame
- $frame_html->setLegend('HTML'); // adiciona legenda
- $frame_html->add( $html ); // adiciona o THtmlEditor
- ?>
Além disso, você só terá de adicionar o campo ao setFields(), caso contrário, ele não passará no POST. Lembrando que o setFields() indica quais objetos serão postados com o formulário:
- <?php
- $this->form->addField($html);
- ?>