Windows, Messages,. . . . . . . ,registry;
//包括registry单元
type
TForm1 = class(TForm)
.
.
.
public
ww:TRegistry;
//声明一个TRegistry对象,我们就通过ww来
实现对注册表的操作
procedure TForm1.FormCreate(Sender: TObject);
begin
ww:=TRegistry.Create;
//创建ww对象
ww.RootKey :=HKEY_CURRENT_USER;
//注意:通过修改RootKey可以把信息写到注册表的每一个角落
ww.OpenKey('software',FALSE);
//打开键software,可以看到Borland,Netscape
还有Microsoft也在这个software键中
ww.CreateKey( '王伟');
//在software键中创建一个名为“王伟“的键值,
使自己的名字和Borland,Netscape,
//Microsoft并排在一起,是不是很Cool啊:)
ww.OpenKey( '王伟',FALSE);
//打开键"王伟"
ww.CreateKey('XX单位XX管理系统');
//创建应用程序的名称
ww.OpenKey('XX单位XX管理系统',TRUE);
ww.CreateKey('位置');
//创建应用程序中某一个要存贮的项目的名称,便于管理
ww.OpenKey('位置',TRUE);
if (ww.ReadString('first')<>'1')then
//这是值得注意的一个地方,通过“first“来判断程序是否
begin
//是第一次写注册表,如果是第一次写则用程序给的默认值来
ww.WriteString('first','1');
//设置窗口的位置和大小。如果不是第一次启动应用程序则说明
Form1.WindowState:=(wsNormal);
//注册表中已经写了位置信息,就读这些信息并赋给Form。
Form1.Top:=10;
form1.Left:=10;
form1.Height:=100;
form1.Width:=100;
end
else
begin
if(ww.ReadString('max')='y') then
//判断上次关闭程序时,窗口是否是最大化的。如果是的话,则
Form1.WindowState:=(wsMaximized)
//继续使窗口拥有这一特征。
else
begin
Form1.top:=StrToInt(ww.ReadString('top'));
//如果不是最大化,则取位置和大小数据赋给From
Form1.left:=StrToInt(ww.ReadString('left'));
Form1.height:=StrToInt(ww.ReadString('height'));
Form1.width:=StrToInt(ww.ReadString('width'));
end;
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
ww.OpenKey('位置',FALSE);
//打开“位置”键
if Form1.WindowState=(wsMaximized) then
//如果当前程序是最大化,则把这一信息写入注册表,
ww.WriteString('max','y')
//便于下一次时使用。
else
begin
ww.WriteString('max','n');
//如果不是最大化,则把窗口的位置和大小数据写入注册表中。
ww.WriteString('top',IntToStr(Form1.top));
ww.WriteString('left',IntToStr(Form1.left));
ww.WriteString('height',IntToStr(Form1.Height));
ww.writeString('width',IntToStr(Form1.Width));
end;
end;