k.A. wer auf die
schwachsinige geniale Idee kam, aber der WideChar wurde im string.Join vergessen.
> 'x' mit nur einem Zeichen ist ein Char (WideChar)
> und bei mehr oder weniger/keinem Zeichen ist es ein String (UnicodeString)
Außer im NEXTGEN (wo es hier garkeine Chars gibt), wurde nur vtChar und vtPChar implementiert, was aber die AnsiChar und PAnsiChar sind,
wobei der Compiler aber deine 'Zeichen' als WideChar übergibt.
Ebenso darfst du keine AnsiString, WideString, PWideChar, Variant oder ShortString verwenden,
siehe ValueToString im TStringHelper.Join
und alles was diese Funktion nicht kennt, wird mit "(Unknown) : %d" beantwortet.
Und es gibt keinen vernünftigen Grund, warum diese 5 Zeilen Code weggelassen wurden.
(die Codevervollständigung füllt Einem schließlich das CASE und es ist mehr Aufwand jenes geziehlt wegzulassen)
Fazit: Einzelne Zeichen mußt du entweder nach String oder AnsiChar casten,
oder warten bis in 1-5 Jahren der Fehler behoben wurde, nachdem du ihn gemeldet hast.
Fun-Fact: entweder nutzt sonst niemand das Join oder es kam viele Jahre lang noch niemand auf die Idee einzelne Char-Konstanten reinzugeben.