DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Utilizando o componente dxSkinController da DevExpress

Veja neste artigo como alterar a aparência da aplicação utilizado o componente dxSkinController da biblioteca DevExpress.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?

Ter aplicações com visual diferenciado e agradável tem se tornado cada vez mais importante no mercado de software, e a busca por componentes para atender esse requisito não é uma novidade para boa parte dos programadores. Existem atualmente várias bibliotecas e componentes individuais que garantem tal recurso, cada um com seus pontos positivos e negativos.

Aqui veremos como utilizar o componente dxSkinController da biblioteca DevExpress que é, sem dúvida, uma das mais completas do mercado da atualidade.

Para o exemplo que desenvolveremos neste artigo, devemos criar uma aplicação VCL e adicionar à tela principal um ComboBox (aqui utilizei um cxComboBox, mas o nativo pode ser usado igualmente) e um dxSkinController. Estes dois controles serão utilizados para alternar entre os skins disponíveis.

Para facilitar a visualização dos efeitos de cada skin, adicionemos também alguns controles como Edits e Buttons (no meu exemplo, utilizei um cxButton, um cxTextEdit e uma cxProgressBar, todos da mesma biblioteca, mas o leitor pode usar os componentes nativos). A minha tela principal ficou como na Figura 1.

Configuração do form

Figura 1: Configuração do form

Antes de partirmos para a prática, vamos conhecer melhor o componente, entendendo cada uma de suas propriedades, as quais são listadas abaixo.

  • Kind: Define um estilo inicial para os controles da aplicação quando não há nenhum skin aplicado.
  • NativeStyle: Quando verdadeira (valor true), esta propriedade faz com que os controles mantenham o estilo nativo (sem efeitos visuais diferenciados) mesmo que sejam aplicados skins.
  • SkinName: Define qual skin será aplicado aos controles. O valor pode ser selecionado numa lista pré-definida.
  • UseSkins: Quando verdadeira (valor true), permite a aplicação de skins. Caso seja definida como falsa (valor false), o skin selecionado na propriedade SkinName não terá efeito. Resumindo, ativa e desativa o uso de skins.

Caso desejássemos definir um skin fixo para a aplicação, bastaria selecionar um dos valores disponíveis para a propriedade SkinName (o leitor pode fazer isso para visualizar, em tempo de design, o efeito dos skins), porém, veremos como listar os skins disponíveis para que o usuário possa escolher aquele de sua preferência.

Considerando que o ComboBox que adicionamos inicialmente foi chamado de “cbSkins”, adicionemos, no evento onShow do form, o código da Listagem 1.

Listagem 1: Listando os skins disponíveis

var
  j:integer;
begin
  for j := 0 to Pred(GetExtendedStylePainters.Count) do
      cbSkins.Properties.Items.Add(GetExtendedStylePainters.Names[j]);
end;

Se executarmos a aplicação, veremos que os skins disponíveis para seleção são listados no ComboBox conforme ilustra a Figura 2.

Lista de skins disponíveis

Figura 2: Lista de skins disponíveis

Agora, para aplicar o skin selecionado, codifiquemos o evento onChange do ComboBox conforme a Listagem 2.

Listagem 2: Ativando o skin selecionado

dxSkinController1.SkinName := cbSkins.Text;

A Figura 3 ilustra alguns skins já aplicados à tela.

Exemplos de skins aplicados à tela

Figura 3: Exemplos de skins aplicados à tela

Sabendo como listar e aplicar os skins, poderíamos, por exemplo, salvar o nome do skin selecionado em um arquivo .ini e ativá-lo ao iniciar a aplicação.

Este artigo foi breve, porém, acredito que possa ser útil para quem utiliza essa poderosa biblioteca de componentes no Delphi.

Um abraço a todos e até o próximo artigo.


Joel Rodrigues
Técnico em Informática - IFRN Cursando Bacharelado em Ciências e Tecnologia - UFRN Programador .NET/C# e Delphi há mais de 3 anos, já tendo trabalhado com Webservices, WPF, Windows Phone 7 e ASP.NET, possui ainda conhecimentos em HTML, CSS e Javascript (jQuery). Certificado como Microsoft Special...
O que você achou deste post?

    5 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Leonardo Jose Da Costa Vargas
Infelizmente no meu caso, só aparece o 'UserSkin' na propriedade SkinName.
Sabe como adiciono as demais skins?

Att,
[há +1 mês] - Responder

 

[autor] Joel Rodrigues
Leonardo, veja no menu Project > Modify Skin Options se todos os skins são listados e estão marcados.
A versão que você está usando é completa? Ou é algum pacote básico?
[há +1 mês] - Responder
 

Carlos Eduardo Felippe
Seu Joel Rodrigues, Bom Dia!

Sabe me dizer se na versão 2012 v1.6 do componente usaria este mesmo processo? Utilizo ele no Delphi 7 e mesmo colocando o dxSkinController, alterando as funções manualmente ele apenas modifica os componentes que esta dentro do form, porem não modifica o visual do próprio form.

Já no caso, quando tento utilizar a sua dica, o delphi diz que GetExtendedStylePainters não foi declarada.

Poderia me auxiliar se possível?
[há +1 mês] - Responder

 

[autor] Joel Rodrigues
Opa, tudo bem?
Ainda não testei essa versão, por isso não vou poder te dar uma resposta agora.
Sobre a função para listar os skins, dá uma olhada neste link: http://www.devexpress.com/Support/Center/p/Q310250.aspx.
Abraço.
[há +1 mês] - Responder
 

Carlos Eduardo Felippe
Hum, oky, irei dar uma verificada. Obrigado por enquanto.
[há +1 mês] - Responder
 
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03