<!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>