Описание тега class-helpers

Расширяет существующие классы / записи в Delphi без использования наследования. Помощники классов также предоставляют более широкую область действия компилятору при разрешении идентификаторов. Синтаксис был введен в Delphi 2005.

Расширяет существующие классы / записи в Delphi без использования наследования. Помощники классов также предоставляют более широкую область действия компилятору при разрешении идентификаторов. Синтаксис был введен в Delphi 2005.

Для занятий используйте class helper for TMyClass,

Для записей используйте record helper for TMyRecord,

Пример:

раздел 1:

type
  TMyClass = class
    strict private
      fStrictPrivate : integer;
    strict protected
      fStrictProtected : integer;
    public
      procedure MyProc;
      function MyFunc : string;
  end;

{ TMyClass }

function TMyClass.MyFunc: string;
begin

end;

procedure TMyClass.MyProc;
begin

end;

модуль 2:

uses unit1;

type
  TMyClassHelper = class helper for TMyClass
    procedure HelloWorld;
    function MyFunc : string;
  end;

{ TMyClassHelper }

procedure TMyClassHelper.HelloWorld;
begin
  WriteLn( Self.ClassName); // Self refers to TMyClass
  WriteLn( Self.fStrictPrivate); // Access to strict private members
  WriteLn( Self.fStrictProtected); // Access to strict protected members
end;

function TMyClassHelper.MyFunc: string;
begin

end;

...

var
  x : TMyClass;
begin
  x := TMyClass.Create; // Visibility of TMyClassHelper is enough for the compiler
  x.MyProc; // Calls TMyClass.MyProc
  x.HelloWorld; // Calls TMyClassHelper.HelloWorld
  x.MyFunc; // Calls TMyClassHelper.MyFunc;

Ресурсы:

Документация Delphi: Class_and_Record_Helpers.