Fórum Carregar classe do tipo TPersistent dinâmicamente #349826
28/11/2007
0
é o seguinte eu já vi que é possível carregar um formulário dinâmicamente usando algo parecido com:
function CriarFormPeloNomeDaClasse(const ONomeDaClasse: TFormClass): TForm; var Classe: TFormClass; begin Classe := TFormClass(FindClass(ONomeDaClasse)); Result := Classe.Create(Application); end;
mas agora eu estou precisando carregar dinâmicamente uma simples unit do tipo TPersistent.
Alguém pode me ajudar?
Obrigado
Andeson Rodrigues
Anderson.uem
Curtir tópico
+ 0Posts
04/12/2007
Giordanocwb
var classe: TPersistentClass; objeto: TPersistent; begin classe := FindClass(´TClassePersistente´); if Assigned(classe) then //se encontrou a classe objeto := classe.Create; end;
Detalhe, para que sua classe seja encontrada, você deve registrar a sua classe, o melhor lugar para fazer isso é no initialization da unit onde a sua classe se encontra. Não se esqueça de tirar o registro da classe no finalization ok!!!
initialization RegisterClass(TClassePersistente); finalization UnRegisterClass(TClassePersistente);
Gostei + 0
11/12/2007
Anderson.uem
Olha estou com uma dúvida.
Quando eu mando criar um form dinâmicamente
function CriarFormPeloNomeDaClasse(const ONomeDaClasse: TFormClass): TForm; var Classe: TFormClass; begin Classe := TFormClass(FindClass(ONomeDaClasse)); Result := Classe.Create(Application); end;
ele não passa pelo constructor da classe em questão.
Você sabe me dizer o porque?
Obrigado
Anderson Rodrigues
Gostei + 0
11/12/2007
Giordanocwb
T+
Gostei + 0
21/12/2007
Anderson.uem
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)