Afaik gibt es keinen sauberen Weg.
Entweder man macht es so wie du (immer weiter das 'abzuleitende' Record als seperate Eigenschaft kapseln) oder man macht eine Klasse draus.
Andersfalls bleiben nur noch Redefinierungen und dann Zeigerfummeleien.
Seit 2006 könnte man aber auch noch sowas machen:
Delphi-Quellcode:
TRecordBase = record
Feld1: Integer;
Feld2: String;
end;
TMyNewRecord = record
private
function GetFeld1: Integer; inline;
...
public
Base: TRecordBase;
extraData: Byte;
property Feld1: Integer read GetFeld1 write SetFeld1;
end;
function TMyNewRecord.GetFeld1: Integer;
begin
Result := Base.Feld1;
end;