Transformar var string em TComponentClass
02/10/2004
0
Como faço para transformação uma variavel string em tcomponetclass.
A intenção é poder chamar um formulario atraves dessa variavel string.
Desde já agradeço a atenção.
Antero Mendes
Anteromendes
Posts
02/10/2004
Afarias
procedure TForm1.Button1Click(Sender: TObject); var OutroFormClass: TFormClass; OutroForm: TForm; begin // pegue a classe do form OutroFormClass := TFormClass(FindClass(´TForm2´)); // crie e use o form como desejar, ex: Application.CreateForm(OutroFormClass, OutroForm); OutroForm.Show; end;
Bom, mas para q isso funcione, a classe TForm2 deve estar registrada, para tanto, adicione ao final da unidade onde está declarada TForm2 o seginte código::
{... código da unit ...} initialization RegisterClass(TForm2); finalization UnRegisterClass(TForm2); end.
T+
04/10/2004
Anteromendes
Realizei o teste com as informações que me enviastes, contudo ocorreu um erro dizendo ´class not found´.
fiz dessa maneira :
procedure Tform1.chama_form(aform : string); var tela : TFormClass; xform : TForm; begin tela := TFormClass(FindClass(´aform´)); Application.CreateForm(tela, xform); xform.ShowModal; xform.Free; end; ..... chama_form(´tform2´)
Registrei a classe (Tform2) no form2 e ainda persiste o erro. Não sei se está faltando alguma coisa. O form2 está para ser criado em tempo de execução.
[]s,
04/10/2004
Afarias
tela := TFormClass(FindClass(´aform´));
quando tem q ser::
tela := TFormClass(FindClass(aform));
sem as aspas (já q aform é uma variável e não uma ´constante string´)
T+
04/10/2004
Anteromendes
Nota dez amigo, realmente eu coloquei de forma errada.
Muito obrigado pela ajuda, quando precisar estamos ai !
Atenciosamente,
Clique aqui para fazer login e interagir na Comunidade :)