Fórum Problema com Casting no Delphi #287828

12/07/2005

0

Desculpem a pergunta meio leiga, mas ai vai:
Tenho em meu programa, varias classes, todas descendentes de uma mesma superclasse. Todas possuem um metodo chamado Conecta, sendo que a superclasse possui esse metodo, e suas subclasses sobrecarregam esse metodo com suas peculiaridades. Acontece que, em determinado momento, eu preciso chamar este metodo, mas o correspondente de cada classe, de acordo com a classe a qual o objeto pertence. Entao eu estou fazendo assim:

if (objeto is SubClasse1) then SubClasse1(objeto).Conecta
else if (objeto is SubClasse2) then SubClasse2(objeto).Conecta
else if (objeto is SubClasse3) then SubClasse3(objeto).Conecta

Acho essa maneira muito ruim de fazer... Existe uma maneira de eu não utilizar esses ifs, e conseguir dar um cast em ´objeto´ pra chamar o metodo correspondente? Não sei se fui muito claro, mas obrigado mesmo assim!

Ate mais!

Jose Gustavo


Joeygustavo

Joeygustavo

Responder

Posts

12/07/2005

Beppe

O método deve ser declarado virtual ou dynamic na superclasse, e com override nas descendentes. Então:

TClassePai(objeto).Conecta;


Responder

Gostei + 0

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

Aceitar