Você certamente já buscou diversas maneiras de deixar sua aplicação com um visual diferente. Existem vários componentes que prometem trazer este resultado para você, mas de todos que pude testar o mais impressionante e o que uso em minhas aplicações é o VclSkins.
Pode ser usado os skins em um determinado form ou em toda aplicação. Neste artigo vou mostrar como usar em toda aplicação.
Colocando Skins com o VCLSkin
RequisitosUtilização
Após instalar o componente no delphi, copie a pasta skins para o lugar onde salvou o projeto.
Crie uma nova aplicação, no form adicione um Listbox, button e o componente SkinData.
1. No Onclick do button adicione a seguinte linha de comando:
//Isto irá carregar as skins dentro do listbox
var
Procurar : TSearchRec;
Arquivos: Integer;
begin
CaminhoDasSkins := ExtractFilePath(Application.ExeName) + 'skins\*.skn';
Arquivos := 0;
Arquivos := Arquivos + faDirectory;
Arquivos := Arquivos + faArchive;
Arquivos := Arquivos + faAnyFile;
if FindFirst(CaminhoDasSkins, Arquivos, Procurar) = 0 then
begin
repeat
if (Procurar.Attr and Arquivos) = Procurar.Attr then
ListBox1.Items.Add(Procurar.Name);
until FindNext(Procurar) <> 0;
FindClose(Procurar);
end;
Crie as variáveis: CaminhoDasSkins , ss : string;
No evento Onclick do ListBox adicione a seguinte linha de comando:
var
i: integer;
begin
i := ListBox1.ItemIndex;
ss := Copy(CaminhoDasSkins,1,Pos('*.skn',CaminhoDasSkins)-2)+'\'+ListBox1.items.strings[i];
SkinData1.SkinFile := ss;
if not SkinData1.Active then
SkinData1.Active := True;
Agora rode a aplicação e clique no button para carregar as skins. Depois clique nas skins carregadas dentro do listbox e veja como muda todo o visual da aplicação. Adicione ao exemplo menus, caixas de diálogos, buttons, grids e veja como todos os componentes alteraram seu visual.
Pode ser criado um arquivo .ini para guardar a última seleção da skin para quando voltar a rodar a aplicação trazer carregada a última skin escolhida, mas isto fica para um novo artigo.
Espero ter ajudado, qualquer outra dúvida, entre em contato comigo.