Hallo,
arbeite seit kurzem mit DXE2 (vorher D7 und 2007).
Bei der Übernahme von units bekam ich den Fehler "E2008 Inkompatible Typen" für folgenden Code:
Delphi-Quellcode:
[...]
var
ca: array[0..10] of char;
S: string;
[...]
S := ca + 'x'; //<- hier wird der Fehler gemeldet.
S := ca + string('x'); //<- hier wird KEIN Fehler gemeldet.
S := ca + 'xy'; //<- hier wird KEIN Fehler gemeldet.
Verrückterweise, wird kein Fehler gemeldet, wenn die angehängte String-Konstante mehr als ein Zeichen enthält.
Wie es scheint, ist da ein Bug in der automatischen Typerkennung, die aus einer string-Konstante mit einem Zeichen immer char macht, und diesen Typ nicht automatisch in string weiterkonvertieren kann.
Ist sonst noch jemand darüber gestolpert?
Kennt jemand eine "elegante" Lösung, ohne jede 1-Zeichen String-Konstante in "string()" einzuklammern?
Lutz