Autor Beitrag
chubbson
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 32
Erhaltene Danke: 1



BeitragVerfasst: Sa 26.06.10 11:53 
Hallo Zusammen
Es is ein weilchen her seit ich mich zuletzt hier blicken lassen hab.

Zu diesem Thema gibt es warscheinlich bereits 100000 Einträge aber ich verstehs trotzdem noch nicht ganz.

Ich wollte bisschen alten code in d2009 laufenlassen und beim builden einer dpk bekomm ich folgende Meldung:

ausblenden Quelltext
1:
E2010 inkompatible typen: 'AnsiChar' und 'Char'					


Anscheinend sind nun alle Char in delphi 2009 WideChar und dasselbe mit strings oder so.

Leider bin ich die letzten 5 Monate mit Java konfrontiert worden und mein ganzes delphi Wissen wurde zu brei geschlagen;)
kurz, ich versteh im Moment nur Bahnhof.

zwar hab ich diesen Code, wo der Fehler zum beispiel auftritt:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var
  Len : byte;                                 //Stringlänge
  StrB : ShortString;  
begin 
  StrB[0] := Chr(len);


oder

ausblenden Delphi-Quelltext
1:
2:
3:
4:
var 
  str : string[255];
begin
  str[ix] := Chr(23 xor ord(str[ix]));


Kann mir das jemand versuchen zu erklären wieso jetzt genau das nicht gehen sollte? Was da genau die Lösung wäre und Weshalb.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 26.06.10 22:05 
Chr gibt ein Char zurück. In einem ShortString dagegen sind AnsiChars drin, da dieser Stringtyp nicht unicodefähig ist.

Du kannst in diesem Fall einfach auf AnsiChar casten, aber besser ist es den Code gleich ganz umzuschreiben. Und dabei auf ShortStrings zu verzichten. Die habe ich selbst schon ewig nicht mehr verwendet...