PD
Alterando componentes do designer via código
Fechado
O Studio Form Designer facilita bastante a tarefa de criação de formulários para a aplicação. Em sua barra de propriedades, ele possui alguns parâmetros que podemos ajustar em cada componente. Em um label, podemos ajustar cor e tamanho, dentre outros. Mesmo oferecendo diversos parâmetros, ele nunca oferecerá 100% das propriedades que podem ser alteradas via CSS, por exemplo, nem é esse o objetivo.
Assim, para complementar características visuais de elementos criados pelo designer, criei este artigo, onde explico como alterar as propriedades de um TLabel (cor, fonte, sombra) e de um TEntry (tamanho do campo e tamanho da fonte).
Primeiro, eu criei um formulário simples no designer, somente com um TLabel (label1) e um TEntry (entry1). Em seguida é criado o código a seguir para ler o formulário XML (teste.form.xml). Veja que obtemos os objetos por meio do método getWidget(), tanto o TLabel, quanto o TEntry. Em seguida, podemos executar métodos convencionais do framework, como TLabel::setFontColor() e TLabel::setFontSize(). Mesmo para propriedades que não possuem método, podemos alterar diretamente via tag style ($label1->style = '...'). Assim, ligamos a sombra do label, e também aumentamos o tamanho do TEntry, como podemos ver a seguir.
Assim, para complementar características visuais de elementos criados pelo designer, criei este artigo, onde explico como alterar as propriedades de um TLabel (cor, fonte, sombra) e de um TEntry (tamanho do campo e tamanho da fonte).
Primeiro, eu criei um formulário simples no designer, somente com um TLabel (label1) e um TEntry (entry1). Em seguida é criado o código a seguir para ler o formulário XML (teste.form.xml). Veja que obtemos os objetos por meio do método getWidget(), tanto o TLabel, quanto o TEntry. Em seguida, podemos executar métodos convencionais do framework, como TLabel::setFontColor() e TLabel::setFontSize(). Mesmo para propriedades que não possuem método, podemos alterar diretamente via tag style ($label1->style = '...'). Assim, ligamos a sombra do label, e também aumentamos o tamanho do TEntry, como podemos ver a seguir.
- <?php
- class TesteView extends TPage
- {
- private $form;
- function __construct()
- {
- parent::__construct();
- $this->form = new TForm('form_Backlog');
- try
- {
- // TUIBuilder object
- $ui = new TUIBuilder(500,500);
- $ui->setController($this);
- $ui->setForm($this->form);
- // parsing do XML
- $ui->parseFile('app/forms/teste.form.xml');
- // obtêm os objetos
- $label1 = $ui->getWidget('label1');
- $entry1 = $ui->getWidget('entry1');
- // altera o label
- $label1->setFontColor('red');
- $label1->setFontSize(20);
- $label1->style = 'text-shadow: 2px 2px #c0c0c0;';
- // altera o entry
- $entry1->style = 'height: 40px; font-size:20pt';
- $this->form->add($ui);
- $this->form->setFields($ui->getFields());
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- }
- parent::add($this->form);
- }
- }
- ?>