Fórum Verificar se uma Propriedade existe em um componente. #220713

17/03/2004

0

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

Responder

Posts

17/03/2004

Flaviosan

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


Responder

Gostei + 0

17/03/2004

Adriano Santos

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

valeu


Responder

Gostei + 0

17/03/2004

Flaviosan

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar