Mudar a Cor dos Componentes só da minha aplicação

05/12/2003

1

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.


Responder

Posts

05/12/2003

Luineumann

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


Responder

05/12/2003

Acid_rain

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.


Responder

07/12/2003

Edilcimar

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


Responder