identificando Componente
Caros amigos do clube do delphi,
tenho a seguinte situação:
altero a cor das dos labels de minha aplicação ao carregar o programa, atribui na propriedade Tag valores para diferenciar os que ficarão de uma cor e os outros com outra, tipo: os que estiverem com Tag = 1 ficarão verde e os que estiverem com tag = 0 ficaram vermelhos. Gostaria de saber como faço uma function ou procedure para alterar a propriedade font.color dos labels em tempo de execução uma vez que eu não sei qual o nome dos labels.
Tentei fazer assim:
For i := 0 to FPrincipal.ComponentCount - 1 do
if (FPrincipal.Components[i] is TLabel) and (FPrincipal.Components[i].Tag = 1) then
FPrincipal.Components[i].Font.Color := ClYellow
else
FPrincipal.Components[i].Font.Color := ClRed
O problema é quando tento atribuir a propriedade Font.color o delphi não aceita pois ele não sabe que o componente tem a determinada propriedade.
Espero que tenha sido claro, e agradeço a quem poder me ajudar
Nilson Oliveira
Belém - PA
tenho a seguinte situação:
altero a cor das dos labels de minha aplicação ao carregar o programa, atribui na propriedade Tag valores para diferenciar os que ficarão de uma cor e os outros com outra, tipo: os que estiverem com Tag = 1 ficarão verde e os que estiverem com tag = 0 ficaram vermelhos. Gostaria de saber como faço uma function ou procedure para alterar a propriedade font.color dos labels em tempo de execução uma vez que eu não sei qual o nome dos labels.
Tentei fazer assim:
For i := 0 to FPrincipal.ComponentCount - 1 do
if (FPrincipal.Components[i] is TLabel) and (FPrincipal.Components[i].Tag = 1) then
FPrincipal.Components[i].Font.Color := ClYellow
else
FPrincipal.Components[i].Font.Color := ClRed
O problema é quando tento atribuir a propriedade Font.color o delphi não aceita pois ele não sabe que o componente tem a determinada propriedade.
Espero que tenha sido claro, e agradeço a quem poder me ajudar
Nilson Oliveira
Belém - PA
Nilsonoliveiratec
Curtidas 0
Respostas
Caninha51
27/06/2005
Faltou só fazer um typecast! :)
Falow
caninha51
For i := 0 to FPrincipal.ComponentCount - 1 do if (FPrincipal.Components[i] is TLabel) and (FPrincipal.Components[i].Tag = 1) then TLabel(FPrincipal.Components[i]).Font.Color := ClYellow else TLabel(FPrincipal.Components[i]).Font.Color := ClRed
Falow
caninha51
GOSTEI 0
Emerson Nascimento
27/06/2005
uma pequena alteração para evitar possível problemas:
for i := 0 to FPrincipal.ComponentCount - 1 do if (FPrincipal.Components[i] is TLabel) then begin if FPrincipal.Components[i].Tag = 1 then TLabel(FPrincipal.Components[i]).Font.Color := ClYellow else TLabel(FPrincipal.Components[i]).Font.Color := ClRed; end;
GOSTEI 0
Caninha51
27/06/2005
Corretíssimo emerson, pois daquela forma ele não sendo label iria entrar no senão e ia dar pau no typecast.
Na verdade nem prestei atenção na logica dele, vi apenas que estava faltando o typecast! :)
Valew!
caninha51
Na verdade nem prestei atenção na logica dele, vi apenas que estava faltando o typecast! :)
Valew!
caninha51
GOSTEI 0
Emerson Nascimento
27/06/2005
...tipo: os que estiverem com Tag = 1 ficarão [b:81e3a40f78]verde[/b:81e3a40f78] e os que estiverem com tag = 0 ficaram vermelhos...
[..]
Tentei fazer assim:
For i := 0 to FPrincipal.ComponentCount - 1 do
if (FPrincipal.Components[i] is TLabel) and (FPrincipal.Components[i].Tag = 1) then
FPrincipal.Components[i].Font.Color := [b:81e3a40f78]ClYellow[/b:81e3a40f78]
else
FPrincipal.Components[i].Font.Color := ClRed
[..]
nilson, verde é clGreen e não clYellow
:D
GOSTEI 0
Caninha51
27/06/2005
nilson, verde é clGreen e não clYellow
:D
Vai ver ele eh dautônico!heheh...
:lol: :lol:
GOSTEI 0