Die Methode
Read erwartet einen Zeiger auf eine Speicheradresse und wie Khabarakh schon sagt:
Zitat:
Der Stream kann aber nicht wissen, dass du einen String übergibst und deshalb nicht SetLength selbst aufrufen.
Bei der Zuweisung einer Zeichenkette an eine Stringvariable kann der Compiler intern
SetLength aufrufen, weil er weiß, dass es sich um einen String handelt - du hast es ja selber so deklariert.