Verificar se uma Propriedade existe em um componente.

Delphi

17/03/2004

Verificar se uma Propriedade existe em um componente.

Galera, tenho o seguinte código:

for I := 0 to ComponentCount-1 do
begin
  if not (TWinControl(Components[I]).Name = ´btnCancelar´) then
  begin
    TWinControl(Components[I]).Enabled := False;
  end;
end;

O problema é que se o componente não possuir a propriedade Enabled, um Access Violation é retornado. Eu sanei o problema com um simples Try..Except..End; assim :

for I := 0 to ComponentCount-1 do
begin
  if not (TWinControl(Components[I]).Name = ´btnCancelar´) then
  begin
    Try
      TWinControl(Components[I]).Enabled := False;
    Except
    End;
  end;
end;

ou seja, neste caso o erro acontece, mas o algoritimo continua sendo executado. Mas fica a dúvida:

Será que não é possível testar a propriedade antes de usá-la?
Seria mais inteligente se isso fosse possível.


Adriano Santos

Adriano Santos

Curtidas 0

Respostas

Flaviosan

Flaviosan

17/03/2004

olha cara, nao sei se tem como fazer isso, mas se voce testar se o referido componente é decendente da classe TControl, talvez funcione, pois é nesta classe onde foi implementado a propriedade enabled.
espero ter ajudado.

flaviosan :P


GOSTEI 0
Adriano Santos

Adriano Santos

17/03/2004

Hum, verdade acho que posso fazer isso fácil fácil.

valeu


GOSTEI 0
Flaviosan

Flaviosan

17/03/2004

aí, se voce conseguir, coloca aqui no forum a soluçao, a titulo de curiosidade, pois quem sabe mais alguem necessite de algo parecido, valeu.

Flaviosan :P


GOSTEI 0
POSTAR