Beruflich Dokumente
Kultur Dokumente
Olá pessoal, no artigo deste mês vamos mostrar um recurso nativo e bem interessante do Delphi XE5, na verdade este
recurso está presente na instalação do Embarcadero RAD Studio desde sua versão XE2. É o VCL Style.
Foi também na versão XE2 que a Embarcadero incorporou ao RAD Studio a plataforma de desenvolvimento
Firemonkey, e com ela vieram muitos recursos de personificação da aparência das aplicações desenvolvidas nesta plataforma,
além é claro de muitas outras funcionalidades que possui o Firemonkey. A revista The Club publicou alguns artigos
exemplificando o uso do componente “TstyleBook”, por exemplo, é uma ótima forma de se personalizar uma aplicação e
bastante simples também.
Mas como o assunto deste artigo não é o Firemonkey, vamos direto ao ponto, a VCL Style é um recurso nativo do
Delphi, ou seja, não depende de nenhum componente de terceiros. E sua aplicação é bem simples. Vamos direto à prática então.
Repare na figura 1, que foi checado o estilo “Luna”, note também que a caixa de seleção “Default Style” ficou definida
com o tema checado. O estilo selecionado em Default Style será o qual ficará aplicado ao projeto por padrão todo vez que o
projeto for executado. Todo estilo definido nesta caixa, exceto o padrão estilo do Windows, será definido automaticamente no
arquivo Source de seu projeto, com a extensão (.DPR). Veja na listagem 1 como ficará esta definição. Para acessar o arquivo
Source de seu projeto, clique no menu “Project” e depois em “View Source”.
Listagem 1 – Definição do estilo padrão do projeto no código
program Exemplo1;
uses
Vcl.Forms, Vcl.Themes, Vcl.Styles,
unPrincipal in 'unPrincipal.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.Title := 'Exemplo TheClub';
TStyleManager.TrySetStyle('Luna');
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Note que foi usada a função “TrySetStyle” da classe “TstyleManager”, onde é passado como parâmetro o nome do estilo
que deseja aplicar ao projeto, ela ainda possui um parâmetro oculto do tipo booleano que por padrão assume “True”, este
parâmetro define se será exibida ou não uma mensagem de aviso caso o estilo não seja encontrado. Essa função retorna um
valor booleano “False” caso dê erro e “True” em caso contrário.
Vale ressaltar que esta linha de código, onde informa o estilo, foi adicionada automaticamente pelo Delphi. Ainda sim, é
interessante conhecer este método, pois pode-se ter a necessidade de alterar o estilo do projeto em tempo de execução, e
neste caso este método seria uma mão na roda. Para por chamá-lo em uma Unit de seu projeto é necessário adicionar na Uses
sua biblioteca, a “Vcl.Themes”. Caso a biblioteca “Vcl.Styles” ainda não esteja adicionada ao Source do projeto, você deverá
adicioná-la na Unit em que for realizar a alteração dos temas, pois é nesta biblioteca que ficam as classes de estilos do Delphi.
Se quiser ver uma prévia de como ficará o estilo em seus formulários, basta selecionar um estilo e clicar no botão
“Preview”, será exibido um formulário com a estilização do tema escolhido. Veja a figura 2 a pré-visualização do estilo “Cyan
Night”, um dos estilos que vem com a instalação do RAD Studio XE5.
http://www.theclub.com.br/restrito/revistas/201410/delp1410.aspx 2/5
17/09/2018 Artigos
Adicione uma Label com o Caption “Selecione um estilo...” e logo abaixo dela adicione um ComboBox, altere a
propriedade Style do mesmo para “csDropDownList”, assim ele ficará desativado para edição da propriedade Text e o usuário
terá apenas a opção de selecionar os itens que já compõem a lista.
A lista do ComboBox será preenchida com os estilos que forem vinculados ao projeto, neste exemplo iremos checar
todos os estilos que vem por padrão na instalação do RAD Studio XE5. Portanto acesse a tela Project Options (Shift + Ctrl + F11)
e marque todos os estilos disponíveis. Não se esqueça de alterar o Default Style para “Windows”, pois iremos abrir este por
padrão.
Depois de vinculado todos os estilos ao projeto agora vamos criar um procedimento para alimentar a lista do
ComboBox quando o formulário principal for criado em memória. Veja na listagem 2 a codificação do método “PreencheEstilos”.
Listagem 2 – Codificação do método PreencheEstilos
private
{ Private declarations }
procedure PreencheEstilos(ComboBox: TComboBox);
{ Use as teclas de atalho (Shift + Ctrl + C) para criar o corpo da procedure. }
Adicionamos neste procedimento todos os estilos vinculados ao projeto. Os nomes dos estilos deverão estar iguais aos
que são exibidos na janela “Project Options”. Não se preocupe com letras maiúsculas e minúsculas, pois neste caso o Delphi não
fará distinção.
O estilo definido por padrão no projeto deverá ser o primeiro a ser adicionado à lista, pois assim sabemos que para
exibi-lo no ComboBox, bastará atribuir o índice 0 (zero) à propriedade ItemIndex do componente.
Agora adicione no evento OnCreate do formulário a chamada do método “PreencheEstilos” (ver listagem 3).
Listagem 3 – Chamada do método PreencheEstilos
http://www.theclub.com.br/restrito/revistas/201410/delp1410.aspx 4/5
17/09/2018 Artigos
PreencheEstilos(ComboBox1);
end;
Note que apenas passamos o ComboBox como parâmetro e o método se encarregará de preenchê-lo com os estilos
que definimos anteriormente ao projeto.
Neste momento os estilos ainda não estão sendo alterados em tempo de projeto. Vamos ao código que irá realizar esta
operação. Ainda em tempo de projeto, selecione o componente ComboBox e acesse na janela Object Inspector a aba de
eventos e dê um duplo click no evento OnChange. Neste evento iremos utilizar a função “TrySetStyle”, mencionada
anteriormente. Portanto, adicione na Uses da unPrincipal a biblioteca da classe “TstyleManager”, a biblioteca “Vcl.Themes”.
Verifique se não há a necessidade de adicionar também a biblioteca “Vcl.styles”, caso ainda não tenha sido adicionada à Uses do
Source do projeto (o arquivo .DPR). O parâmetro que devemos passar a esta função é o nome do estilo que irá ser aplicado, e
este nome nós teremos na propriedade Text do ComboBox, pois já estará previamente preenchida com os estilos que iremos
utilizar em nosso projeto. Veja na listagem 4 como será feita a chamada da função “TrySetStyle”.
Listagem 4 – Chamada da função TrySetStyle para alteração de estilos em tempo de execução
A partir deste ponto o nosso projeto de exemplo já irá fazer a troca de estilos em tempo de execução, basta adicionar
mais alguns controles visuais para ver como ficarão em cada estilo disponível em nosso projeto. Caso queira verificar a aplicação
dos estilos em mais de um formulário, basta adicionar mais um formulário ao projeto e fazer a sua chamada a partir de um
botão, por exemplo. Pois estes estilos são aplicados à todos os formulário do projeto. Veja na Imagem 5 nosso projeto em
execução com alguns controles visuais que foram adicionados.
Figura 5 – Exemplo em execução
Conclusão
Vimos neste artigo uma ótima forma de se personalizar as aplicações desktop geradas pela VCL do Delphi a partir da
versão XE2. É um recurso muito simples de se aplicar e dará uma cara nova aos seus projetos. Mostramos em nosso exemplo
prático uma forma de se aplicar esta mudança de estilos já em tempo de execução.
Espero que tenham gostado. Uma forte abraço e até a próxima.
http://www.theclub.com.br/restrito/revistas/201410/delp1410.aspx 5/5