Habe gerade mal in meinem ollen Delphi 7 probiert:
Delphi-Quellcode:
var
s1 : String[1];
s255 : String[255];
s : String;
sShort : ShortString;
begin
ShowMessage(Format('s = %d, s1 = %d, s255 = %d, sShort = %d', [SizeOf(s),SizeOf(s1),SizeOf(s255),SizeOf(sShort)]));
end;
Das liefert mir
Code:
s = 4, s1 = 2, s255 = 256, sShort = 256
Daraus schließe ich jetzt einfach mal (bitte korrigiert mich):
String[255] entspricht ShortString, String[1] bis String[255] verhalten sich wie schon beim alten Turbopascal. (Array of Char, bei dem an Position 0 die Längenangabe des tatsächliche genutzten Teils des Arrays steht.)
String ist, wie himitsu beschrieb, eine nullterminierte Zeichenfolge.