用Delphi编写安装程序(1)

2016-01-29 14:14 76 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));

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

延伸阅读
一、界面设计 新建一个标准的EXE工程。在Form1窗体中放置一个定时器(Timer1)、两个文本框(Label1,Label2)、两个命令按钮(Command1,Command2)和包含7个元素的控件数组(Label3(0)Label3(6))。 二、属性设置 Label3控件数组中的所有元素皆采用相同设置。 三、代码编写 本程序的实现原理是:当用户单击...
在WINDOWS里,右下角有许多应用程序的图标。而程序本身的窗口是隐藏的,若你需要调用应用程序的窗口,则双击该图标即可。这种程序称为托盘程序。这是WINDOWS98操作系统的一大特色。使用户能够更加快捷的显示和隐藏应用程序,可以使任务栏不致于太乱。托盘程序在Visual Basic里是怎么实现的呢? 编写托盘程序主要解决两个问题: ...
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)。在...

经验教程

684

收藏

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