GARANTIR DESCONTO

Fórum Passando a Classe como Parâmetro! #194953

14/11/2003

0

Pessoal, estou com um problema.
Eu criei uma classe minha base, TMyClass = class, e fui herdando, e agora eu tenho um TMy3Class = class(TMy2Class), e TMy2Class = class(TMyClass). Então nas minhas forms, eu preciso criar essa minha TMy3Class mas essa classe não é só uma, são várias com valores diferentes. Então eu preciso criar essas minhas classes nas minhas forms, mas queria criar um procedimento padrão pois é sempre iguail, para apenas passar a Classe e meu procedimento fazer o restante. Mas quando faço isso, ele não entende que é para chamar o Create do minha TMy3Class. Ele chama o Create da TObject pois a variável é do TObject, pois inicialmente não sei de que tipo ela será. E funciona com TObject porque quando se inicia uma classe como a minha TMyClass = class você está fazendo a mesma coisa que TMyClass = class(TObject) (O help diz isso!). Então, alguém teria alguma idéia de como eu poderia fazer isso?
agradeço desde já.


Rafael Heise

Rafael Heise

Responder

Posts

14/11/2003

Rafael Heise

Pessoal, tava vendo as coisas.. comecei a pensar, lembrei de uns conceitos e consegui fazer o que eu queria.
Mudei umas coisas na minha classe pai.
Declarei o constructor Create; como virtual.
Nos Create das classes herdadas chamei declarei como override;
e então criei um tipo da classe
TMyClassClass = class of TMyClass;
Desse jeito, eu passo como parâmetro um TMyClassClass e quando chamo o create, pelos Create´s declaros como virtual e override, ele entende que deve chamar o Create da filha.
beleza! funcionou!
valeu!


Responder

Gostei + 0

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

Aceitar