+5 votos
42 visitas
Após a utilização dos objetos IEntityCallProxy ou IBusinessComponentProxy da tecnologia, ao tentar executar o comando FreeAndNill do Delphi resulta em um Access Violation, mesmo utilizando a verificação Assigned().
por (353 pontos)
editado por | 42 visitas

1 Resposta

+5 votos
Melhor resposta

Não deve-se efetuar a liberação desses tipos de objetos, estes serão liberados posteriormente pelo Delphi quando não existirem mais referências para o objeto.

Para efetuar a liberação, deve-se atribuir "nil", para variável do tipo interface, e null para variável do tipo OleVariant.

Exemplo:

var
  ObjA: ITableMacro;
  ObjB: OleVariant;

begin
  ...

  ObjA := nil;

  ObjB := null;

end;

 

 

Importante:

O null esta declarado na unit Variants.

Quando termina o escopo da variável o objeto também é liberado.

 

 

 

por (353 pontos)
editado por
Melhores May 2020
  1. henrique.muller

    18 Pontos

  2. joao.melo

    14 Pontos

  3. joseglauber

    11 Pontos

  4. SlimShady

    7 Pontos

  5. willian.metalsystem

    6 Pontos

  6. lucas.melo

    3 Pontos

  7. fluipress.luciano

    2 Pontos

  8. pajucara.wallacef

    2 Pontos

  9. jean.filho

    2 Pontos

  10. maicon.pereira

    2 Pontos

200 pontos
Melhores 2020 May 25 - 31
    433 perguntas
    476 respostas
    346 comentários
    466 usuários