同一应用程序的两个不同版本

时间:2013-03-28 12:54:06

标签: delphi delphi-2010 delphi-xe3 delphi-ide

我有一个用Delphi 2010制作的软件,它需要在两个不同的部门使用,它们共享相同的数据和相同的UI,除了一些更改,如隐藏/添加按钮,表单和网格列。因此,需要具有相同应用程序的两个版本。

无法在应用程序启动时提示用户选择我必须使用单独的EXE的部门。

在Delphi 2010或XE3(将在稍后升级)中执行此操作的最佳方法(概念)是什么?是否可以使用不同的exe名称进行编译?

4 个答案:

答案 0 :(得分:9)

听起来像维护噩梦,所以请考虑其他解决方案,例如评论中建议的解决方案,例如登录或设置文件。

如果你想制作单独的exe,那么你可以使用compiler defines并基于代码中的define in / exclude部分:

添加新配置:

enter image description here

将配置添加到配置中: enter image description here

使用代码中的define:

{$IFNDEF ADVANCED}
   // Remove Event Handler
   Button1.OnClick := nil;
   // Hide Button
   Button1.Visible := False;
{$ENDIF}

答案 1 :(得分:9)

我可以想到几个解决方案:

  • 为您的发布应用程序提供INI文件(或在客户端计算机上创建注册表项)以指定/确定您的应用程序所服务的部门。然后通过TIniFileTRegistry读取值。例如INI文件(MyApp.ini):

    [选项]
    部=销售

  • 创建程序的快捷方式并使用参数,例如"MyApp.exe /sales""MyApp.exe /support"ParamStr(1)会告诉您/sales/support部门的对比情况

  • 使用2个单独的项目文件,并在每个项目选项中定义Conditionals指令,例如SALESSUPPORT,然后在您的代码中使用{$IFDEF SALES}...{$ENDIF} - 使用此选项,完全重建所有项目单位非常重要。 (我有一个预构建脚本,在编译之前会删除项目* .dcu文件。)

答案 2 :(得分:0)

您需要在您的应用程序中拥有权限系统,该系统可以针对不同的组和配置文件进行自定义,您可以为将使用该应用程序的所有最终用户分配角色或特定权限,您可以自己开发它,或者您自己可以依赖第三方,例如TMS Security System

enter image description here

答案 3 :(得分:0)

一件可能的事情是做第一个项目。 提出申请。

然后在同一文件夹中创建第二个项目,并将第一个项目中的所有单元添加到该项目中。

现在,在您的第二个项目中,如果您只需要进行少量更改,则可以在第一个项目中从mainform派生一个新类,并对其进行更改。

这样你有2个exes,但有一个共享的代码库。