Две разные версии одного и того же приложения
У меня есть программное обеспечение, сделанное с Delphi 2010, и его необходимо использовать из двух разных отделов, оба они используют одни и те же данные и один и тот же пользовательский интерфейс, за исключением некоторых изменений, таких как кнопки скрытия / добавления, формы и столбцы сетки. Поэтому необходимо иметь две версии одного и того же приложения.
Невозможно предложить пользователю при запуске приложения выбрать отдел, я должен использовать отдельные EXE-файлы.
Каков наилучший подход (концепция) для этого в Delphi 2010 или XE3 (будет обновлен позже)? Можно ли скомпилировать с разными именами exe?
4 ответа
Походит на кошмар обслуживания, поэтому, пожалуйста, рассмотрите другие решения, такие как предложенные в комментариях, такие как логин или файл настроек.
Если вы хотите сделать отдельные exe-файлы, то вы можете использовать определения компилятора и на основе определенных в / исключающих частей кода:
Добавить новую конфигурацию:
Добавьте определение в конфигурацию:
Используйте определение в вашем коде:
{$IFNDEF ADVANCED}
// Remove Event Handler
Button1.OnClick := nil;
// Hide Button
Button1.Visible := False;
{$ENDIF}
Я могу придумать несколько решений этого:
Предоставьте INI-файл вместе с приложением для выпуска (или создайте ключ реестра на клиентском компьютере), чтобы указать / определить, какой отдел обслуживает ваше приложение. затем прочитайте значения через
TIniFile
или жеTRegistry
, например, файл INI (MyApp.ini
):[Опции]
Отдел продаж =Создайте ярлык для вашей программы и используйте параметры, например
"MyApp.exe /sales"
или же"MyApp.exe /support"
(ParamStr(1)
скажет вам, если это/sales
против/support
отдел)Используйте 2 отдельных файла проекта, и в каждом из вариантов проекта определите свой
Conditionals
директива напримерSALES
или жеSUPPORT
тогда в вашем коде используйте{$IFDEF SALES}...{$ENDIF}
- Используя эти опции, очень важно полностью перестроить все единицы проекта. (У меня есть сценарий предварительной сборки, который удаляет файлы проекта *.dcu, прежде чем я его скомпилирую).
Одна из возможных вещей - сделать первый проект. Подайте заявку.
Затем создайте второй проект в той же папке и добавьте в него все модули из первого проекта.
Теперь в вашем втором проекте, если вам нужны только небольшие изменения, вы можете, например, получить новый класс из вашей основной формы в вашем первом проекте и поместить изменения в него.
Таким образом, у вас есть 2 exe, но с общей кодовой базой.
Вам необходимо иметь систему разрешений в вашем приложении, которая может быть настроена для различных групп и профилей, и вы можете назначать роли или определенные разрешения для всех конечных пользователей, которые будут использовать приложение, вы можете разработать его самостоятельно или вы можете положиться на третья сторона, такая как TMS Security System