[fpc-pascal] Checking if a TStringList already exists

James Richters james at productionautomation.net
Tue May 21 15:48:11 CEST 2019

I don’t seem to have FreeThenNil  I’m using FPC 3.0.4RC1 I don’t use Lazarus.. maybe it’s a Lazarus thing… or maybe it’s in a different unit 


plotdraw.pax.pas(20,7) Error: Identifier not found "FreeThenNil"              




From: fpc-pascal <fpc-pascal-bounces at lists.freepascal.org> On Behalf Of Giuliano Colla
Sent: Monday, May 20, 2019 6:01 PM
To: fpc-pascal at lists.freepascal.org
Subject: Re: [fpc-pascal] Checking if a TStringList already exists


Il 20/05/2019 15:23, James Richters ha scritto:

Thank you very much for the explanation and examples of this!   I am glad you pointed out the FreeAndNill() function, I will defiantly be needing that.

Then you might also appreciate the function Assigned. Assigned(P) returns true if P is non-nil, and false if P is Nil. Nothing fancy, just making the code more readable.

>From fpc documentation:

Program Example96;
{ Program to demonstrate the Assigned function. }
Var P : Pointer;
  If Not Assigned(P) then
    Writeln ('Pointer is initially NIL');
  If Not Assigned(P) then
    Writeln('Internal inconsistency')
    Writeln('All is well in FPC')


P.S. In some rare case when dealing with complex objects you might need FreeThenNil() in place of FreeAndNil(). Give a look to https://lists.lazarus-ide.org/pipermail/lazarus/2011-April/062743.html

Do not do to others as you would have them do to you.They might have different tastes.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20190521/8c373e71/attachment.html>

More information about the fpc-pascal mailing list