Como dije hace cuatro años, es difícil responder. Y también, asignar "nil" no libera memoria. El siguiente código
no libera memoria:
Código Delphi
[-]
Objecto := nil;
Objeto.Free;
Es más, te dará un error puesto que estás intentando llamar a un método de un objeto que no existe (el objeto nil no existe). El código debería ser este:
Código Delphi
[-]
Objeto.Free;
Objeto := nil;
O lo que es lo mismo: