Der LongString-Typ "String" war bis D2006/D2007 ein AnsiString (in D1 noch ein ShortString)
und jetzt ist es seit D2009 ein UnicodeString.
Ausnahme sind ShortStrings, welche als String-mit-Länge deklariert sind ... diese waren und bleiben ShortString.
Wie ist Decode deklariert?
Ich vermute mal mit Char als Parameter, was früher ein AnsiChar war und nun ein WideChar ist.
Bei Zuweisungen zwischen
Ansi und
Unicode wird Delphi standardmäßig eine (deaktivierbare) "Warnung". (dass eventuell Informationen verloren gehen)
Ist aber z.B. der Parameter "explizit" Char/WideChar (z.B. VAR-Parameter), dann gibt es keine automatische Konvertierung.
-> Wntweder den Parameter als AnsiChar deklarieren oder vor Übergabe manuell nach Char oder WideChar casten.