Esse artigo faz parte da revista Clube Delphi edição 28. Clique aqui para ler todos os artigos desta edição



Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML.

Menus Personalizados com CLX

Use a Qt diretamente para alterar a aparência de elementos

Com o Kylix, a Borland introduziu sua nova biblioteca de componentes, a CLX, baseada na Qt, uma biblioteca de classes desenvolvida em C++ pela companhia norueguesa TrollTech (www.trolltech.com). A Qt é uma biblioteca portável, disponível para diversos ambientes, como Windows, Linux, Solaris, MacOS e até mesmo para PalmOS.

Qt e Portabilidade

Ao contrário da VCL, inteiramente baseada nos controles do Windows, a Qt usa apenas algumas primitivas simples (desenho de linhas, pixels) e desenha inteiramente seus controles. Isso traz a portabilidade – a maior parte da biblioteca é igual para todas as plataformas, bastando apenas mudar pequenas porções de código dependentes da plataforma que se está usando.

Se fosse usado um enfoque semelhante ao da VCL, tudo o que se refere a controles (EditBoxes, ComboBoxes) deveria ser reescrito ao mudar de plataforma. Além disso, a Qt pode ter a aparência que quiser, pois não está ligada ao sistema operacional. Quando você roda uma aplicação que usa a VCL em diferentes versões do Windows, ela toma a forma das demais aplicações daquela versão. Isso não acontece com uma aplicação Qt – você pode ter uma aplicação rodando em Windows com aparência de uma aplicação Linux e vice-versa, ou mesmo ter o aspecto de algo completamente diferente.

Com uma aplicação Qt, você pode ter uma aplicação rodando em Windows com aparência de uma aplicação Linux e vice-versa, ou mesmo ter o aspecto de algo completamente diferente

Vantagens e desvantagens

Ao lado destas vantagens, a Qt tem a desvantagem de não usar tudo o que o sistema operacional oferece de seus controles. Embora sejam semelhantes ao do sistema operacional, terem pequenas diferenças em relação a eles, e não aderirem aos novos padrões que vão aparecendo. Deve-se redesenhar os controles Qt para que eles tenham aparência semelhante aos do Windows XP, por exemplo.

Sem dúvida nenhuma, a grande vantagem da CLX em relação à VCL é a portabilidade – uma aplicação escrita para Linux, no Kylix, pode ser transportada para o Windows, no Delphi 6, bastando apenas recompilá-la. E, se um dia a Borland decidir portar o Delphi para MacOS, Solaris ou PalmOS, as aplicações poderão ser facilmente transportadas para estes ambientes.

A flexibilidade da Qt permite mudar inteiramente a aparência da aplicação em tempo de execução escrevendo apenas uma linha de código

Outra vantagem do uso da Qt na criação da CLX é possibilitar a mudança de aparência da aplicação: podemos desenhar os controles da maneira que queremos. Esta flexibilidade chega ao ponto de podermos mudar inteiramente a aparência da aplicação em tempo de execução escrevendo apenas uma linha de código.

Esta característica da Qt foi exposta pelos projetistas da Borland e permitem personalizar o desenho dos controles, mudando radicalmente sua aparência, ou apenas dando toques pessoais, com o que os engenheiros da Borland chamaram de Styles (estilos).

Eventos de desenho

A mudança de estilos de uma aplicação foi introduzida na classe TApplication. Ela tem uma propriedade chamada Style, da classe TStyle, que permite manipular o desenho dos componentes. A classe TStyle tem diversas propriedades e eventos para controlar o desenho da aplicação. Os eventos são chamados antes e depois que é feito o desenho de um componente.

Por exemplo, o evento BeforeDrawButton é disparado logo antes de um botão ser desenhado. Ao final do desenho, o evento AfterDrawButton é ativado. Criando um manipulador para o evento ...

Quer ler esse conteúdo completo? Tenha acesso completo