Variar nome do Form no CreateForm

20/03/2006

0

[b:363afe73e2]Bom dia Pessoal,
É o seguinte tenho uma rotina para montar dinamicamente meu menu, porém não estou conseguindo variar o nome do Form.

Fiz a seguinte rotina:
procedure CriarForm(frmClass: TFormClass; out NewObj);
begin
try
TForm(NewObj) := FrmClass.create(Self);
TForm(NewObj).ShowModal;
finally
FreeAndNil(NewObj);
end;
end;

E chamo o método da seguinte forma:
CriaForm(adoMenu.FieldByName(´CD_TPROGRAMA´).AsVariant, adoMenu.FieldByName(´CD_PROGRAMA´).AsVariant);

Porém me retorna o seguinte erro:
Incompatible types ´TFormClass´ and ´Variant´.

E se eu mudar de AsVariant para AsString ele da o mesmo erro.

Como eu faço essa conversão ??

Valeu
SPLASH[/b:363afe73e2]


Splash

Splash

Responder

Posts

20/03/2006

Rjun

O erro acontece por que sua procedure espera um TFormClass e você está passando um tipo Variante ou String.

Veja esse [url=http://forum.clubedelphi.net/viewtopic.php?t=68054]tópico[/url]. Acho que pode lhe ser útil.


Responder

20/03/2006

Splash

[b:b1743b2415]Valeu Rogério pela resposta.
Cara tentei fazer, mas não deu muito certo não.
Alguém ja fez algo do tipo e poderia me ajudar ?

Encontrei uma forma de fazer, porem eu preciso deixar todos os forms no Auto-Create Forms ..... se não não funciona, porém quando eu chamo o form principal, ele instancia todos os forms, ele mostra todos os forms ..... ai não da né ....

Sera que alguem poderia me dar uma forcinha ...

Valeu a todos
Beto[/b:b1743b2415]


--------------------------------------------------------------------------------

O erro acontece por que sua procedure espera um TFormClass e você está passando um tipo Variante ou String.

Veja esse tópico. Acho que pode lhe ser útil.
_________________
Rogério Jun


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar