Na ja, wenn man ShortString verwendet werden wohl die bekannten 256 Byte (1 LängenByte und 255 für die Zeichen) verbraucht.
Wenn man aber den "ShortString folgender Maßen definiert, dann ist Speicherverbrauch = Zeichenanzahl + 1
Var S: String[Länge];
Bei String/AnsiString Zeichenanzahl + 12 Byte (ja 4 Byte für Referenzzähler, Längenangabe und Pointer auf die Stringdaten) belegt.
Und bei allem kommt ja dann nochmal der Pointer (wieder 4 Byte) auf den Speicherbereich, wo die Daten liegen, dazu