Fórum Trocar style vcl em tempo de execução #460104
03/11/2013
0
Olá,
Estou com dificuldades em trocar o Style do meu aplicativo em tempo de execução. Gostaria de criar a possibilidade do usuário trocar o tema do aplicativo durante a execução do aplicativo e também a possibilidade de que o usuário defina uma delas como padrão a seu gosto.
Antes de tudo, estou usando o xe4.
Eu fiz assim:
primeiro fui no Project > options > application > appearence > custom stules. Lá eu defini quais eu quero como disponíveis.
segundo, defini o style Windows como default.
terceiro, coloquei em um combobox a lista de temas que marquei que estariam disponíveis.
quarto, coloquei este comando no meu button: TStyleManager.TrySetStyle(ComboBox1.Text);
Obs: já declarei no uses o Vcl.Themes e Vcl.styles.
Mas fica dando vários erros, as vezes o programa desaparece, aí eu tenho que ir no gerenciador de tarefas e finalizar ele por lá.
Li que é possível fazer um array para pegar a lista de styles disponíveis no projeto e coloca-lo em uma lista para o usuário visualizar e também trocar o style default.
Estou meio perdido neste processo e solicito uma ajuda dos companheiros experientes.
Encontrei um código fuçando a internet, mas este necessita que eu mande junto com o executável uma lista de styles, se eu pudesse pegar a lista de styles que eu já defini como disponíveis no projeto e assim eu poderia mandar ao usuário somente o executável com tudo dentro de um único arquivo, isso seria perfeito.
Desde já agradeço a atenção.
Estou com dificuldades em trocar o Style do meu aplicativo em tempo de execução. Gostaria de criar a possibilidade do usuário trocar o tema do aplicativo durante a execução do aplicativo e também a possibilidade de que o usuário defina uma delas como padrão a seu gosto.
Antes de tudo, estou usando o xe4.
Eu fiz assim:
primeiro fui no Project > options > application > appearence > custom stules. Lá eu defini quais eu quero como disponíveis.
segundo, defini o style Windows como default.
terceiro, coloquei em um combobox a lista de temas que marquei que estariam disponíveis.
quarto, coloquei este comando no meu button: TStyleManager.TrySetStyle(ComboBox1.Text);
Obs: já declarei no uses o Vcl.Themes e Vcl.styles.
Mas fica dando vários erros, as vezes o programa desaparece, aí eu tenho que ir no gerenciador de tarefas e finalizar ele por lá.
Li que é possível fazer um array para pegar a lista de styles disponíveis no projeto e coloca-lo em uma lista para o usuário visualizar e também trocar o style default.
Estou meio perdido neste processo e solicito uma ajuda dos companheiros experientes.
Encontrei um código fuçando a internet, mas este necessita que eu mande junto com o executável uma lista de styles, se eu pudesse pegar a lista de styles que eu já defini como disponíveis no projeto e assim eu poderia mandar ao usuário somente o executável com tudo dentro de um único arquivo, isso seria perfeito.
Desde já agradeço a atenção.
Glaidson Pezavento.
Curtir tópico
+ 0
Responder
Post mais votado
12/09/2015
Comigo esse código funcionou... boa sorte!
uses
Vcl.Themes;
.
.
.
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
TStyleManager.TrySetStyle(ComboBox1.Items[ComboBox1.ItemIndex]);
end;
procedure TForm1.FormShow(Sender: TObject);
var
s: String;
begin
ComboBox1.Items.BeginUpdate;
try
ComboBox1.Items.Clear;
for s in TStyleManager.StyleNames do
ComboBox1.Items.Add(s);
ComboBox1.Sorted := True;
// Select the style that's currently in use in the combobox
ComboBox1.ItemIndex := ComboBox1.Items.IndexOf(TStyleManager.ActiveStyle.Name);
finally
ComboBox1.Items.EndUpdate;
end;
end;
Paulo Lima
Responder
Gostei + 3
Mais Posts
05/11/2013
Glaidson Pezavento.
E aí pessoal alguém pode ajudar o companheiro aqui?
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)