#delphi
#delphi
Вопрос:
Нашему приложению требуется довольно много инструментов и утилит, которые мы написали для поддержки нашего продукта. Такие вещи, как преобразователи данных, утилиты резервного копирования и т.д. В настоящее время каждая из этих утилит является отдельным проектом Delphi. Кроме того, многие из этих проектов также имеют соответствующий проект DUnit для модульного тестирования, который также должен быть отдельным проектом. В настоящее время у нас есть 13 отдельных проектов на Delphi. Все эти проекты находятся в одной группе проектов.
Это необходимо? Обязательно ли нам иметь так много отдельных проектов, или в Delphi есть способ иметь несколько точек входа в один и тот же проект?
Кроме того, иногда было бы удобно во время разработки просто написать некоторый код и «запустить» его. Чтобы сделать это сейчас, я заканчиваю тем, что взламываю файл проекта; комментирую нормальное поведение и заменяю его кодом, который я хочу запустить. Это единственный способ?
Мы используем Delphi 2010, если это имеет значение.
Ответ №1:
Вы можете сделать любое из этих действий довольно легко:
-
Объединяйте свои проекты в проектную группу, чтобы было легче работать с ними вместе.
-
(Мое предпочтение) Разделите свои проекты на разные модули (вместо файлов проекта), создайте единое приложение, которое использует все эти модули, и вызывайте различные функциональные возможности на основе параметров командной строки (см.
ParamCount
иParamStr
в документации) Затем вы можете легко писать модульные тесты, тестируя каждый из модулей (каламбур не предназначен) отдельно.
Что касается вашей правки: Delphi — это скомпилированный, а не интерпретируемый язык. Вы не можете просто «запустить» код без его компиляции, если только вы не можете использовать функциональность, которая есть в вашем приложении, используя Evaluate/Modify
пункт меню во время отладки. (Установите точку останова и запустите свое приложение. Когда он достигнет точки останова, используйте Ctrl F7
для открытия Evaluate/Modify
диалогового окна. Обратите внимание, что это имеет ограниченную функциональность из-за природы оптимизатора и компилятора.
Комментарии:
1. В настоящее время мы используем группу проектов. Не уверен, сколько это нам дает. Это упрощает переключение между проектами в IDE и поиск по разным проектам… что-нибудь еще?
2. @awmross: Да, у меня есть кое-что еще. Прочитайте второй маркированный пункт?
3. Я имел в виду «предоставляют ли мне группы проектов что-нибудь еще?». т.е. чтобы упростить работу с несколькими проектами. повторное использование модулей вместо файлов проекта: интересная идея, но непрактичное предложение для этого проекта (потребовались бы месяцы доработки для реализации).
4. @awmross: Вы также можете выполнить сборку всего в группе проектов, чтобы собрать все exe-файлы одновременно.
Ответ №2:
Организуйте свой проект в одну или несколько групп проектов, и вы могли бы использовать параметры project (exe) для выполнения только некоторой части вашего exe-файла.
Ответ №3:
Как уже упоминалось, вы можете конвертировать мини-проекты в модули. Затем используйте условия компиляции ($ifdef и т.д.), Чтобы выбрать, какой модуль включается в скомпилированную программу. Было бы также удобно иметь возможность автоматически переключать имя сгенерированного исполняемого файла. Я думаю, было бы возможно создать относительно простой OTA (Open Tools API) плагин, который мог бы управлять всеми этими функциями.
Для запуска небольших частей кода вы можете создать отдельный облегченный консольный проект, куда вы можете вставить код в основную функцию.