600分》》》 我是一个初级阶段DELPHI爱好者! 最近写了一些小程序,若于不知该如何打包、发布。愿天下高手指点一二。 详细解答者+送100分小礼,在线等待…… 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 打包需要专门的软件。推荐使用Inno Setup3.07,支持向导式生成安装文件。 用INSTAL SHEILD!!!!用INSTAL SHEILD!!!!用INSTAL SHEILD!!!!用INSTAL SHEILD!!!!用INSTAL SHEILD!!!!用INSTAL SHEILD!!!!用INSTAL SHEILD!!!!用INSTAL SHEILD!!!!用INSTAL SHEILD!!!!用INSTAL SHEILD!!!!用INSTAL SHEILD!!!!用INSTAL SHEILD!!!!用INSTAL SHEILD!!!!用INSTAL SHEILD!!!!用INSTAL SHEILD!!!!用INSTAL SHEILD!!!!用INSTAL SHEILD!!!!用INSTAL SHEILD!!!!用INSTAL SHEILD!!!!用INSTAL SHEILD!!!! 用Delphi编写安装程序(作者:俞文群) 当你完成一个应用软件的开发后,那么你还需要为该软件做一个规范化的安装程序,这是程序设计的最后一步,同时也是很重要的一步,因为运行安装程序往往是用户做的第一步操作。 很多报刊文章介绍了许多如何利用installshield等工具软件来制作安装程序的方法,这种办法可以很快建立起较常见的安装模式,但用这种办法也有一些不足,如做成的安装程序一般较大;风格较单一;不能灵活的控制启动方式和快捷方式。其实安装程序的的几个运行步骤较固定,我们完全可以自己来编写安装程序。下面就详细介绍如何用DELPHI编写具有自己软件特色的安装程序。 安装程序要达到的几个原则,如配置的一次性等,在有关杂志上已有许多文章介绍,就不再累述。这里主要介绍安装程序编写中几个主要过程: 1、将需要安装的程序制作成资源文件 Step 1:编写myres.rc资源脚本文件,可用记事本等编写。 MYDBSRC mydbsrcfile c:\resdemo\mynbdb.mdb MYDBJET mydbjetfile c:\resdemo\mdac_typ.exe MYDBAPP mydbappfile c:\resdemo\Tnbdemo.exe 7001 Icon c:\resdemo\setup.ico Step 2:利用BRCC32编译生成资源文件myres.res。 brcc32.exe myres.rc 2、编写安装程序代码 Step 1: 在setup.dpr文件中加入{$R mymyres.RES} 语句,这样在编译文件时包含资源文件。 Step 2: 编写安装程序背景界面。 //界面色彩渐变效果是通过用渐变的画刷刷绘依次相邻的矩形块实现的。 //也可以实现其它特殊效果的安装界面。 var i,j:Integer; Dct:TRect; begin form1.WindowState:=wsMaximized; j:=form1.width; //获得表单高度 for i:=0 to 255 do //此处设置RGB()中一个颜色值 begin Canvas.Brush.Color:=RGB(0,0,255-i); //每次画矩形的画刷颜色 (左,上,右,下) //Dct:=Rect(i*2,0,(i+1)*2,j); Dct:=Rect(0,i*2,j,(i+1)*3); //每次刷绘的矩形区域 Canvas.FillRect(Dct); Form1.Canvas.TextRect(Dct,30,40,'宁波大学课件管理系统 v1.0'); //填充颜色 end; end; Step 3:创建主程序工作目录 //设置目录环境及配置文件 if not DirectoryExists(EdtDir.Text) then // if MessageBox(getfocus,'该目录不存在,是否创建该目录?','询问',1) = idOK then try ForceDirectories(EdtDir.Text); except MessageBox(getFocus,'创建目录失败!','信息',0); Exit; end // else Exit; // ModalResult := mrOK; Step 4:生成主程序配置文件 变量: var setupinfo : TiniFile; //配置当前数据工作路径,选择与自己系统有关的驱动程序。 setupinfo:= Tinifile.Create( trim(FrmPathSelect.EdtDir.Text)+'\setup.ini'); setupinfo.WriteString('access','workdbpath',trim(FrmPathSelect.EdtDir.Text)+'\mynbdb.mdb'; setupinfo.WriteString('access','backdbpath',trim(FrmPathSelect.EdtDir.Text)+'\mynbdbbak.mdb'); setupinfo.Free; Step 5:从资源文件中还原有关文件。 变量: var res:tresourcestream; resname,resnewname:string; RegFile:TRegIniFile; begin //从资源文件中还原数据库文件 resnewname:=trim(FrmPathSelect.EdtDir.Text)+'\mynbdb.mdb'; resname:='MYDBSRC'; res:=tresourcestream.Create(hinstance,resname,pchar('mydbsrcfile')); res.savetofile(resnewname); res.free; //从资源文件中还原主程序文件 resnewname:=trim(FrmPathSelect.EdtDir.Text)+'\Tnbdemo.exe'; resname:='MYDBAPP'; res:=tresourcestream.Create(hinstance,resname,pchar('mydbappfile')); res.savetofile(resnewname); res.free; //在注册表中写入主程序路径名及执行文件名的信息,以便在 //升级主程序时用到。 RegFile := TRegIniFile.Create; RegFile.RootKey := HKEY_LOCAL_MACHINE; RegFile.WriteString('SOFTWARE\mynb','exepath',trim(resnewname)); RegFile.Free; end Step 6:安装数据库驱动(与SETP 4对应) //安装数据库驱动程序 var cmdlinepchar:array[0..120] of char; startupinfo:tstartupinfo; processinfo:tprocessinformation; begin screen.cursor:=crhourglass; strpcopy(cmdlinepchar,trim(FrmPathSelect.EdtDir.Text)+'\mdac_typ.exe /q'); fillchar(startupinfo,sizeof(startupinfo),#0); //置0 with startupinfo do begin cb:=sizeof(startupinfo); dwflags:=startf_useshowwindow or startf_usestdhandles; wshowwindow:=sw_hide; //隐藏被调用程序窗口 end; if createprocess(nil,cmdlinepchar,nil,nil,true,0,nil,nil,startupinfo,processinfo) then //创建进程 begin waitforsingleobject(processinfo.HProcess,infinite); //等待进程结束 end else begin exit; end; screen.cursor:=crDEFAULT; DeleteFile(PChar(trim(FrmPathSelect.EdtDir.Text)+'\mdac_typ.exe')); end; Step 7:创建程序组 变量: var smacro:string; szmacro:array[0..254] of char; sgroupdesc,sgroupname:string; sprogdesc:string; sprogicon:string; //创建主程序组 //打开对话通路 if ddeclientconv1.OpenLink then begin //建立组群 sgroupdesc:='宁波大学课件管理系统 '; sgroupname:='宁波大学课件管理系统 v1.0'; //组成宏指令 smacro:='[creategroup('+sgroupdesc+','+sgroupname+')]'; strpcopy(szmacro,smacro); //转成null-term 字串 ddeclientconv1.ExecuteMacro(szmacro,false); //执行宏指令 //建立ICON图像 sprogicon:=trim(FrmPathSelect.EdtDir.Text)+'\Tnbdemo.exe';; sprogdesc:='宁波大学课件管理系统'; smacro:='[additem('+sprogicon+','+sprogdesc+')]'; strpcopy(szmacro,smacro); ddeclientconv1.ExecuteMacro(szmacro,false); ddeclientconv1.CloseLink; end; Step 8:创建桌面快捷方式 //uses shlobj,comobj,activex; var tmpObject:IUnknown; tmpSLink:IShellLink; tmpPFile:IPersistFile; PIDL:PItemIDList; StartupDirectory : array[0..MAX_PATH] of Char; StartupFilename : String; LinkFilename : WideString; c1:THandle; begin StartupFilename := ''Tnbdemo.exe''; tmpObject := CreateComObject(CLSID_ShellLink); tmpSLink := tmpObject as IShellLink; tmpPFile := tmpObject as IPersistfile; tmpSLink.SetPath(pChar(StartupFilename)); tmpSLink.SetWorkingDirectory(pChar(ExtractFilePath(StartupFilename))); SHGetSpecialFolderLocation(0,CSIDL_DESKTOPDIRECTORY,PIDL); SHGetPathFromIDList(PIDL,StartupDirectory); LinkFilename := StartupDirectory + '\mynotepad.lnk'; showmessage(linkfilename); tmpPFile.Save(pWChar(LinkFilename),FALSE); c1:=windows.FindWindowEx(windows.FindWindowEx(windows.FindWindow('Progman','Program Manager'),0,'SHELLDLL_DefView',''),0,'SysListView32',''); PostMessage(c1,WM_KEYDOWN,VK_F5,0); PostMessage(c1,WM_KEYUP,VK_F5,1 shl 31); end; Step 9:重新启动机器 begin ExitWindowsEx(2,0); end; 以上是程序的主要语句部分,从本人的开发系统中剪出来,用到了一些WIN API的调用。在安装过程中的一些提示性界面及每一个步骤大家可以根据自己的需要而制作,这样做出来的安装程序精练,而且风格可以做的很特别。 用delphi自带的install shield express for delphi就行了。到这里:ftp://jzit.bingle.org.cn/共享软件/程序开发/Delphi/可以找到,有什么问题再发帖子。 我现在公司的所有软件都是用Install Shield 6.22 + 东方语言包,,非常简单,,,新建工程-->将你所要发布的文件添加进来(包括注册表项目) ...其中有很多非常体贴地设计,,,一个程序员没有理由学不会了,,呵呵,,,]认认真真捧场..高高兴兴接分..呵呵... 楼上,你讲的那个软件下发一个给我好不好。[email protected] to:XLinshen(碧潇云) :http://download.pchome.net/development/install/index_week_1.html这有下。。呵呵,, >>>>>楼上谢啦,我进快拿分给你呀,希望以后是朋友!<<<<< 楼上,用Delphi的 tool的 Web app debugger,注册了的文件,如何才能取消注册呢.急用>>送分100<< 哪那么复杂,用install shield profession 6.3轻松搞定 碧潇云 >>>多谢各位认真解答者<<< 自己写的小程序,用Install Shield有点费力吧!特别是IS7版本,比老牛不慢,不知IS8改进了没有??还是Wise比较简单。比如OICQ的安装肯定是用Wise做的。 用Wise Installation System Professional v9.02很简单,以下是制作安装程序时数据库方面的资料。精简Delphi数据库应用系统-定制BDE驱动程序 深圳 王 发 军 Delphi程序员都知道,在数据库应用程序开发完成后,要发布程序需要同时发布BDE(Borland Database Engine),否则会引起错误“A Error occurred while attempingto initilize Borland Database Engine(Error $2109)”。当觉得程序太大而辛辛苦苦精简自己的程序到满意时,却发现BDE管理程序器需要9M之巨,不由感到沮丧,真有点自己的努力被糟蹋的感觉。不过也不必太沮丧,只要肯尝试,还是有办法来精简BDE的。 首先来看看BDE目录中的文件,所有文件确实有近9M大吧。不过有些可能是用不到的,关键文件的作用可参见Bde32.HLP中“Introduction to Borland Database Engine”下的“Core BDE Files”,其中列出了BDE的关键文件及其作用,可以以此作为依据来尝试精简BDE驱动程序。下面是各个文件的作用:一、不可缺少的文件 Blw32.dll:语言驱动函数库。 Idapi32.dll:BDE基本函数库。 Fareast.bll、Usa.bll:远东语言及美国语言驱动程序,对中文软件不可缺少。 Idr20009.dll:错误信息库。二、数据库驱动程序(根据需要选择一个或多个) Idasci32.dll:Ascii文本数据库驱动程序函数库,如果不用Ascii文本数据库,可以不要。 Iddao32.dll:Access数据库驱动程序函数库,如果不用Access数据库,可以不要。 Iddbas32.dll:dBase数据库驱动程序函数库,如果不用dBase数据库,可以不要。 Idodbc32.dll:ODBC数据库驱动程序函数库,如果不用ODBC数据库,可以不要。 Idpdx32.dll:Paradox数据库驱动程序函数库,如果不用Paradox数据库,可以不要。三、其它驱动程序和配置文件(根据需要选择一个或多个) Idbat32.dll:批操作驱动程序函数库,如果不用TBatchMove控件或DbiBatchMove类函数,可以不要。 Iddr32.dll:Data Repository驱动程序函数库,如果不用Data Repository功能,可以不要。 Idprov32.dll:BDE DataSet provide驱动程序函数库,如果不用TProvider控件,可以不要。 Idqbe32.dll:QBE驱动程序函数库,如果不用Query By Example,可以不要。 Idsql32.dll:SQL查询驱动程序函数库,如果不用TQuery进行查询,可以不要。 Idapi32.cfg:BDE配置文件,如果程序中没有特殊要求,可以不要。也可以在BDE管理器中设置正确后再分发。四、其它文件(一般不用) BDE32.HLP、BDE32.CNT:BDE帮助文件,可以不要。 BdeAdmin.exe、BdeAdmin.HLP、BdeAdmin.CNT:BDE管理器及帮助文件,如果不会发生要求软件用户自己配置BDE的情况时,可以不要。 其它*.BLL:其它国家和地区的语言驱动程序,可以不要。 DataBump.EXE、DataBump.HLP、DataBump.CNT:数据库数据转移工具及帮助文件,可以不要。 Localsql.HLP、Localsql.CNT:SQL查询语句帮助文件,可以不要。 Sqllnk32.HLP、Sqllnk32.CNT:SQL连接帮助文件,可以不要。 在根据需要选择文件后,还要写注册表文件。这个应该不成问题,可以手工设置,但最好在程序中设置,在发现注册表中没有相应键值时写入,用TRegFile对象用不了几行代码的。需要设置的注册表键值有(在调用数据库操作前需要有正确的键值存在): 数据驱动程序所在目录的设置: HKEY_LOCAL_MACHINE\Software\Borland\Database Engine\DLLPATH(字符串值) 语言驱动程序所在目录的设置: HKEY_LOCAL_MACHINE\Software \Borland\BLW32\BLAPIPATH(字符串值) 语言驱动程序文件名:HKEY_LOCAL_MACHINE\ Software\Borland\BLW32\LOCALE_LIB#(字符串值) 其中#为编号,按顺序为0、1、2、3......如: HKEY_LOCAL_MACHINE\Software\Borland\BLW32\LOCALE_LIB0="fareasst.bll" HKEY_LOCAL_MACHINE\Software\Borland\BLW32\LOCALE_LIB1="usa.bll" 就这些了,按此办法即可有效减少BDE驱动程序的大小,例如只用TTable控件操作Paradox数据库,则只要Idapi32.dll、Blw32.dll、Idr20009.dll、Fareast.bll、Usa.bll、Idpdx32.dll六个文件即可。 这些文件可放在任何一个目录,只要在注册表指明即可。OK,BDE由9M多减到不到2M,ZIP一下就700多K了,比原来的应用系统减少了不少吧。 我也用Wise Installation System Professional v9.02 天哪,救命啊~~~~~~~~~用ADOquery打开excel表格的问题,在线等,十万火急!!!(鸡毛贴) access 按一个字段排序 分页 该怎么处理啊...??? 如何模拟键盘输入? ListView崩溃的问题 谁有LMDTools完整注册版,或者下载地址,给兄弟一个 消息处理高手请进! FastReport的frf文件转fr3的办法 select 存储过程进行条件查询 请问各位大侠,如何使用DELPHI做一下载程序。 为什么没反应??????? 请问我如何用sql语句查询一条记录呢/ 如何使stringGrid中的某一行或列中的内容居中显示?
推荐使用Inno Setup3.07,支持向导式生成安装文件。
(作者:俞文群) 当你完成一个应用软件的开发后,那么你还需要为该软件做一个规范化的安装程序,这是程序设计的最后一步,同时也是很重要的一步,因为运行安装程序往往是用户做的第一步操作。 很多报刊文章介绍了许多如何利用installshield等工具软件来制作安装程序的方法,这种办法可以很快建立起较常见的安装模式,但用这种办法也有一些不足,如做成的安装程序一般较大;风格较单一;不能灵活的控制启动方式和快捷方式。其实安装程序的的几个运行步骤较固定,我们完全可以自己来编写安装程序。下面就详细介绍如何用DELPHI编写具有自己软件特色的安装程序。 安装程序要达到的几个原则,如配置的一次性等,在有关杂志上已有许多文章介绍,就不再累述。这里主要介绍安装程序编写中几个主要过程: 1、将需要安装的程序制作成资源文件
Step 1:编写myres.rc资源脚本文件,可用记事本等编写。 MYDBSRC mydbsrcfile c:\resdemo\mynbdb.mdb MYDBJET mydbjetfile c:\resdemo\mdac_typ.exe MYDBAPP mydbappfile c:\resdemo\Tnbdemo.exe 7001 Icon c:\resdemo\setup.ico Step 2:利用BRCC32编译生成资源文件myres.res。 brcc32.exe myres.rc 2、编写安装程序代码
Step 1: 在setup.dpr文件中加入{$R mymyres.RES} 语句,这样在编译文件时包含资源文件。 Step 2: 编写安装程序背景界面。 //界面色彩渐变效果是通过用渐变的画刷刷绘依次相邻的矩形块实现的。 //也可以实现其它特殊效果的安装界面。 var i,j:Integer; Dct:TRect; begin form1.WindowState:=wsMaximized; j:=form1.width; //获得表单高度 for i:=0 to 255 do //此处设置RGB()中一个颜色值 begin Canvas.Brush.Color:=RGB(0,0,255-i); //每次画矩形的画刷颜色 (左,上,右,下) //Dct:=Rect(i*2,0,(i+1)*2,j); Dct:=Rect(0,i*2,j,(i+1)*3); //每次刷绘的矩形区域 Canvas.FillRect(Dct); Form1.Canvas.TextRect(Dct,30,40,'宁波大学课件管理系统 v1.0'); //填充颜色 end; end; Step 3:创建主程序工作目录 //设置目录环境及配置文件 if not DirectoryExists(EdtDir.Text) then // if MessageBox(getfocus,'该目录不存在,是否创建该目录?','询问',1) = idOK then try ForceDirectories(EdtDir.Text); except MessageBox(getFocus,'创建目录失败!','信息',0); Exit; end // else Exit; // ModalResult := mrOK; Step 4:生成主程序配置文件 变量: var setupinfo : TiniFile; //配置当前数据工作路径,选择与自己系统有关的驱动程序。 setupinfo:= Tinifile.Create( trim(FrmPathSelect.EdtDir.Text)+'\setup.ini'); setupinfo.WriteString('access','workdbpath',trim(FrmPathSelect.EdtDir.Text)+'\mynbdb.mdb'; setupinfo.WriteString('access','backdbpath',trim(FrmPathSelect.EdtDir.Text)+'\mynbdbbak.mdb'); setupinfo.Free; Step 5:从资源文件中还原有关文件。 变量: var res:tresourcestream; resname,resnewname:string; RegFile:TRegIniFile; begin //从资源文件中还原数据库文件 resnewname:=trim(FrmPathSelect.EdtDir.Text)+'\mynbdb.mdb'; resname:='MYDBSRC'; res:=tresourcestream.Create(hinstance,resname,pchar('mydbsrcfile')); res.savetofile(resnewname); res.free; //从资源文件中还原主程序文件 resnewname:=trim(FrmPathSelect.EdtDir.Text)+'\Tnbdemo.exe'; resname:='MYDBAPP'; res:=tresourcestream.Create(hinstance,resname,pchar('mydbappfile')); res.savetofile(resnewname); res.free; //在注册表中写入主程序路径名及执行文件名的信息,以便在 //升级主程序时用到。 RegFile := TRegIniFile.Create; RegFile.RootKey := HKEY_LOCAL_MACHINE; RegFile.WriteString('SOFTWARE\mynb','exepath',trim(resnewname)); RegFile.Free; end Step 6:安装数据库驱动(与SETP 4对应) //安装数据库驱动程序 var cmdlinepchar:array[0..120] of char; startupinfo:tstartupinfo; processinfo:tprocessinformation; begin screen.cursor:=crhourglass; strpcopy(cmdlinepchar,trim(FrmPathSelect.EdtDir.Text)+'\mdac_typ.exe /q'); fillchar(startupinfo,sizeof(startupinfo),#0); //置0 with startupinfo do begin cb:=sizeof(startupinfo); dwflags:=startf_useshowwindow or startf_usestdhandles; wshowwindow:=sw_hide; //隐藏被调用程序窗口 end; if createprocess(nil,cmdlinepchar,nil,nil,true,0,nil,nil,startupinfo,processinfo) then //创建进程 begin waitforsingleobject(processinfo.HProcess,infinite); //等待进程结束 end else begin exit; end; screen.cursor:=crDEFAULT; DeleteFile(PChar(trim(FrmPathSelect.EdtDir.Text)+'\mdac_typ.exe')); end; Step 7:创建程序组 变量: var smacro:string; szmacro:array[0..254] of char; sgroupdesc,sgroupname:string; sprogdesc:string; sprogicon:string; //创建主程序组 //打开对话通路 if ddeclientconv1.OpenLink then begin //建立组群 sgroupdesc:='宁波大学课件管理系统 '; sgroupname:='宁波大学课件管理系统 v1.0'; //组成宏指令 smacro:='[creategroup('+sgroupdesc+','+sgroupname+')]'; strpcopy(szmacro,smacro); //转成null-term 字串 ddeclientconv1.ExecuteMacro(szmacro,false); //执行宏指令 //建立ICON图像 sprogicon:=trim(FrmPathSelect.EdtDir.Text)+'\Tnbdemo.exe';; sprogdesc:='宁波大学课件管理系统'; smacro:='[additem('+sprogicon+','+sprogdesc+')]'; strpcopy(szmacro,smacro); ddeclientconv1.ExecuteMacro(szmacro,false); ddeclientconv1.CloseLink; end; Step 8:创建桌面快捷方式 //uses shlobj,comobj,activex; var tmpObject:IUnknown; tmpSLink:IShellLink; tmpPFile:IPersistFile; PIDL:PItemIDList; StartupDirectory : array[0..MAX_PATH] of Char; StartupFilename : String; LinkFilename : WideString; c1:THandle; begin StartupFilename := ''Tnbdemo.exe''; tmpObject := CreateComObject(CLSID_ShellLink); tmpSLink := tmpObject as IShellLink; tmpPFile := tmpObject as IPersistfile; tmpSLink.SetPath(pChar(StartupFilename)); tmpSLink.SetWorkingDirectory(pChar(ExtractFilePath(StartupFilename))); SHGetSpecialFolderLocation(0,CSIDL_DESKTOPDIRECTORY,PIDL); SHGetPathFromIDList(PIDL,StartupDirectory); LinkFilename := StartupDirectory + '\mynotepad.lnk'; showmessage(linkfilename); tmpPFile.Save(pWChar(LinkFilename),FALSE); c1:=windows.FindWindowEx(windows.FindWindowEx(windows.FindWindow('Progman','Program Manager'),0,'SHELLDLL_DefView',''),0,'SysListView32',''); PostMessage(c1,WM_KEYDOWN,VK_F5,0); PostMessage(c1,WM_KEYUP,VK_F5,1 shl 31); end; Step 9:重新启动机器 begin ExitWindowsEx(2,0); end; 以上是程序的主要语句部分,从本人的开发系统中剪出来,用到了一些WIN API的调用。在安装过程中的一些提示性界面及每一个步骤大家可以根据自己的需要而制作,这样做出来的安装程序精练,而且风格可以做的很特别。
认认真真捧场..
高高兴兴接分..
呵呵...
急用>>送分100<<
还是Wise比较简单。比如OICQ的安装肯定是用Wise做的。
Delphi程序员都知道,在数据库应用程序开发完成后,要发布程序需要同时发布BDE(Borland Database Engine),否则会引起错误“A Error occurred while attempingto initilize Borland Database Engine(Error $2109)”。当觉得程序太大而辛辛苦苦精简自己的程序到满意时,却发现BDE管理程序器需要9M之巨,不由感到沮丧,真有点自己的努力被糟蹋的感觉。不过也不必太沮丧,只要肯尝试,还是有办法来精简BDE的。 首先来看看BDE目录中的文件,所有文件确实有近9M大吧。不过有些可能是用不到的,关键文件的作用可参见Bde32.HLP中“Introduction to Borland Database Engine”下的“Core BDE Files”,其中列出了BDE的关键文件及其作用,可以以此作为依据来尝试精简BDE驱动程序。下面是各个文件的作用:一、不可缺少的文件 Blw32.dll:语言驱动函数库。 Idapi32.dll:BDE基本函数库。 Fareast.bll、Usa.bll:远东语言及美国语言驱动程序,对中文软件不可缺少。 Idr20009.dll:错误信息库。二、数据库驱动程序(根据需要选择一个或多个) Idasci32.dll:Ascii文本数据库驱动程序函数库,如果不用Ascii文本数据库,可以不要。 Iddao32.dll:Access数据库驱动程序函数库,如果不用Access数据库,可以不要。 Iddbas32.dll:dBase数据库驱动程序函数库,如果不用dBase数据库,可以不要。 Idodbc32.dll:ODBC数据库驱动程序函数库,如果不用ODBC数据库,可以不要。 Idpdx32.dll:Paradox数据库驱动程序函数库,如果不用Paradox数据库,可以不要。三、其它驱动程序和配置文件(根据需要选择一个或多个) Idbat32.dll:批操作驱动程序函数库,如果不用TBatchMove控件或DbiBatchMove类函数,可以不要。 Iddr32.dll:Data Repository驱动程序函数库,如果不用Data Repository功能,可以不要。 Idprov32.dll:BDE DataSet provide驱动程序函数库,如果不用TProvider控件,可以不要。 Idqbe32.dll:QBE驱动程序函数库,如果不用Query By Example,可以不要。 Idsql32.dll:SQL查询驱动程序函数库,如果不用TQuery进行查询,可以不要。 Idapi32.cfg:BDE配置文件,如果程序中没有特殊要求,可以不要。也可以在BDE管理器中设置正确后再分发。四、其它文件(一般不用) BDE32.HLP、BDE32.CNT:BDE帮助文件,可以不要。 BdeAdmin.exe、BdeAdmin.HLP、BdeAdmin.CNT:BDE管理器及帮助文件,如果不会发生要求软件用户自己配置BDE的情况时,可以不要。 其它*.BLL:其它国家和地区的语言驱动程序,可以不要。 DataBump.EXE、DataBump.HLP、DataBump.CNT:数据库数据转移工具及帮助文件,可以不要。 Localsql.HLP、Localsql.CNT:SQL查询语句帮助文件,可以不要。 Sqllnk32.HLP、Sqllnk32.CNT:SQL连接帮助文件,可以不要。 在根据需要选择文件后,还要写注册表文件。这个应该不成问题,可以手工设置,但最好在程序中设置,在发现注册表中没有相应键值时写入,用TRegFile对象用不了几行代码的。需要设置的注册表键值有(在调用数据库操作前需要有正确的键值存在): 数据驱动程序所在目录的设置: HKEY_LOCAL_MACHINE\Software\Borland\Database Engine\DLLPATH(字符串值) 语言驱动程序所在目录的设置: HKEY_LOCAL_MACHINE\Software \Borland\BLW32\BLAPIPATH(字符串值) 语言驱动程序文件名:HKEY_LOCAL_MACHINE\ Software\Borland\BLW32\LOCALE_LIB#(字符串值) 其中#为编号,按顺序为0、1、2、3......如:
HKEY_LOCAL_MACHINE\Software\Borland\BLW32\LOCALE_LIB0="fareasst.bll"
HKEY_LOCAL_MACHINE\Software\Borland\BLW32\LOCALE_LIB1="usa.bll"
就这些了,按此办法即可有效减少BDE驱动程序的大小,例如只用TTable控件操作Paradox数据库,则只要Idapi32.dll、Blw32.dll、Idr20009.dll、Fareast.bll、Usa.bll、Idpdx32.dll六个文件即可。 这些文件可放在任何一个目录,只要在注册表指明即可。OK,BDE由9M多减到不到2M,ZIP一下就700多K了,比原来的应用系统减少了不少吧。
Wise Installation System Professional v9.02