向注册表中写入信息
在注册表中存储的信息有字符串值、二进制值和十六进制值三种类型。Write系列方法将信息转化
为指定的类型,并将转化后的信息写入注册表。
1、Write系列方法
Write系列方法的方法主要有:
procedure WriteString(const Name, Value: string);
写入一个字符串值,Name为字符串的名称,Value为字符串值。如果字符串的名称不存在,
将创建该字符串名称;否则将覆盖原来的字符串值。
procedure WriteInteger(const Name: string;
Value: Integer);
写入一个整数值,Name为整数值的名称,Value为整数值。如果整数值的名称不存在,将
创建该整数值名称;否则将覆盖原来的整数值。
procedure WriteBool(const Name: string;
Value: Boolean);
写入一个布尔值,Name为布尔值的名称,Value为布尔值。如果布尔值的名称不存在,将
创建该布尔值名称;否则将覆盖原来的布尔值。
procedure WriteBinaryData(const Name: string;
var Buffer;
BufSize: Integer);
写入二进制值,Name为二进制值的名称,Buffer为包含二进制值的缓冲区,BufSize为缓
冲大小。如果二进制值的名称不存在,将创建该二进制值名称;否则将覆盖原来的二进制值。
其它方法还有:WriteCurrency、WriteDate、WriteDateTime、WriteFloat、WriteTime。
2、写入信息一例
在Delphi数据库应用程序移植到其它没有安装BDE的计算机上时,可以安装BDE;也可以想办法不完全
安装BDE,自己定制BDE,以减少应用系统的大小。例如当只用TTable控件操作Paradox数据库时,则只要
Idapi32.dll、Blw32.dll、Idr20009.dll、Fareast.bll、 Usa.bll、Idpdx32.dll六个文件即可。这些
文件可放在应用程序所在目录,并在注册表指明语言驱动程序所在目录为应用程序所在目录即可。这样
BDE可由9M减到不到2M。
{ 向注册表中写入信息的例子:为BDE注册必要的信息 }
procedure TForm1.Button2Click(Sender: TObject);
var
DataDirectory : string;
ARegistry : TRegistry;
begin
memo1.lines.add( DateTimeToStr( now ) + ':正注册BDE信息');
{ 取得应用程序所在的目录,也是6个BDE文件所在的目录 }
DataDirectory := ExtractFilePath( Application.ExeName );
ARegistry := TRegistry.Create;//创建一个TRegistry对象实例
with ARegistry do
begin
RootKey := HKEY_LOCAL_MACHINE;//指定根键为HKEY_LOCAL_MACHINE
//打开主键名Software/Borland/BLW32,参数True表示如果
//Software/Borland/BLW32不存在则创建之
if OpenKey( 'Software/Borland/BLW32', True ) then
begin
//写入BDE语言驱动程序所在的目录,即当前程序目录
WriteString( 'BLAPIPATH', DataDirectory );
//写入远东地区语言驱动程序文件名
WriteString( 'LOCALE_LIB0', 'FarEast.bll' );
//写入美国语言驱动程序文件名
WriteString( 'LOCALE_LIB1', 'usa.bll' );
CloseKey;
//关闭主键,同时将信息写入注册表
end;
Destroy;//释放内存
end;
//打开当前目录下的一个Paradox数据表做演示
with table1 do
begin
memo1.lines.add( DateTimeToStr( now ) + ':正打开数据库');
close;
DatabaseName := DataDirectory;
TableName := 'CUSTOMER.DB';
open;
memo1.lines.add( DateTimeToStr( now ) + ':数据库成功打开');
end;
end;