Mudar a Cor dos Componentes só da minha aplicação
Como faço para a minha aplicação(forms, edit...) quando iniciar mudar de cor independente das propriedades de video do Windows?
Como um sistema tem milhares de componentes visuais, utilizar um loop para mudar a propriedade color deles se tornaria muito ruim.
Gostaria de mudar os valores das variáveis em tempo de execução, que aquelas variáveis clBlack, clBackGround em vez de carregar seus valores padrões, carregar com os que estão armazenados num registro.
Tipo assim a clBlack passar a ser Amarela em vez de Preta, apesar do nome, para quando o usuário entrar na aplicação da proxima vez a tela ficar amarela em vez de preta.
Como um sistema tem milhares de componentes visuais, utilizar um loop para mudar a propriedade color deles se tornaria muito ruim.
Gostaria de mudar os valores das variáveis em tempo de execução, que aquelas variáveis clBlack, clBackGround em vez de carregar seus valores padrões, carregar com os que estão armazenados num registro.
Tipo assim a clBlack passar a ser Amarela em vez de Preta, apesar do nome, para quando o usuário entrar na aplicação da proxima vez a tela ficar amarela em vez de preta.
Acid_rain
Curtidas 0
Respostas
Luineumann
05/12/2003
os valores das constantes clBlack, clBlue, clWindowText são valores inteiros (por exemplo, clBlack = 0, clBlue = 16711680).
crie uma tabela de conversão:
cor padrão Inteiro - tbcolorpadrao // chave primária
cor usuário Inteiro - tbcolorusuario
e cadastre cada uma delas. se vc atribuir
no oncreate do formulario
faça um loop varrendo os componentes do seu formulario e vá alterando as cores da seguinte maneiro
with tabelaconversao
do begin
setkey;
tbcolorpadrao.value := componente.color;
if gotokey
then componente.color :+ tbcolorusuario.value;
end;
esata é uma idéia, pode existir outras
crie uma tabela de conversão:
cor padrão Inteiro - tbcolorpadrao // chave primária
cor usuário Inteiro - tbcolorusuario
e cadastre cada uma delas. se vc atribuir
no oncreate do formulario
faça um loop varrendo os componentes do seu formulario e vá alterando as cores da seguinte maneiro
with tabelaconversao
do begin
setkey;
tbcolorpadrao.value := componente.color;
if gotokey
then componente.color :+ tbcolorusuario.value;
end;
esata é uma idéia, pode existir outras
GOSTEI 0
Acid_rain
05/12/2003
Mas é exatamente isso que não quero fazer... fazer um loop.
Queria saber se existe uma forma de mudar o valor das variáveis. Tipo como a gente faz com o DecimalSeparator. Que é um valor pego pela aplicação direto do Windows, mas que nós podemos forçá-lo a receber um outro valor.
E para isso não precisa eu fazer em todos os formulários, apenas na declaração do projeto.
Queria saber se existe uma forma de mudar o valor das variáveis. Tipo como a gente faz com o DecimalSeparator. Que é um valor pego pela aplicação direto do Windows, mas que nós podemos forçá-lo a receber um outro valor.
E para isso não precisa eu fazer em todos os formulários, apenas na declaração do projeto.
GOSTEI 0
Edilcimar
05/12/2003
no oncreate no on pait, ou qualquer outro coloque um valor hexa
Form1.Color := $00FFFFFF;
no onenter do edit
edit1.color := $00DFFFFF
e no onexit
edit1.color := $00FFFFFF
Form1.Color := $00FFFFFF;
no onenter do edit
edit1.color := $00DFFFFF
e no onexit
edit1.color := $00FFFFFF
GOSTEI 0