kommt drauf an ...
@S[1] gibt einen Zeiger auf den String (das erste Zeichen)
PChar(S) macht das "Selbe", nur daß hier keine
Exception auftritt, wenn der String leer ist
PChar(Pointer(S))^ 's selbe wie @S[1] ... hier sollte wohl klar werden, warum eine
Exception auftreten könnte (S = '' >> Pointer(S) = nil)
@S gibt einen Zeiger auf die Stringvariable wieder
welches hier korrekt wäre
Bei ShortStrings (welches in etwa einem Array[0..x] of Char entspricht) ist @S genau das Selbe wie @S[1], sodas dort beises auf das erste Zeichen / den Arrayanfang zeigt.