type
TPoint = class
public
X, Y: Double;
end;
TPointHelper = class helper for TPoint
private
function GetItem(I: Integer): Double;
public
//indexer added by the helper
property Items[I: Integer]: Double
read GetItem; default;
end;
function TPointHelper.GetItem(
I: Integer): Double;
begin
if I = 0 then
Result := X
else
Result := Y;
end;
var
P: TPoint;
begin
P := TPoint.Create;
P.X := 1;
P.Y := 2;
WriteLn('p[0] is ', P[0]:0:0);
//p[0] is 1
WriteLn('p[1] is ', P[1]:0:0);
//p[1] is 2
end.