Guilherme Augusto wrote:
> Agora, minha dúvida é a seguinte:
> 
> Porém, a parte do "Novo := GetClass(EdClasse.Text);"está me retornando 
> Null porque ainda não registrei a classe. Aí, a minha dúvida é:
> 
> Vou precisar colocar
> Novo := TEdit;
> Novo := TLabel;
> etc... para todas as classes que eu quiser usar antes de tentar ver os 
> ascendentes?? Poque quando eu faço isso ele funciona!!
> Ou como eu faço para a minha String "EdClasses.Text" virar uma 
> TPersistentClass??

O GetClass só vai achar o que você registrar. A medida em que você 
instancia forms, o próprio delphi vai registrar algumas classes de forma 
automática, mas você não tem nenhuma garantia. O ideal é registrar tudo 
antes de usar o getclass.

Outra coisa: o create é virtual apenas de TComponent para baixo, então 
você vai precisar fazer outro truque para criar componentes em runtime:

if VClass.InheritsFrom(TComponent) then
   VObj := TComponentClass(VClass).Create()
else
   // não é um TComponent

No entanto, se você só precisa saber quem é a superclasse, você não 
precisa criar a instância; o ponteiro da classe é suficiente.

--
Joao Morais

Responder a