Como executar um método de uma classe?

Delphi

09/02/2004

Galera,
possuo uma classe (A) q tem o método create.

O q acontece é q tenho uma função (B) q me retorno o Classname da Classe (A) e eu preciso executar o método create da classe (A).

Como posso executar um método de uma classe, apartir do nome desta classe?

Se eu recebesse da função (B) um objeto, eu poderia fazer:

((B) as Tclassename).create

fui claro?

Estou um tanto perdido?

Obrigado :?


Aledeol

Aledeol

Curtidas 0

Respostas

Beppe

Beppe

09/02/2004

Se você registrar primeiro com RegisterClass, pode usar GetClass ou FindClass:
RegisterClass(TMemoryStream)
B := FindClass(´TMemoryStream´);


Detalhe: o construtor Create que você chamar precisa ter os parâmetros correto. Chamar o Create() padrão pode lhe resultar no inesperado. Se as classes que você quer tem todas o mesmo construtor, declare uma classe com esse construtor, abstrato, e derive as classes desta. Então declare B como sendo desta classe. Por exemplo, sendo TComponent, você poderá usar qualquer descendente dele na VCL, já que todos suportam o mesmo construtor.


GOSTEI 0
Aledeol

Aledeol

09/02/2004

Kra, o prob é o seguinte.

Minha app é divida em packages, e existe uma app principal que é a lançadora destes packages. O q estou querendo fazer é abrir o form principal de uma package qq (Vendas) dentro de um Tpanel para o usuário selecionar as opçoes desejadas (Vender extornar cancelar) que estão dentro do form principal do package.


Mas como fazer. Li um artigo sobre criar forms dentro de Pagecontrols, mas isto não se aplica ao meu caso.
Eu já at´´e consegui criar o form dentro de um panel da app lançadora. Mas como ele é chamado como Showmodal. Se o usuário quiser clicar em um bottão da app principal ele não consegue.

Tem como fazer isto?
Criar um form dentro de um tpanel, chamá-lo e ele não bloquear o acesso a componentes do form principal?

Obrigado :?


GOSTEI 0
Beppe

Beppe

09/02/2004

Se o problema é só colocar um form num panel, a solução é simples: use frames.

T+


GOSTEI 0
Aledeol

Aledeol

09/02/2004

Não é só criar um form dentro de um Tpanel?
Este form está dentro de um package q é carregado pela app principal, quando o usuário o seleciona.

Isto pode ser feito com frames?

Obrigado


GOSTEI 0
Beppe

Beppe

09/02/2004

Não é só criar um form dentro de um Tpanel? Este form está dentro de um package q é carregado pela app principal, quando o usuário o seleciona. Isto pode ser feito com frames? Obrigado


Acho que sim, da mesma forma. Tenta aí e diz...

Eu não mexo muito com frames mas vou dar uma olhadinha depois.


GOSTEI 0
POSTAR