Moin lkz,
ist halt die Frage, ob xyz bei Dir wiederum ein Objekt, oder einfach nur ein Recordtyp sein soll.
In jedem Falle müsstest Du wohl ein (dynamisches) Array für xyz vorsehen
Beispiel:
Delphi-Quellcode:
type
TMyRecord = packed record
name : string;
id : integer;
end;
TMyComponent = class(TObject)
private
FMyList : array of TMyRecord;
function Getxyz(index: integer): TMyRecord;
procedure Setxyz(index: integer; const Value: TMyRecord);
public
constructor Create;
procedure Add(const AsName : string;AiId : integer);
property xyz[index : integer] : TMyRecord read Getxyz write Setxyz;
end;
implementation
{$R *.DFM}
{ TMyComponent }
procedure TMyComponent.Add(const AsName: string; AiId: integer);
begin
SetLength(FMyList,length(FMyList)+1);
FMyList[high(FMyList)].name := AsName;
FMyList[high(FMyList)].Id := AiId;
end;
constructor TMyComponent.Create;
begin
inherited;
SetLength(FMyList,0);
end;
function TMyComponent.Getxyz(index: integer): TMyRecord;
begin
Result := FMyList[index];
end;
procedure TMyComponent.Setxyz(index: integer; const Value: TMyRecord);
begin
FMyList[index] := Value;
end;
Das Beispiel enthält keinerlei Sicherheitsprüfungen (Index), und das Array immer um einen Wert zu vergrössern, ist auch nicht besonders geschickt, aber es zeigt einen Weg auf, wie es grundsätzlich machbar wäre.