Этот пример вспомогательного класса хорошо компилируется:
type
TMyOrgClass = class
strict private
FMyPrivateProp: Integer;
strict protected
property MyProtectedProp: Integer read FMyPrivateProp;
end;
TMyClassHelper = class helper for TMyOrgClass
private
function GetMyProtectedProp: Integer;
public
property MyPublicProp: Integer read GetMyProtectedProp;
end;
function TMyClassHelper.GetMyProtectedProp: Integer;
begin
Result:= Self.FMyPrivateProp; // Access the org class with Self
end;
Дополнительную информацию о помощниках класса можно найти здесь: код-помощников-классов-используемых-в-разработке-новом-коде
Обновление
Начиная с Delphi 10.1 Berlin, доступ к private
или strict private
членам с помощниками класса не работает. Это считалось ошибкой компилятора и было исправлено. Доступ к protected
или strict protected
членам по-прежнему разрешен с помощью помощников класса.
В приведенном выше примере был показан доступ к приватному члену. Ниже показан рабочий пример с доступом к строго защищенному члену.
function TMyClassHelper.GetMyProtectedProp: Integer;
begin
with Self do Result:= MyProtectedProp; // Access strict protected property
end;