Array
(
)

Variar nome do Form no CreateForm

Splash
   - 20 mar 2006

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


Rjun
   - 20 mar 2006

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.


Splash
   - 20 mar 2006

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


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

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