Блок V200 D2009, который не будет компилироваться - PullRequest
0 голосов
/ 07 декабря 2008

Я нашел ошибку в реализации TFields в Delphi 2009 и написал быстрый патч. Я скопировал файл DB.pas в папку своих проектов и добавил его в список файлов проекта, но теперь не могу его скомпилировать. Первые два сообщения об ошибках даже не имеют смысла, когда я иду в указанные места в коде.

Конечно, если на что-то можно рассчитывать для правильной компиляции, это код из CodeGear. Им уже удалось скомпилировать его, чтобы создать компоненты VCL. Так чего мне не хватает? Вот вывод компилятора:

[DCC Error] DB.pas(2536): E2134 Type 'Pointer' has no type info
[DCC Error] DB.pas(10799): E2066 Missing operator or semicolon
[DCC Error] DB.pas(12933): E2217 Published field 'FCursor' not a class or interface type
[DCC Error] DB.pas(12934): E2217 Published field 'FTitle' not a class or interface type
[DCC Fatal Error] testing.dpr(23): F2063 Could not compile used unit '..\..\..\vclpatch\DB.pas'

Ответы [ 2 ]

6 голосов
/ 08 декабря 2008

Поможет ли добавить следующую строку вверху блока DB.pas.

{$ A8, B, C +, D +, Е-, F-, G +, Н +, I +, J-, K-, L +, M, N, O +, Р +, Q-, R-, S-, Т-, U-, V +, W-, Х +, Y +, Z1}

Если он работает после использования этой строки, параметры вашего проекта несовместимы с настройками, которые CodeGear использовал для компиляции RTL / VCL.

Кстати: строка 2536 - это строка, содержащая только текст «тип». Вы изменили файл? Или вам не хватает обновления 1?

1 голос
/ 28 января 2009

Я столкнулся с той же проблемой с DB.pas, но никогда не модифицировал никакие модули VCL. Так что причиной явно должен был быть мой проект. Переключение Извлечение информации о типе среды выполнения на false помогло и решило проблему.

(Параметры проекта: Delphi Compiler -> Компиляция -> Генерация кода -> Информация о типе среды выполнения)

...