[fpc-pascal] How are Assigned, Free, Nil and Destroy related?
Felipe Monteiro de Carvalho
felipemonteiro.carvalho at gmail.com
Sat Oct 22 08:20:47 CEST 2011
I understand Assigned as being the same as <> nil, so Assigned(Object)
= Object <> nil
I vaguely remember that it could be safer in some corner case, but I
don't remember ever meting that.
Free is how you release the memory allocated for a object. Free calls
Destroy. Never call Destroy manually. When you implement the
destructor you always implement Destroy, never change Free.
Nil is not a routine, it is a value, it means that the object is
empty, it does not exist / is not allocated. Nil in existing
implementations that I know is represented by the value zero.
The typical life-cycle of a object is:
MyObject := TMyObject.Create;
try
MyObject.DoSomething();
finally
MyObject.Free;
end;
To implement this object you should implement Create, DoSomething and Destroy.
--
Felipe Monteiro de Carvalho
More information about the fpc-pascal
mailing list