Fórum Registar classe automaticamente ao criar um formulario #373778

19/08/2009

0

Olá pessoal, fazendo uma pesquiza descobri que para eu acessar uma classe atraves de uma string eu tenho que ter essa classe previamente cadastrada. Eu trabalho com formulario padrão, dessa forma:

[b:5f96406f54]TForm_Padrao_Cadastro = class(TForm)[/b:5f96406f54]

e todos os formularios de cadastro se derivam dela, da seguinte forma:

[b:5f96406f54]TCadastro_Pessoas = class (TForm_Padrao_Cadastro)
TCadastro_Fornecedores = class (TForm_Padrao_Cadastro)[/b:5f96406f54]
....
e a assim por diante. Dessa forma para eu registar as classes eu tenho que fazer o seguinte:

Para eu registar a classe TCadastro_Pessoas eu tenho que fazer o seguinte, na unit UCadastro_Pessoas antes do ´end.´ eu coloco o seguinte codigo:

[b:5f96406f54]initialization
RegisterClass(TFCadastro_Pessoas);
finalization
UnRegisterClass(TFCadastro_Pessoas);[/b:5f96406f54]

Para eu registar a classe TCadastro_Fornecedores eu tenho que fazer o seguinte, na unit UCadastro_Fornecedores antes do ´end.´ eu coloco o seguinte codigo:

[b:5f96406f54]initialization
RegisterClass(TFCadastro_Fornecedores);
finalization
UnRegisterClass(TFCadastro_Fornecedores);[/b:5f96406f54]

A pergunta e a seguinte:

Teria como eu fazer esse registro na classe mae(TForm_Padrao_Cadastro), Tipo assim:

[b:5f96406f54]initialization
RegisterClass(Screen.ActiveForm.ClassType);
finalization
UnRegisterClass(Screen.ActiveForm.ClassType);[/b:5f96406f54]

preciso fazer algo toda vez q eu crie um form derivado da classe mae (TForm_Padrao_Cadastro) eu não precise escrever o codigo para registar a classe. Obrigado.[color=green:5f96406f54][/color:5f96406f54][color=green:5f96406f54][/color:5f96406f54]


Juniorcastromaia@hotmail

Juniorcastromaia@hotmail

Responder

Posts

19/08/2009

Osocram

Então... eu tbm não consegui fazer isso e declaro sempre o RegisterClass


Responder

Gostei + 0

21/08/2009

Abysmall

Olá...

desculpe-me se estou atrapalhando seu post, mas gostaria de aproveitar o assunto para perguntar, qual a importância de se usar :

 
finalization
UnRegisterClass(TMinhaClasse);


Agradeço desde já.


Responder

Gostei + 0

21/08/2009

Osocram

Teoricamente é p vc desregistrar a classe e não ficar preso na memoria.

Mas eu testei com o Eureka log e não da memory leak ficar sem isso
UnRegisterClass(TMinhaClasse);

Então não vejo muita utilidade, ja que enqto o sistema estiver aberto todos as classes tem q estar Registrado e qdo fechar ele vai tirar tudo da memoria mesmo.

Resumindo, na teoria é p liberar da memoria, na pratica não vi um pq de se fazer isso.
Olá... desculpe-me se estou atrapalhando seu post, mas gostaria de aproveitar o assunto para perguntar, qual a importância de se usar :
 
finalization
UnRegisterClass(TMinhaClasse);
Agradeço desde já.



Responder

Gostei + 0

21/08/2009

Abysmall

era exatamente isso o que eu tinha em mente....
Muito Obrigado...

obs: vc foi rápido hein.. rsrs


Responder

Gostei + 0

21/08/2009

Abysmall

era exatamente isso o que eu tinha em mente....
Muito Obrigado...

obs: vc foi rápido hein.. rsrs


Responder

Gostei + 0

23/08/2009

Firekiller_am

Eu tbm trabalho com forms bases.

Mais não preciso registrar classes dentro da tela filha.

Faço isso apenas na tela principal que instancia as mesmas.

Pra mim seu poster ficou confuso.

abraços


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar