Das kann man auch mit einem Record-Helper realisieren:
Delphi-Quellcode:
type
TMyRecord = record
FeldA,
FeldB,
FeldC: String;
end;
type
TMyRecordHelper = record helper for TMyRecord
private type
TMockArray = array[0..0] of string;
private
function GetItems(Index: Integer): string;
procedure SetItems(Index: Integer; const Value: string);
public
property Items[Index: Integer]: string read GetItems write SetItems; default;
end;
function TMyRecordHelper.GetItems(Index: Integer): string;
begin
{$R-}
Result := TMockArray(FeldA)[Index - 1];
{$R+}
end;
procedure TMyRecordHelper.SetItems(Index: Integer; const Value: string);
begin
{$R-}
TMockArray(FeldA)[Index - 1] := Value;
{$R+}
end;
Der Aufruf gestaltet sich dann in etwa so:
Delphi-Quellcode:
var Tmp: TMyRecord;
Tmp.FeldA := 'Hallo';
Tmp.FeldB := 'Delphi';
Tmp.FeldC := 'Welt';
var Satz: string;
for var I := 1 to 3 do
Satz := Satz + ' ' + Tmp[I];
Writeln(Satz.TrimLeft);
Readln;