<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Il 20/05/2019 15:23, James Richters ha scritto:<br>
    </p>
    <blockquote type="cite"
      cite="mid:b25a01d50f0f$37109f60$a531de20$@productionautomation.net">
      <pre wrap="">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.

James
</pre>
    </blockquote>
    <br>
    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.<br>
    <br>
    From fpc documentation:<br>
    <blockquote type="cite">
      <pre style="font-family: Courier, monospace; font-size: 14px; color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"><span class="kw" style="font-family: Courier, monospace; font-size: 14px; font-weight: bold;">Program</span> Example96<span class="sym" style="color: darkred;">;</span>

<span class="cmt" style="color: darkcyan; font-style: italic;">{ Program to demonstrate the Assigned function. }</span>

<span class="kw" style="font-family: Courier, monospace; font-size: 14px; font-weight: bold;">Var</span> P <span class="sym" style="color: darkred;">:</span> Pointer<span class="sym" style="color: darkred;">;</span>

<span class="kw" style="font-family: Courier, monospace; font-size: 14px; font-weight: bold;">begin</span>
  <span class="kw" style="font-family: Courier, monospace; font-size: 14px; font-weight: bold;">If</span> <span class="kw" style="font-family: Courier, monospace; font-size: 14px; font-weight: bold;">Not</span> Assigned<span class="sym" style="color: darkred;">(</span>P<span class="sym" style="color: darkred;">)</span> <span class="kw" style="font-family: Courier, monospace; font-size: 14px; font-weight: bold;">then</span>
    Writeln <span class="sym" style="color: darkred;">(</span><span class="str" style="color: blue;">'Pointer is initially NIL'</span><span class="sym" style="color: darkred;">)</span><span class="sym" style="color: darkred;">;</span>
  P<span class="sym" style="color: darkred;">:=</span><span class="sym" style="color: darkred;">@</span>P<span class="sym" style="color: darkred;">;</span>
  <span class="kw" style="font-family: Courier, monospace; font-size: 14px; font-weight: bold;">If</span> <span class="kw" style="font-family: Courier, monospace; font-size: 14px; font-weight: bold;">Not</span> Assigned<span class="sym" style="color: darkred;">(</span>P<span class="sym" style="color: darkred;">)</span> <span class="kw" style="font-family: Courier, monospace; font-size: 14px; font-weight: bold;">then</span>
    Writeln<span class="sym" style="color: darkred;">(</span><span class="str" style="color: blue;">'Internal inconsistency'</span><span class="sym" style="color: darkred;">)</span>
  <span class="kw" style="font-family: Courier, monospace; font-size: 14px; font-weight: bold;">else</span>
    Writeln<span class="sym" style="color: darkred;">(</span><span class="str" style="color: blue;">'All is well in FPC'</span><span class="sym" style="color: darkred;">)</span>
<span class="kw" style="font-family: Courier, monospace; font-size: 14px; font-weight: bold;">end</span><span class="sym" style="color: darkred;">.</span></pre>
    </blockquote>
    Giuliano<br>
    <br>
    P.S. In some rare case when dealing with complex objects you might
    need FreeThenNil() in place of FreeAndNil(). Give a look to <a
      moz-do-not-send="true"
href="https://lists.lazarus-ide.org/pipermail/lazarus/2011-April/062743.html">https://lists.lazarus-ide.org/pipermail/lazarus/2011-April/062743.html</a><br>
    <pre class="moz-signature" cols="72">-- 
Do not do to others as you would have them do to you.They might have different tastes.</pre>
  </body>
</html>