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.)
:) Кай Инге