program ClassTest; type TBase = class(TObject) private FCount: Integer; public constructor Create; destructor Destroy; override; procedure SetCount(V: Integer); function GetCount: Integer; property Count: Integer read GetCount write SetCount default 0; end; THelper = class helper for TBase function Doubled: Integer; end; constructor TBase.Create; begin FCount := 0; end; destructor TBase.Destroy; begin inherited; end; procedure TBase.SetCount(V: Integer); begin FCount := V; end; function TBase.GetCount: Integer; begin GetCount := FCount; end; function THelper.Doubled: Integer; begin Doubled := Count * 2; end; var B: TBase; begin B := TBase.Create; B.Count := 5; end.