《2022年用Delphi编写安装程序(1)Delphi教程.docx》由会员分享,可在线阅读,更多相关《2022年用Delphi编写安装程序(1)Delphi教程.docx(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2022年用Delphi编写安装程序(1)Delphi教程 当你完成一个应用软件的开发后,那么你还须要为该软件做一个规范化的安装程序,这是程序设计的最终一步,同时也是很重要的一步,因为运行安装程序往往是用户做的第一步操作。许多报刊文章介绍了很多如何利用installshield等工具软件来制作安装程序的方法,这种方法可以很快建立起较常见的安装模式,但用这种方法也有一些不足,如做成的安装程序一般较大;风格较单一;不能敏捷的限制启动方式和快捷方式。其实安装程序的的几个运行步骤较固定,我们完全可以自己来编写安装程序。下面就具体介绍如何用DELPHI编写具有自己软件特色的安装程序。安装程序要达到的几个
2、原则,如配置的一次性等,在有关杂志上已有很多文章介绍,就不再累述。这里主要介绍安装程序编写中几个主要过程:1、将须要安装的程序制作成资源文件Step 1:编写myres.rc资源脚本文件,可用记事本等编写。MYDBSRC mydbsrcfile c:resdemomynbdb.mdbMYDBJET mydbjetfile c:resdemomdac_typ.exeMYDBAPP mydbappfile c:resdemoTnbdemo.exe7001 Icon c:resdemosetup.icoStep 2:利用BRCC32编译生成资源文件myres.res。brcc32.exe myres
3、.rc2、编写安装程序代码Step 1: 在setup.dpr文件中加入{$R mymyres.RES} 语句,这样在编译文件时包含资源文件。Step 2: 编写安装程序背景界面。 /界面色调渐变效果是通过用渐变的画刷刷绘依次相邻的矩形块实现的。/也可以实现其它特别效果的安装界面。var i,j:Integer;Dct:TRect;beginform1.WindowState:=wsMaximized;j:=form1.width;/获得表单高度for i:=0 to 255 do/此处设置RGB()中一个颜色值beginCanvas.Brush.Color:=RG
4、B(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:创建主程序工作书目 page/设置书目环境及配置文件if not DirectoryExists(EdtDir.Text) then/ if MessageBox(getfocus,该书目不存在,是否创建该书目?,询问,1
5、) = 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(a
6、ccess,workdbpath,trim(FrmPathSelect.EdtDir.Text)+mynbdb.mdb;setupinfo.WriteString(access,backdbpath,trim(FrmPathSelect.EdtDir.Text)+mynbdbbak.mdb);setupinfo.Free;Step 5:从资源文件中还原有关文件。变量:varres:tresourcestream;resname,resnewname:string;RegFile:TRegIniFile;begin/从资源文件中还原数据库文件resnewname:=trim(FrmPathSel
7、ect.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(SOFTWAREmynb,exepath,trim(resnewname);
限制150内