<!DOCTYPE html>
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    According to <a class="moz-txt-link-freetext" href="https://www.freepascal.org/docs-html/ref/refse34.html">https://www.freepascal.org/docs-html/ref/refse34.html</a><br>
    <br>
    <blockquote type="cite"><dt class="description">
        <span class="cmbx-10">Protected</span><span class="cmbx-10"> </span>
      </dt>
      <dd class="description">Is the same as <span class="cmtt-10">Private</span>,
        except that the members of a <span class="cmtt-10">Protected </span>section
        are also accessible to descendent types, even if they are
        implemented in other modules.</dd>
    </blockquote>
    <br>
    "to descendant types" => suggests, from within a descendant type
    (even if the descendant type is in a different unit).<br>
    <br>
    But the example (working with 3.3.1) from
    <a class="moz-txt-link-freetext" href="https://gitlab.com/freepascal.org/lazarus/lazarus/-/issues/41987">https://gitlab.com/freepascal.org/lazarus/lazarus/-/issues/41987</a>
    shows that the protected method is accessible<br>
      <b><u>through</u></b> the descendant type.<br>
    <br>
    I.e. from any code in the unit of the descendant type, even code
    outside the descendant type, if it goes "through" the descendant
    type.<br>
    <br>
    <br>
  </body>
</html>