Ich weiß nicht ob du dir mit deinen Shortstrings wirklich einen Gefallen tust, weil du könntest ja auch einfach ein String-Array nehmen.
Aber falls du das wirklich behalten willst kannst du deinem Record einen Indexer verpassen:
Delphi-Quellcode:
type
TTestRecord = record
Test1: String[10];
Test2: String[20];
Test3: String[30];
private function getThings(index: Integer): String;
public property Things[index: Integer]: String read getThings; default;
end;
{ TTestRecord }
function TTestRecord.getThings(index: Integer): String;
begin
case index of
0: Result := Test1;
1: Result := Test2;
2: Result := Test3;
else
Result := String.Empty; // oder EArgumentOutOfRangeException werfen
end;
end;
Dann kann man z.B. sagen
Delphi-Quellcode:
procedure p();
var
test: TTestRecord;
index: Integer;
text: String;
begin
test.Test1 := 'Hallo';
test.Test2 := 'Welt';
test.Test3 := 'Delphi';
text := String.Empty;
for index := 0 to Pred(3) do
text := text + test[index];
WriteLn(text);
readln;
end;