Fórum Em que momento destruir uma classe #563052
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
Curtir tópico
+ 0Post 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
Gostei + 1
Mais Posts
27/09/2016
Pablo Ricardo
Gostei + 0
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 --->
Gostei + 0
27/09/2016
Pablo Ricardo
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)