Leia a respeito das funções GetClass(), FindClass() e RegisterClass() no help 
do Delphi e vc vai entender melhor pq seu codigo nao funciona.

Sds.


________________________________
To: [EMAIL PROTECTED]; delphi-br@yahoogrupos.com.br; [EMAIL PROTECTED]
From: [EMAIL PROTECTED]
Date: Wed, 24 Sep 2008 11:09:49 -0700
Subject: [NDDV] Criar componente de classe indefinida/dinâmica

Boa tarde galera...

Preciso da ajuda de vocês para uma solução dos meus estudos para a prova de 
certificação do Delphi... É que estou estudando herança dos componentes... 
Querendo ver todos os seus ancestrais até TObject.

Aí, consegui com a ajuda da net achar algo parecido com o que eu queria... Só 
que ele faz apenas com o Sender do TButton que estou usando para clicar e 
executar a busca dos ancestrais...

Agora, o que eu preciso é fazer essa mesma coisa não apenas com Sender ou com 
algum componente da tela. Quero digitar uma classe qualquer num Edit e ele me 
retornar esse ancestral.. Só que não estou conseguindo fazer isso de jeito 
nenhum... Segue o código abaixo...

procedure TForm1.BtClassesClick(Sender: TObject);
Var
    ClassRef : TClass;
    Obj      : TControl;
begin
   ListaClasses.Clear;

// Aqui abaixo que está o problema...
   Obj      := TLabel.Create(Self);

// Porque mesmo que eu faça, dá um Access Violation
   Obj      := TControl(EdClasse.Text).Create(Self);
   ClassRef := Obj.ClassType;

   While ClassRef <> Nil Do
         Begin
         ListaClasses.Items.Add(ClassRef.ClassName);

         ClassRef := ClassRef.ClassParent;
   End;

   FreeAndNil(Obj);
end;

Conto com a ajuda de vocês para facilitar os meus estudos pois é material que 
não acaba mais...

Falow

_________________________________________________________________
Confira vídeos com notícias do NY Times, gols direto do Lance, videocassetadas 
e muito mais no MSN Video!
http://video.msn.com/?mkt=pt-br

Responder a