Moin Addy,
erst einmal herzlich willkommen hier in der Delphi-PRAXiS.
Eine Variante hätte ich noch, funktioniert aber nur mit ShortStrings:
Delphi-Quellcode:
type
TMyRecord = record
case boolean of
true : (sValue : string[10]);
false : (cValues : array [0..10] of char);
end;
var
mr : TMyRecord;
begin
mr.sValue := '0123456789';
ShowMessage(mr.cValues[3]);
end;
Bei solchen Varianten Teilen in Records wird immer der gleiche Speicherbereich angesprochen, nur über verschiedene Namen, und Typen.
Da ein ShortString indirekt immer ein Längenbyte mitführt ist belegt er immer ein Byte mehr als man Länge angibt, deshalb muss das array of char auch 11 Byte lang sein.