Mit den erweiterten Möglichkeiten von Records kann man das ganz elegant wegdeklarieren, so daß die unsauberen Casts nur an einer Stelle vorkommen:
Delphi-Quellcode:
type
TTest = record
private
type
Str6 = String[6];
var
Fid: Str6;
function GetId: string;
procedure SetId(const Value: string);
public
property Id: string read GetId write SetId;
end;
function TTest.GetId: string;
begin
Result := string(FId);
end;
procedure TTest.SetId(const Value: string);
begin
FId := Str6(Copy(Value, 1, 6));
end;