Deshalb sollte man für solche Sachen natürlich einfach Klassen verwenden. Die kann man auch innerhalb der Klasse deklarieren und hat damit alles beisammen:
Delphi-Quellcode:
type
TMyComponent = class(TComponent)
private type
TTest = class
x1, x2: string;
end;
private
FTest: TTest;
public
constructor Create(AOwner: TCompoent); override;
destructor Destroy; override;
published
property Test: TTest read FTest;
end;
constructor...
begin
inherited Create(AOwner);
FTest := TTest.Create;
end;
destructor...
begin
FreeAndNil(FTest);
end;
Und ShortString sollte man nach Möglichkeit auch nicht mehr verwenden, das gibt es nur aus Gründen der Abwärtskompatibilität mit Delphi 1 von vor 16 Jahren.