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