Einzelnen Beitrag anzeigen

lt.col.blair

Registriert seit: 5. Feb 2011
7 Beiträge
 
#1

XE2 char, array of char, string ... inkompatible typen

  Alt 12. Jun 2012, 12:53
Delphi-Version: 5
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
  Mit Zitat antworten Zitat