用Delphi编写安装程序(1)

2016-01-29 14:14 73 1 收藏

用Delphi编写安装程序(1),用Delphi编写安装程序(1)

【 tulaoshi.com - Delphi 】

 

  当你完成一个应用软件的开发后,那么你还需要为该软件做一个规范化的安装程序,这是程序设计的最后一步,同时也是很重要的一步,因为运行安装程序往往是用户做的第一步操作。

  很多报刊文章介绍了许多如何利用installshield等工具软件来制作安装程序的方法,这种办法可以很快建立起较常见的安装模式,但用这种办法也有一些不足,如做成的安装程序一般较大;风格较单一;不能灵活的控制启动方式和快捷方式。其实安装程序的的几个运行步骤较固定,我们完全可以自己来编写安装程序。下面就详细介绍如何用DELPHI编写具有自己软件特色的安装程序。

  安装程序要达到的几个原则,如配置的一次性等,在有关杂志上已有许多文章介绍,就不再累述。这里主要介绍安装程序编写中几个主要过程:

  1、将需要安装的程序制作成资源文件
  Step 1:编写myres.rc资源脚本文件,可用记事本等编写。

  MYDBSRC mydbsrcfile c:resdemomynbdb.mdb

  MYDBJET mydbjetfile c:resdemomdac_typ.exe

  MYDBAPP mydbappfile c:resdemoTnbdemo.exe

  7001 Icon c:resdemosetup.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:创建主程序工作目录 [next]

  //设置目录环境及配置文件

  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(‘SOFTWAREmynb‘,‘exepath‘,trim(resnewname));

来源:https://www.tulaoshi.com/n/20160129/1492849.html

延伸阅读
Delphi是著名的Borland公司开发的可视化软件开发工具。有这样一句话最为经典、贴切的描述了Delphi——“真正的程序员用C,聪明的程序员用Delphi”。很多人把Delphi称为是第四代编程语言,它具有简单、高效、功能强大等特点。和Visual C++比较,Delphi更简单、更易于学习掌握,而在功能上却毫不逊色;和Visual Basic相比,Delphi则功能更强大、...
一、 原理 目前进行数据加密的方法很多,对数据的保护起到一定的作用。但如果采用固定的密钥或是密钥随数据一起传送,则均不能达到令人满意的保密效果。在实践过程中,我摸索出了一套请求-应答模式的随机密钥方法,对密码和数据的保密效果都令人十分满意。 当客户端程序启动并企图与服务器程序建立连接时,客户程序从服务器端取...
Windows 2000/XP和2003等支持一种叫做"服务程序"的东西.程序作为服务启动有以下几个好处: (1)不用登陆进系统即可运行. (2)具有SYSTEM特权.所以你在进程管理器里面是无法结束它的. 笔者在2003年为一公司开发机顶盒项目的时候,曾经写过课件上传和媒体服务,下面就介绍一下如何用Delphi7创建一个Service程序. ...
COM程序编写入门编写:李贤敏日期:2004-5-2名词解释:OLE: (Object linking and embedding对象的链接与嵌入)      使得服务器模块和客户模块通过标准的接口进行通讯。两个模块可以在同一台计算机或位于不同的计算机上,位置对用户来说是无关紧要的。服务器模块实现了一组接口,客户模块通过这组接口进行通讯。COM: ...
Delphi 2005 被Broland成为windows平台上的最终的完整解决方案。 Delphi 2005 集成了Delphi , C # , Microsoft .NET Framework and Win32 ,支持图形用户接口( GUI ) , Web开发, 数据库、富客户端应用程序( rich-client applications )等多种开发开发语言,同时还集成了软件生命周期管理( ALM )功能及开发者生产力促进功能(即RAD)。在...

经验教程

438

收藏

65
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部