In einer For-Schleife, in der du "i" als Zählervariable benutzt, kannst du nicht einfach "i" wieder auf irgend einen Wert setzen. Dafür solltest du dann
repeat ... until
oder
while ... do
benutzen.
[dcc32 Warnung] Amp.pas(310): W1050 WideChar in Set-Ausdrücken auf ByteChar verkürzt. Ziehen Sie die Verwendung der Funktion 'CharInSet' aus der
Unit 'SysUtils' in Betracht.
while (Outbound[i] in ['0'..'9', 'A'..'Z', 'a'..'z']) and (i <= Length(Outbound)) do
Ab Delphi 2009
sollte man die Funktion CharInSet() für solche Konstrukte verwenden. Deshalb auch die Warnung. Als Beispiel so:
if CharInSet(Outbound[i], ['0'..'9', 'A'..'Z', 'a'..'z']) then ...