Использование условных выражений в основном модуле проекта - IDE уничтожает код

StackOverflow https://stackoverflow.com/questions/9333794

Вопрос

Я создаю приложение-службу Windows, которое имеет конфигурацию для его компиляции как базового приложения Windows.Главный файл проекта для exe включает условия, которые определяют, компилируется ли проект как приложение службы или как приложение форм Windows.

Проблема в том, что когда я делаю что-то, что приводит к изменению кода проекта, код разрушается и ломается.Например, строка, в которой говорится, что Application.Initialize;, становится AppliApplication.Initialize;, а строка с {$R *.RES} сокращается до S}, а большинство моих условных операторов удаляются.

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

Вот файл ниже в том виде, в каком я бы хотел его оставить ...

родовое слово
Это было полезно?

Решение

Как говорит Дэвид, вы застряли в среде IDE, полагая, что dpr - это ее собственный частный двор.Самое простое решение - просто разместить все в отдельном модуле и удалить условные выражения из предложения dpr uses.FastMM в любом случае пригодится в вашей версии службы, а также в тестовом приложении, и различие между vcl.forms и vcl.svcMgr можно провести в этом отдельном модуле.

dpr будет уменьшено до:

родовое слово

И ваш основной модуль приложения примет остальной код из dpr:

родовое слово

Другие советы

Простой ответ - просто создать другой проект и использовать его как отдельную версию.Это то, что я делаю со своими службами, и это означает, что вы можете использовать другие условные выражения для каждого режима.

Да, IDE делает это и всегда делала.Нет известного способа остановить его поведение.Тебе просто придется это высосать.

У меня есть похожие условные выражения, и я использую свою систему контроля версий, чтобы помочь мне во время фиксации отменить изменения, внесенные IDE.Поэтому всякий раз, когда я регистрирую файл .dpr, я просматриваю различия и возвращаю фиктивные.

Я также стараюсь добавлять и удалять модули из проекта, редактируя файл .dpr, вместо того, чтобы позволить IDE делать это.Это снижает частоту использования поддельных модов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top