Delphi -> отключить устаревшие предупреждения от внешних модулей

У меня есть тестовый проект XE2 (DUnit). Все работает и компилируется нормально. Однако у нас есть одно предупреждение, которое я не смог устранить:

[DCC Warning] GUITestRunner.pas(1237): W1000 Symbol 'TimeSeparator' is deprecated: 'Use FormatSettings.TimeSeparator'

Проблема, однако, в том, что этот код взят из GUITestRunner, который связан с XE2: **

\ Embarcadero \ RAD Studio \ 9.0 \ source \ DUnit \ src ** GUITestRunner **

**.

Я пытался использовать {$WARN SYMBOL_DEPRECATED OFF} в нашем.dpr файле. Однако это работает только с текущей сборкой.

Знаете ли вы какой-либо способ избавиться от этого предупреждения, кроме как вмешаться в код, который поставляется в комплекте с XE2?

Большое спасибо!

3 ответа

Решение

Вы должны быть в состоянии устранить предупреждение, просто связав предварительно скомпилированный DCU вместо перекомпиляции файла PAS.

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

Советы по внесению изменений в DUnit:

  • Не изменяйте файлы в папке установки.
  • Скорее сделайте копию в новое местоположение, и направьте свои проекты в новое местоположение.
  • Вы будете хотеть новое местоположение под контролем источника (как с любым другим источником).
  • Это позволяет вам вести учет любых изменений, которые вы делаете; поэтому, если вы получаете обновление DUnit, вы можете легко применить свои пользовательские изменения.
  • Конечно, вы можете свести к минимуму изменения, сделанные непосредственно в файлах DUnit, чтобы уменьшить усилия по обновлению библиотеки. Т.е. для каждого рассматриваемого изменения в DUnit, выясните, может ли быть подходящий альтернативный способ произвести изменение без прямых изменений.

РЕДАКТИРОВАТЬ

Что касается вашего беспокойства о других разработчиках и сборочных машинах: еще одна причина, чтобы получить изменения под вашим общим контролем версий.

Это правда, что директивы применяются только к единице, в которой они находятся, за исключением нескольких, которые влияют на связывание.

Я не знаю, что такое XE2, но в XE3 вы можете настроить "параметры проекта" -> "delphi compiler" -> "подсказки и предупреждения" и включать и отключать различные предупреждения на глобальном уровне проекта.

Я получил эту ошибку с DateTimePicker. "Символ W1000 устарел". Решением было использовать обновленный DateTimeEdit вместо этого. (Использование компонентов Raize.)

:) Кай Инге

Другие вопросы по тегам