Миграция на Delphi 2009 - ошибка неверного типа - PullRequest
2 голосов
/ 22 сентября 2009

Я конвертирую проект GraphicEx в Delphi 2009.

У меня проблемы с преобразованием следующей процедуры в единицу измерения Scanf_c.pas . Вот проблема:

  With TscRec(FType) do begin

FType является целым числом, а TscRec определен:

  TscRec = packed record  // Has size of an integer
      Case byte of
        0: ( Typ : byte; Size : char; Flags : word;);
        1: ( SizeType : word; iFlags : smallInt;);
      end;

Кажется, что этот код работает нормально в Delphi 2007, но у меня проблема с его компиляцией в Delphi 2009. Ошибка компилятора: «Invalid Typecase». Проблема связана с типизацией FType, который является целым числом для TScRec, который является записью.

Есть ли у кого-то здесь такая же проблема с Delphi 2009 и есть решение?

Thx

1 Ответ

12 голосов
/ 22 сентября 2009

"char" теперь является 2-байтовым типом данных. Что произойдет, если вы измените объявление на «ansichar»? (Это эквивалент "char" в Delphi <= 2007). </p>

...