uniGUI0.94 以EXE形式发布程序的布署方法
uniGUI0.94以后发布要分别带上extjs和uni的两个js文件夹,这两个文件夹的具体位置要在UniServerModule模块中指定以下两个属性:
UniServerModule.UniRoot 代表uni的js及资源文件夹目录,即uni-0.94.0.1024目录中的文件,如果属性值为: [uni]\ ,则程序运行时会到uniGui的安装目录下去寻找
UniServerModule.ExtRoot 代表extjs的js及资源文件夹目录,即ext-4.2.1.883目录中的文件,如果属性值为:[ext]\ ,则程序运行时会到uniGUI的安装目录下去寻找
一般情况下我们在开发调试程序时这两个属性分别按默认值设置为[uni]\和[ext]\,采用这两个默认值,在软件布署时就要带上uniGUI的js安装包fmsoft_unigui_extjs_0.94.0.1024_setup.exe,为了布署时更简洁,不想再带一个uni的js安装程序,可以按照如下方法:
以版本uniGUI0.94.0.1024 为例:
1、在主程序所在目录新建两个目录:
uni_94 ,把uni-0.94.0.1024目录下的所有文件复制到这个目录中
ext_42 ,把ext-4.2.1.883目录下的所有文件复制到这个目录中
2、在Delphi中打开要发布的工程文件,打开UniServerModule模块:
设置 UniServerModule.UniRoot属性为[uni]\,
设置UniServerModule.ExtRoot 属性为:[ext]\,
在UniServerModule模块的BeforeInit事件中写入以下代码:
procedure TUniServerModule.UniGUIServerModuleBeforeInit(Sender: TObject);
begin
if DirectoryExists(TPath.GetDirectoryName(ParamStr(0))+'\ext_42') then
begin
Self.UniRoot :='uni_94';
Self.ExtRoot :='ext_42'
end;
end;
这样,在程序编译调试时,就无需要每个uniGUI工程的exe文件下添加uni_94和ext_42这两个目录文件,程序会到unigui的安装目录中去寻找。而程序布署后,由于布署后主程序目录下有ext_42目录,就可以将uniRoot和ExtRoot两个属性动态设置为我们布署时设置的文件夹名。