sobald der Compiler es unterstützt, ginge auch sowas:
Delphi-Quellcode:
TRecord = record
private
function GetBla(const Name: String): String;
procedure SetBla(const Name, Value: String);
public
UnterRecord1 : TUnterRecord1;
UnterRecord2 : TUnterRecord2;
UnterRecord3 : TUnterRecord3;
property bla[const Name: String]: String read GetBla write SetBla;
end;
function TRecord.GetBla(const Name: String): String;
begin
if Name = 'UnterRecord1' then
Result := UnterRecord1.bla
else
...
Delphi-Quellcode:
var Rec: TRecord;
S := Rec.bla['UnterRecord1'];
ähnlich ginge es mit Objekten, wobei man da die meißten Möglichkeiten hat, wenn Record und Unterrecords durch Objekte ersetzt werden.