Das wurde doch erklärt?
Ein String[x] und ShortString (aka String[255]) entspricht dieser Struktur:
Delphi-Quellcode:
type
MyShortString = packed record
Len: Byte; // entspricht Data[0]
Data: array[1..x] of AnsiChar;
end;
Ein String/AnsiString/WideString/UnicodeString ist ein
Zeiger auf seine Daten,
also im Record steht dort nur der Pointer (mit seinen aktuell 4 Byte) und der Rest (der Stringinhalt) liegt irgendwo anders.
Und der Speicher, auf welchen der Pointer zeigt, wird von Delphi (der CompilerMagic) automatisch verwaltet.
Das ist in allen Delphiversionen gleich. (natürlich solange sie den entsprechenden String-Typen kennen)