Die frage hätte sich auch selber klären lassen.
Copy gibt
immer einen String zurück (unabhängig davon wie lang der ist),
also kann man das Result von Copy auch nur an einen String übergeben, oder an etwas, wo auch ein String reinpasst, wie z.B. ein Variant.
Aber man kann einen String niemals an einen Char übergeben ... mankann sich höchstens aus einem String einen Char rausnehmen und diesen kann man dann an einen Char übergeben.
Und ein String[1] ist ein
String (ShortString) mit einer
Maximallänge von 1.
PS: Wenn Pos nichts findet, dann gibt es 0 zurück,
da aber Copy unter 0 aufrundet, wird dann das erste "Char" zurückgegeben (wenn mindestens 1 Zeichen vorhanden ist.
Delphi-Quellcode:
var
ch: Char;
ch := Copy(S, Pos('%', S), 1)[1];
ch := S[Pos('%', S)];
Achtung: Diese Codes funktionieren nur, wenn mindestens 1 Zeichen im String vorhanden ist und wenn Pos auch etwas findet.