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á.
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
Curtir tópico
+ 0
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!
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
Clique aqui para fazer login e interagir na Comunidade :)