Предупреждения компилятора Delphi, указывающие на собственные единицы Delphi

Если производительность является проблемой, вот схема, которая проходит только 94 шага, а не 473 другого ответа, избегая обхода и чередования:

\d{4}[ -]?\d{2}\K\d{2}[ -]?\d{4}

Демонстрация: [ 112] https://regex101.com/r/0XMluq/4

Редактировать: В варианте регулярного выражения C # вместо этого можно использовать следующий шаблон, поскольку C # допускает просмотр с переменной длиной.

(?<=\d{4}[ -]?\d{2})\d{2}[ -]?\d{4}

Демо

8
задан Jamo 15 May 2009 в 10:03
поделиться

4 ответа

Я считаю, что это потому, что у вас есть исходный код Delphi в вашем пути сборки. Если вы удалите каталоги исходных текстов Delphi, он должен быть собран без этих предупреждений.

12
ответ дан 3 November 2019 в 14:03
поделиться

Причина, по которой они появляются только при выполнении сборки, заключается в том, что команда компиляции компилирует только исходный код, который изменился с момента предыдущей компиляции. В то время как команда Build перекомпилирует все в проекте независимо от изменений.

Скорее всего, предупреждения вызваны тем, что исходная папка Delphi включена в путь поиска проекта. Удаление его и удаление dcus в папке вашего проекта сообщит вам, требуется ли что-либо в проекте исходный код Delphi при перекомпиляции. По моему опыту, вам понадобится исходный код Delphi, если вы обнаружили ошибку в реализации Delphi и создали собственную копию класса Delphi для исправления ошибки. Если это так, когда вы пытаетесь собрать исходный код Delphi, вы обычно получите:

Модуль '% s' скомпилирован с модулем '% s' в "% s", но другая версия "% s" found (F2446)

Где% s будет неким классом Delphi низкого уровня.

Если вы не получите никаких ошибок, то исходный код Delphi действительно не нужен.

Это также может произойти, если исходный код Delphi находится в пути поиска среды .

6
ответ дан 3 November 2019 в 14:03
поделиться

Я потратил целую вечность на решение этих проблем (ну, в любом случае, ваши первые две) и по своему незнанию фактически удалил Delphi и переустановил его безрезультатно. Я наконец обнаружил, что это вызвано отсутствием настроек проекта. По крайней мере, сначала, если вы переносите проекты из более ранней версии Delphi, существующие настройки вашего проекта преобразуются, но без видимой причины Delphi может начать забывать об этом и предоставить вам «пустой» набор настроек проекта. Вы можете увидеть это, открыв Project-Options, где вы найдете Base, Release и Debug. Проверьте активный (он выделен жирным шрифтом в диспетчере проектов), и вы должны увидеть, что он не имеет путей к каталогам, а также всех подсказок и предупреждений по умолчанию. Большинство этих значений по умолчанию приемлемы, но «Символ платформы» и «Единица платформы» С Уважением, Брайан

2
ответ дан 3 November 2019 в 14:03
поделиться

Если вы хотите продолжить явную компиляцию исходного кода VCL в свой проект, вы можете сделать копию модулей, которые вызывают подсказки / предупреждения компилятора и "исправить" подсказки / предупреждения в этой копии. Поместите обновленные / «исправленные» копии этих модулей VCL в другую папку и убедитесь, что вы добавили путь к этой папке в Путь поиска вашего проекта ДО пути к источнику Delphi VCL.

Например, мой путь поиска проекта выглядит примерно так. это: «C: \ Dev \ Source \ MyFixedVCLUnits; C: \ Program Files \ CodeGear \ RAD Studio \ 6.0 \ source»

Чтобы дать пример простых исправлений, необходимых для удаления этих предупреждений, вот одна из функций в Dialogs.pas, который сейчас живет в моем Папка "C: \ Dev \ Source \ MyFixedVCLUnits":

{$ WARNINGS OFF}
функция TFileOpenDialogWrapper.CreateFileDialog: TCustomFileDialog;
начать
Результат: = TFileOpenDialog.Create (nil);
Result.OnExecute: = OnExecuteEvent;
конец;
{$ ПРЕДУПРЕЖДЕНИЯ НА}

В этом случае просто добавьте {$ WARNINGS OFF} и т. Д., Если требуется.

2
ответ дан 3 November 2019 в 14:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: