Você está na página 1de 9

17/09/2018 VCL no XE7: estilos

VCL no XE7: estilos


O uso de estilos é uma ótima maneira de modernizar os aplicativos Delphi VCL. Aqui
está um pequeno guia para estilos em VCL.

Mesmo que eles estejam no produto há algumas versões, os estilos viram várias melhorias (como a recente
adição do estilo de menu no XE6). Mas o que é um estilo VCL? Aqui está uma definição provisória:

Um estilo é uma coleção de regras de pintura que você pode aplicar dinamicamente a um aplicativo
inteiro do Windows, alterando o tamanho e a aparência de vários elementos, as fontes e o esquema de
cores usado pelos controles VCL para pintura.

Os estilos ampliam o conceito de temas, no qual o estilo é fornecido no nível do sistema operacional. Estilos
em um aplicativo VCL podem ser definidos (e alterados) tanto em tempo de design e em tempo de execução.

Adicionando Estilos a um Aplicativo

Você pode incorporar um estilo dentro de um aplicativo usando recursos ou pode consultar um arquivo
externo com as informações de estilo. Por padrão, você escolhe o (s) estilo (s) de tempo de design na página
Aparência das Opções do projeto:

http://blog.marcocantu.com/blog/2014-september-vcl-xe7-styles.html 1/9
17/09/2018 VCL no XE7: estilos

Nesta página você pode escolher alguns estilos (seja pelo Embarcadero ou alguns que você adicionou) para
serem incorporados como recursos em seus aplicativos. Você também pode selecionar um dos estilos para ser
o padrão, ativado quando o programa for iniciado. Abaixo, você pode ver um aplicativo trivial em tempo de
design e o mesmo aplicativo sendo executado com o estilo "Auric" selecionado na caixa de diálogo mostrada
acima:

http://blog.marcocantu.com/blog/2014-september-vcl-xe7-styles.html 2/9
17/09/2018 VCL no XE7: estilos

Como você pode ver, o programa não tem a aparência padrão do Windows. Observe que a maioria dos
elementos será estilizada, mas nem todos eles. Exclusões notáveis dos diálogos do sistema operacional
(existem algumas ferramentas externas para estilizá-los, mas eles têm problemas no Win64).
Em geral, os estilos funcionam com descendentes de TWinControl e TGraphicsControl e qualquer
ferramenta de terceiros que suporte temas, que é a maioria dos componentes recentes ou atualizados
recentemente. Em geral, se um controle suportar temas, ele também deve funcionar ou quando estilizado.

Estilos dinamicamente em mudança

Para trabalhar em estilos em tempo de execução, use a classe TStyleManager, definida na unidade
Vcl.Themes. Você geralmente usa métodos e propriedades de classe, em vez de criar uma instância. Por
exemplo, você pode obter uma lista de estilos usando a propriedade StyleNames, como no fragmento de
código a seguir:

procedimento TStylesForm.btnListStylesClick (Sender: TObject);


var
str1: string;
início
para str1 em TStyleManager.StyleNames
ListBox1.ITems.Add (str1);
fim;

http://blog.marcocantu.com/blog/2014-september-vcl-xe7-styles.html 3/9
17/09/2018 VCL no XE7: estilos

Você pode carregar novos estilos de arquivos externos usando os métodos LoadFromFile e
LoadFromResource do TStyleManager. A seleção do estilo atual ocorre usando o método SetStyle, que usa
uma string com o nome do estilo como parâmetro, para que possamos aplicá-lo aos elementos da list box
após um clique duplo:

procedimento TStylesForm.ListBox1DblClick (Sender: TObject);


início
TStyleManager.SetStyle (
Listbox1.Items [ListBox1.ItemIndex]);
fim;

Assim, podemos alterar a interface do usuário de uma aplicação de várias maneiras diferentes, como é visível na próxima
imagem, onde eu escolhi dois estilos completamente diferentes, Ruby Graphite e Smokey Quartz.

Observe que o produto é fornecido com muitos estilos e mais alguns geralmente são vendidos, mas podem
ser baixados gratuitamente como parte das promoções.

Criando ou personalizando um estilo

Como podemos modificar um estilo existente ou criar um novo? O Delphi inclui um aplicativo específico de
“Designer de Estilo de Bitmap” (vinculado a partir do menu Ferramentas IDE), que também pode ser
distribuído gratuitamente para designers gráficos externos. O designer é exibido abaixo:
http://blog.marcocantu.com/blog/2014-september-vcl-xe7-styles.html 4/9
17/09/2018 VCL no XE7: estilos

Para cada estilo, o Designer de estilos tem cinco seções:

A seção Objetos inclui um conjunto de “propriedades” para os vários elementos da interface do


usuário, como formulários, botões, bordas do painel e assim por diante. Existem centenas de
configurações que você pode personalizar, que são salvas como em um arquivo DMF. Na primeira
imagem acima, por exemplo, selecionei a face de um botão.
A seção de imagens tem uma única imagem grande que compreende todos os elementos gráficos do
estilo, como mostrado abaixo:

http://blog.marcocantu.com/blog/2014-september-vcl-xe7-styles.html 5/9
17/09/2018 VCL no XE7: estilos

A seção Fontes contém as fontes usadas pelos vários controles.


A seção Cores tem as várias cores do controle, como edição ou botão.
A seção SysColors tem a cor para elementos padrão do Windows, como o clBtnFace comumente
usado

Armado com esta informação você pode projetar seus estilos personalizados ou adaptar os existentes, e
tornar o seu programa mais moderno e um pouco mais colorido.

Menu Styling no XE6

A mais recente e recente adição ao estilo foi feita no XE6. Essa versão incluiu um número significativo de
correções e melhorias e novas tecnologias para suportar o estilo do menu principal, menus suspensos, menus
pop-up e o menu do sistema Windows. Em outras palavras, todos os elementos de menu do seu aplicativo
VCL agora corresponderão ao estilo selecionado.

Aqui está um exemplo de um menu estilizado:

http://blog.marcocantu.com/blog/2014-september-vcl-xe7-styles.html 6/9
17/09/2018 VCL no XE7: estilos

A melhor coisa é que não há nada que você precise fazer para ativar isso, já que funciona. No entanto, em
caso de problemas, você pode desativá-lo configurando os ganchos do sistema:

TStyleManager.SystemHooks: = TStyleManager.SystemHooks - [shMenus];

Estilo e a interface do usuário moderna do Windows

Outro elemento interessante do estilo é que o VCL suporta estilos especiais que farão com que seus
aplicativos tradicionais Win32 e Win64 adotem a chamada UI Moderna (originalmente conhecida como
“Metro”) e se pareça muito com os aplicativos WinRT suportados pelo Windows 8:

http://blog.marcocantu.com/blog/2014-september-vcl-xe7-styles.html 7/9
17/09/2018 VCL no XE7: estilos

Observe que há uma opção específica no IDE que permite a conversão de um aplicativo VCL existente para
o que a Embarcadero chama de “Metropolis UI”, além de 4 estilos específicos baseados nos cromados
Modern UI padrão (azul, verde, cinza, escuro). Se você criar um aplicativo VCL “Metropolis”, seu
formulário principal também será um formulário sem borda em tela cheia, mas você pode ajustar essa parte
como preferir.

Embora a Microsoft originalmente mantivesse uma distinção entre os aplicativos de desktop (como os que
você construía no Delphi) e sua interface “tradicional” e a nova geração de aplicativos WinRT e Modern UI,
essa distinção vem se desvanecendo desde que o Windows 8 foi introduzido.

No Windows 8.1, por exemplo, já existem alguns elementos da interface do usuário tradicionais (como um
botão de fechamento exibido em uma barra de título de aplicativo "falsa") misturado em aplicativos de
interface do usuário modernos. De acordo com algumas informações vazadas (então nada oficial lá), espera-
se que o Windows 9 permita aplicações WinRT / Modern UI rodando dentro de uma janela - algo que você
pode conseguir hoje com o Delphi XE7, dado que esses dois tipos de aplicações se tornarão basicamente
indistinguíveis.

Em outras palavras, com o estilo apropriado, seus aplicativos VCL estão prontos para o Windows 8 e, muito
provavelmente, também para o Windows 9, sem grandes reescritas, mas simplesmente modernizando
adequadamente a IU usando estilos.

http://blog.marcocantu.com/blog/2014-september-vcl-xe7-styles.html 8/9
17/09/2018 VCL no XE7: estilos

http://blog.marcocantu.com/blog/2014-september-vcl-xe7-styles.html 9/9

Você também pode gostar