Em que momento destruir uma classe
27/09/2016
0
unit untEmpresaController; interface type TEmpresaController = class strict private class var FInstance: TEmpresaController; constructor Create; private public class function GetInstance: TEmpresaController; end; implementation { TEmpresaController } constructor TEmpresaController.Create; begin inherited; end; class function TEmpresaController.GetInstance: TEmpresaController; begin If FInstance = nil Then begin FInstance := untEmpresaController.TEmpresaController.Create(); end; Result := FInstance; end; end.
"exemplo"
Em um form eu eu chamo a GetInstance, crio tudo.. ok.
Em qual momento eu tenho necessidade de destruir essa classe? Estou tendo dificuldade pra definir quando e onde destruir essa classe.
Caso a pergunta seja vaga, posso explicar melhor. (É, não coloquei o destructor dela, é só um exemplo do que to usando de modo geral.)
Pablo Ricardo
Post mais votado
29/09/2016
Eu nunca tentei utilizar o código [b]class var FInstance: TEmpresaController [/b] talvez porque seja um recurso de versões mais recentes do Delphi, porem acredito que é o mais correto porque é é similar como se faz em outras linguagens.
Sempre declarei um var abaixo da seção implementation, criando uma variavel de unidade mas de escopo protegido, onde não é acessado por outras unidades, e no final antes do ultimo end (end.) eu faço o seguinte
initialization finalization Free(FInstance); end.
Assim, quando a aplicação for fechada, essa instância será destruída.
Espero ter sido útil, se fui, por favor, marque um Joinha para eu ficar ciente.
Hélio Devmedia
Mais Posts
27/09/2016
Andrêy Ferraz
begin
If FInstance = nil Then
begin
FInstance := untEmpresaController.TEmpresaController.Create();
end;
Result := FInstance;
---> Freeandnil(Finstance);
end;
Apenas acrescente isso ai que indiquei na seta --->
27/09/2016
Pablo Ricardo
Clique aqui para fazer login e interagir na Comunidade :)