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.
<?phpclass 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); }}?>