Использование условных символов для проверки existence единицы в DelphiDelphi , Компоненты и Классы , МодулиЗаголовок: Условное использование единиц в Delphi В процессе разработки программного обеспечения на языке Object Pascal в среде Delphi нередко возникает потребность использовать определенные единицы (units) только в том случае, если они доступны. Например, вы можете захотеть использовать единицы из демонстрационной версии компонентного пакета, не навязывая установку этого пакета всем пользователям вашего программного обеспечения. В этом случае вам может понадобиться проверить existence единицы перед ее использованием. К сожалению, в Delphi нет встроенного механизма для такой проверки в compile time. Вопрос: "Есть ли что-то вроде {$IF Declared(MyUnit)} для единиц, или другой способ?" Ответ: К сожалению, нет. Вы не можете проверить existence единицы в compile time без явного упоминания этой единицы в clause uses. Тем не менее, есть альтернативные способы решения этой проблемы. Один из возможных подходов - использование условных символов (conditional symbols). Вы можете определить условный символ в своем проекте и использовать его для проверки existence единицы. Если условный символ определен, то единица будет использоваться, иначе - нет. Например:
В этом примере, если определен условный символ USE_MYUNIT, то единица MyUnit будет включена в проект. В противном случае, можно добавить пустую единицу или выполнить другие действия. Еще один вариант - использование mock-единиц. Вы можете создать пустые единицы с теми же именами, что и единицы, которые вы хотите использовать условно. Затем, добавить эти mock-единицы в конец search path вашего проекта. Если демонстрационная версия компонентного пакета установлена, то путь к его единицам должен быть указан перед путем к mock-единицам. В этом случае, либо mock-единица, либо настоящая единица будет найдена, и вы можете использовать {$IF declared(someidentifier)} для проверки existence единицы. Несмотря на то, что оба этих подхода имеют свои недостатки, они позволяют вам использовать единицы условно в Delphi, не навязывая установку демонстрационной версии компонентного пакета всем пользователям вашего программного обеспечения. Вопрос о возможности проверить existence единицы в compile time без явного упоминания в clause uses в Delphi, с предложением альтернативных подходов, таких как использование условных символов или mock-единиц. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |