荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: playboy (冷冷的太阳), 信区: Program
标  题: Delphi应用程序中保存状态信息的两种方法
发信站: BBS 荔园晨风站 (Sat Feb 26 12:51:35 2000), 转信

许多For Windows的应用程序在一次运行结束时会自动保存此
次运行的状态信息,这样做的好处是用户只要修改一次程序的
运行状态,在下次启动此程序时,该程序会以上次运行的状态
出现,用户可以按照自己的习惯来调整应用程序。

  在Delphi中有两种方法可以实现这种功能:使用INI文件或使
用注册表。下面将详细阐述这两种方法。


  一、 使用INI文件保存状态信息

  Delphi中提供了TIniFile类,TIniFile类能够在INI文件中存
取应用程序专用信息,我们可以用它来处理INI文件。注意使用时
将IniFiles单元加入uses列表中。

  使用INI文件存取应用程序专用信息是Windows 3.x中的标准方
法。INI文件中的信息储存是分段的,每个段由一个括在方括号中
的名称说明,比如WIN.INI中就包括[Desktop]等段。每个段中又
由一些键值组成,这些键值的格式是:< keyname >=< value >,
共有三种类型:字符串、整型和布尔型,每种类型有两种方法可
以读写:ReadBool,WriteBool,ReadInteger,WriteInteger,
ReadString,WriteString。下面就一个例子来说明它们的用法:

  1.建立INI文件

  过程  TForm1.FormCreate ( Sender:Tobject );{ 如 INI 文件
不存在,建立 INI 文件;否则,从
  INI 文件中读取数据 } var    status:integer ;
     inifile:TIniFile ;
     filename:String ;
   开始
     filename:=extractfilepath ( application.exename )+ ’
iniexample.ini ’;
     inifiel:=Tinifile.create ( 文件名 );status:=
inifile.readinteger ( ‘ MainForm ’, ’
     地位’, 0 );如果 表。Tregistry类封装了系统注册表。而TRegIniFile类不但封装了
注册表,
还提供了一条简单的途径使现有的Windows 3.1应用软件升级到Windows 95/NT
。TRegIniFile类提供了TIniFile类的接口,但没有使用文件,而是将数据保
存在注册表中。文件名作为一个主键,默认建立在HKEY_CURRENT_USER下。相
应的,INI文件中的段名作为一个
键建立,段中的各项数据就变为这个键下边的各项数值。仍以上面的例子为
例,如果使用TRegIniFile类,只需改动三处:

  1.在uses列表中用registry单元代替IniFiles单元

  2.用TRegIniFile类代替TIniFile类

  3.将inifiel:=Tinifile.create(filename);改为
Inifile:=TRegIniFile.Create(Filename);



--
※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.90]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店