Fórum Componente a partir de uma string #255829
25/10/2004
0
Gabriel Ferrarini
Curtir tópico
+ 0Posts
25/10/2004
Afarias
ex::
procedure TForm1.CriarObjeto(ClasseObjeto: string);
var
Classe: TControlClass;
Objeto: TControl;
begin
Classe := TControlClass(FindClass(ClasseObjeto));
Objeto := Classe.Create(Self);
Objeto.Parent := Self;
{...}
end;
Neste exemplo ClasseObjeto deve ser uma classe derivada de TControl (TButton, TEdit, etc...)
Para usar a função FindClass as classes q se deseja trabalhar devem estar previamente Registradas. Para isso vc usa a função RegisterClasses, ex:
initialization RegisterClasses([TButton, TEdit, TPanel]); finalization UnRegisterClasses([TButton, TEdit, TPanel]);
T+
Gostei + 0
25/10/2004
Gabriel Ferrarini
Só gostaria de uma explicaçãozinha sobre a linha:
Classe := TControlClass(FindClass(Nome));
Gostei + 0
25/10/2004
Gabriel Ferrarini
Agora tá dando internal error SY424.
Sabe o que é?
Gostei + 0
25/10/2004
Afarias
1) FindClass retorna a classe pelo nome contido na variável Nome
2) Como o retorno da função é TPersistentClass, é realizado um TypeCast para TControlClass
|Vixi, acho que deu bosta...
|Agora tá dando internal error SY424.
Erros internos não tem exatamente um motivo -- a Borland recomenda q estes erros sejam enviados para ´investigação´ (provavelmente algum bug)
T+
Gostei + 0
25/10/2004
Gabriel Ferrarini
Se for aprendi mais uma :D
Gostei + 0
25/10/2004
Afarias
|parâmetro outra classe é feito um typecast??
+/- isso... :D
Isto não é só para classes mas para qualquer tipo.
T+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)