正在装载数据……
1.必须配套安装XP Theme Manager、ExdivssLibrary、ExdivssExport Library、ExdivssDataController、ExdivssEditors Library 5和ExdivssPageControl 2,已经安装过的则跳过;
2.在Delphi 7中,选择菜单File | Close All(最好这样);
3.选择菜单Tools | Environment Options...,在Environment Variables页中,点击"New..."按钮,在Variable Name右边输入框中输入cxQGrid(或任意其他名字,但后面的设置要与此一致),在Variable Value右边输入框中输入DevExdivss.ExdivssQuantumGrid.Suite.v5.9的绝对路径(也就是你把DevExdivss.ExdivssQuantumGrid.Suite.v5.9包解压到什么目录,例如:D:/VCLPackages/DevExdivss_ExdivssQuantumGrid_Suite_v5.9/),按"OK";
4.点击"Library"切换到Library页,在Library path后面加上:
$(cxQGrid)/XP Theme Manager/Sources;
$(cxQGrid)/ExdivssLibrary/Sources;
$(cxQGrid)/ExdivssExport Library/Sources;
$(cxQGrid)/ExdivssDataController/Sources;
$(cxQGrid)/ExdivssEditors Library 5/Sources;
$(cxQGrid)/ExdivssPageControl 2/Sources;
$(cxQGrid)/ExdivssQuantumGrid 5/Sources;
5.依次编译和安装下面各包:
---安装XP Theme Manager---
/XP Theme Manager/Packages/dxThemeD7.dpk 仅编译
---安装ExdivssLibrary---
/ExdivssLibrary/Packages/cxLibraryVCLD7.dpk 仅编译
/ExdivssLibrary/Packages/dclcxLibraryVCLD7.dpk 编译和安装
---安装ExdivssExport Library---
/ExdivssExport Library/Packages/cxExportVCLD7.dpk 仅编译
---安装ExdivssDataController---
/ExdivssDataController/Packages/cxDataD7.dpk 仅编译
/ExdivssDataController/Packages/cxADOAdaptersD7.dpk 仅编译
/ExdivssDataController/Packages/cxBDEAdaptersD7.dpk 仅编译
/ExdivssDataController/Packages/cxIBXAdaptersD7.dpk 仅编译
---安装ExdivssEditors Library 5---
/ExdivssEditors Library 5/Packages/cxEditorsVCLD7.dpk 仅编译
/ExdivssEditors Library 5/Packages/cxExtEditorsVCLD7.dpk 仅编译
/ExdivssEditors Library 5/Packages/dclcxEditorsVCLD7.dpk 编译和安装
/ExdivssEditors Library 5/Packages/dclcxExtEditorsVCLD7.dpk 编译和安装
---安装ExdivssPageControl 2---
/ExdivssPageControl 2/Packages/cxPageControlVCLD7.dpk 仅编译
/ExdivssPageControl 2/Packages/dclcxPageControlVCLD7.dpk 编译和安装
---安装ExdivssQuantumGrid 5---
/ExdivssQuantumGrid 5/Packages/cxGridVCLD7.dpk 仅编译
/ExdivssQuantumGrid 5/Packages/dclcxGridVCLD7.dpk 编译和安装
6.恭喜你,你安装成功了!
编译所有结尾带7、不以dcl开头的包,然后把生成的bpl文件(在$/project/bpl下)拷贝至system32文件夹(要注意先编译dxThemeD7.dpk文件);然后编译所有以dcl开头的包文件,按install安装。
安装方法:
1、将搜索路径加入环境设置;
2、先编译XP Theme Manager/Packages目录中的dx*.dpk;
3、编译ExpressLibrary/Packages目录中的cx*.dpk;编译并安装dcl*.dpk;
4、编译ExpressDataController/Packages目录中的cx*.dpk;
5、编译ExpressExport Library/Packages目录中的cx*.dpk;
6、编译ExpressPageControl 2/Packages目录中的cx*.dpk;编译并安装dcl*.dpk;
7、编译ExpressEditors Library 5/Packages目录中的cx*.dpk;编译并安装dcl*.dpk;
8、最后编译ExpressQuantumGrid 5/Packages目录中的cx*.dpk;编译并安装dcl*.dpk。
每次安装devExdivss组件都特别麻烦,要逐个compile package,还要install...添加library path.安装过程中次序还不能搞错,头真的很大,我试过最快的手动安装也要20分钟.
接下来可以说怎么编写自动安装程序了
首先说一下思路
-------------------------------------------------------------------
如果手动安装,过程如下
-------------------------------------------------------------------
1.将压缩包解压到一个目录中
2.Delphi->Tools->Environment Option->Libary->Libary Path中加入所有/source的路径
3.依次编译package
XP Theme Manager
ExdivssLibrary,
ExdivssCommon Library,
ExdivssDataController,
ExdivssEditors Library 5,
... ...
ExdivssExport Library
ExdivssPageControl 2
ExdivssQuantumGrid 5
... ...
ExdivssGDI+ Library
ExdivssNavBar
... ...
4.cx打头的package只要compile,dclcx打头的package要compile并install.
-------------------------------------------------------------------
自动安装原理
-------------------------------------------------------------------
使用命令行编译需要安装的package
dcc32 [option] [packagename]
-b 编译所有
-le bpl输出路径
-ln dcp输出路径
-u 源文件目录
-r 资源文件目录
文件名注意大小写
bpl加入注册表
[HKEY_CURRENT_USER/Software/Borland/BDS/4.0/Known Packages]
源文件目录加入注册表
[HKEY_CURRENT_USER/Software/Borland/BDS/4.0/Library]
编写reg文件
regedit.exe /s ***.reg
有了以上的知识点,就可以开始动手写代码了
建立一个ini文件,记录path and package 信息
[App]
InstallDir=
Chk0=QuantumGrid
Chk1=Bars
Chk2=NavBar
Chk3=FlowChart
Chk4=Scheduler
Chk5=LayoutControl
Chk6=MasterView
Chk7=OrgChart
Chk8=PrintingSystem
Chk9=QuantumTreeList
Chk10=SdivadSheet
Chk11=VerticalGrid
[Folder_XPThemeManager]
Order=1
FolderName=XP Theme Manager
PkgCompile0=dxThemeD10.dpk
[Folder_Library]
Order=2
FolderName=ExdivssLibrary
PkgCompile0=cxLibraryD10.dpk
PkgCompile1=dclcxLibraryD10.dpk
PkgInstall0=dclcxLibraryD10.bpl
[Folder_CommonLibrary]
Order=3
FolderName=ExdivssCommon Library
PkgCompile0=dxComnD10.dpk
[Folder_DataController]
Order=4
FolderName=ExdivssDataController
PkgCompile0=cxDataD10.dpk
[Folder_EditorsLibrary]
Order=5
FolderName=ExdivssEditors Library 5
PkgCompile0=cxEditorsD10.dpk
PkgCompile1=cxExtEditorsD10.dpk
PkgCompile2=dclcxEditorsD10.dpk
PkgCompile3=dclcxExtEditorsD10.dpk
PkgInstall0=dclcxEditorsD10.bpl
PkgInstall1=dclcxExtEditorsD10.bpl
[Folder_ExportLibrary]
Order=6
FolderName=ExdivssExport Library
PkgCompile0=cxExportD10.dpk
[Folder_GDILibrary]
Order=7
FolderName=ExdivssGDI+ Library
PkgCompile0=dxGDIPlusD10.dpk
[Folder_PageControl]
Order=8
FolderName=ExdivssPageControl 2
PkgCompile0=cxPageControlD10.dpk
PkgCompile1=dclcxPageControlD10.dpk
PkgInstall0=dclcxPageControlD10.bpl
[Folder_QuantumGrid]
Order=9
FolderName=ExdivssQuantumGrid 5
PkgCompile0=cxGridD10.dpk
PkgCompile1=dclcxGridD10.dpk
PkgInstall0=dclcxGridD10.bpl
[Folder_Bars]
Order=10
FolderName=ExdivssBars 5
PkgCompile0=dxBarD10.dpk
PkgCompile1=dcldxBarD10.dpk
PkgInstall0=dcldxBarD10.bpl
[Folder_NavBar]
Order=11
FolderName=ExdivssNavBar
PkgCompile0=dxNavBarD10.dpk
PkgCompile1=dcldxNavBarD10.dpk
PkgInstall0=dcldxNavBarD10.bpl
[Folder_FlowChart]
Order=12
FolderName=ExdivssFlowChart
PkgCompile0=dxFlowChartD10.dpk
PkgCompile1=dcldxFlowChartD10.dpk
PkgInstall0=dcldxFlowChartD10.bpl
[Folder_Scheduler]
Order=13
FolderName=ExdivssScheduler 2
PkgCompile0=cxSchedulerD10.dpk
PkgCompile1=dclcxSchedulerD10.dpk
PkgInstall0=dclcxSchedulerD10.bpl
[Folder_LayoutControl]
Order=14
FolderName=ExdivssLayout Control
PkgCompile0=dxLayoutControlD10.dpk
PkgCompile1=dcldxLayoutControlD10.dpk
PkgInstall0=dcldxLayoutControlD10.bpl
[Folder_MasterView]
Order=15
FolderName=ExdivssMasterView
PkgCompile0=dxMasterViewD10.dpk
PkgCompile1=dcldxMasterViewD10.dpk
PkgInstall0=dcldxMasterViewD10.bpl
[Folder_OrgChart]
Order=16
FolderName=ExdivssOrgChart
PkgCompile0=dxOrgCD10.dpk
PkgCompile1=dcldxOrgCD10.dpk
PkgInstall0=dcldxOrgCD10.bpl
[Folder_PrintingSystem]
Order=17
FolderName=ExdivssPrinting System
PkgCompile0=dxPSCoreD10.dpk
PkgCompile1=dcldxPSCoreD10.dpk
PkgInstall0=dcldxPSCoreD10.bpl
[Folder_QuantumTreeList]
Order=18
FolderName=ExdivssQuantumTreeList 4
PkgCompile0=cxTreeListD10.dpk
PkgCompile1=dclcxTreeListD10.dpk
PkgInstall0=dclcxTreeListD10.bpl
[Folder_SdivadSheet]
Order=19
FolderName=ExdivssSdivadSheet
PkgCompile0=cxSdivadSheetD10.dpk
PkgCompile1=dclcxSdivadSheetD10.dpk
PkgInstall0=dclcxSdivadSheetD10.bpl
[Folder_VerticalGrid]
Order=20
FolderName=ExdivssVerticalGrid
PkgCompile0=cxVerticalGridD10.dpk
PkgCompile1=dclcxVerticalGridD10.dpk
PkgInstall0=dclcxVerticalGridD10.bpl
[QuantumGrid]
Folder0=Folder_XPThemeManager
Folder1=Folder_Library
Folder2=Folder_DataController
Folder3=Folder_EditorsLibrary
Folder4=Folder_ExportLibrary
Folder5=Folder_PageControl
Folder6=Folder_QuantumGrid
[Bars]
Folder0=Folder_XPThemeManager
Folder1=Folder_Library
Folder2=Folder_CommonLibrary
Folder3=Folder_Bars
[NavBar]
Folder0=Folder_XPThemeManager
Folder1=Folder_Library
Folder2=Folder_GDILibrary
Folder3=Folder_NavBar
[FlowChart]
Folder0=Folder_FlowChart
[Scheduler]
Folder0=Folder_XPThemeManager
Folder1=Folder_Library
Folder2=Folder_DataController
Folder3=Folder_EditorsLibrary
Folder4=Folder_ExportLibrary
Folder5=Folder_Scheduler
[LayoutControl]
Folder0=Folder_XPThemeManager
Folder1=Folder_Library
Folder2=Folder_CommonLibrary
Folder3=Folder_DataController
Folder4=Folder_EditorsLibrary
Folder5=Folder_LayoutControl
[MasterView]
Folder0=Folder_XPThemeManager
Folder1=Folder_CommonLibrary
Folder2=Folder_MasterView
[OrgChart]
Folder0=Folder_OrgChart
[PrintingSystem]
Folder0=Folder_XPThemeManager
Folder1=Folder_Library
Folder2=Folder_CommonLibrary
Folder3=Folder_PrintingSystem
[QuantumTreeList]
Folder0=Folder_XPThemeManager
Folder1=Folder_Library
Folder2=Folder_DataController
Folder3=Folder_EditorsLibrary
Folder4=Folder_ExportLibrary
Folder5=Folder_QuantumTreeList
[SdivadSheet]
Folder0=Folder_XPThemeManager
Folder1=Folder_Library
Folder2=Folder_SdivadSheet
[VerticalGrid]
Folder0=Folder_XPThemeManager
Folder1=Folder_Library
Folder2=Folder_DataController
Folder3=Folder_EditorsLibrary
Folder4=Folder_ExportLibrary
Folder5=Folder_VerticalGrid
开始编写代码
建立一个窗口,根据ini的信息,动态创建checkbox,用来选择要安装的组件
当安装开始的时候,用程序写两个文件,*.bat,*.reg
bat文件里面的内容例如
--------------------------------------------
dcc32 -b ...... dxThemeD10.dpk
dcc32 -b ...... cxLibraryD10.dpk
....
regedit /s DevExdivss.reg
----------------------------------------
reg文件里面的内容例如
----------------------------------------
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER/Software/Borland/BDS/4.0/Known Packages]
...
[HKEY_CURRENT_USER/Software/Borland/BDS/4.0/Library]
"Search Path"=...
----------------------------------------
补充:
获得my document 路径,因为默认的bpl路径为my document/Borland Studio Projects/Bpl
Reg.RootKey:=HKEY_CURRENT_USER;
Reg.OpenKey('Software/Microsoft/Windows/CurrentVersion/Explorer/Shell Folders',False);
PersonalDir:=Reg.ReadString('Personal');
Reg.CloseKey;
根据选择的要安装的组件,生成bat和reg的文件后,
WinExec('cmd /c Compile.bat > Setup.log',SW_SHOW);
编译信息将写在 setup.log里面
注意:在程序运行前需将delphi 关闭