Auch wenn sx2008 unbewust die Lösung verbaut hat.
D2009 + String +
Unicode?
Nachdem nun schon über 3 Jahre lang alle darüber schreiben, daß nun ein String nicht mehr
ANSI, sopnder
unicode ist, dürften das langsam mal bekannt werden, vorallem da die Sunchfunktion mit entsprechenden Beiträgen überfüllt sein dürfte.
Und die Frage nach dem Warum:
Wenn man Glück hat, dann gibt es nur eine Referenz und im Stream sind genau doppelt soviele Daten (Bytes), wie Daten im String (Bytes),
also genausoviele Bytes im Stream, wie Chars (je 2 Bytes) m String,
denn dann macht SetLength nämlich garnichts.
Und wenn dann beim Zugriff auf den String ebenfalls nichts mit der Referenzierung passiert, dann wird direkt in den externen String geschrieben.
(aber eigentlich sollte nur bei CONST eine passende Referenz reinkommen
)