紧急求助!!!!!!!怎样定义一个变量,使它不但可以改变,而且不受程序重新启动的影响(80分)

  • 主题发起人 主题发起人 DD88
  • 开始时间 开始时间
D

DD88

Unregistered / Unconfirmed
GUEST, unregistred user!
我想实现一个功能,要使用到一个变量,它的值再程序中可以修改,关键的是,重新启动程序后,它的值还是最后一次修改的值。
比如:M:integer;
程序中修改为M:=1;
然后重新启动程序。这时M还要是1。
 
存在ini文件中或注册表中
 
------------------------------------------------------------------------------
这位大虾,可否写点代码?我为了这个问题都问了一天了!
------------------------------------------------------------------------------
 
写到INI或注册表中,谁有代码吗?
 
为什么要什么代码的,查一下Delphi帮助中的TRegIniFile和TRegistry,Delphi不是
就有Example吗。
 
我觉得还是保存成Ini文件比较好处理一些
例子:
uses inifiles;
var
ainifile : tinifile;
begin
aIniFile := TIniFile.Create('./Config.INI');//打开Ini,如果不存在则创建
aIniFile.Writeinteger('SaveInfo', 'M', 1);//保存数据到Ini
str := IniFile.Readinteger('SaveInfo', 'M', 1);//从InI读取
ainiflie.free;
end;
 
使用注册表比较安全:
在窗体创建时调用reg_read过程,在窗体关闭时调用reg_write过程。
//从注册表读值
procedure reg_read(var s1:string);
var reg:Tregistry;
begin
reg:=Tregistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('/Software/project1', True) ;
S1:=Reg.ReadString('VALUE1');
finally
Reg.closekey;
Reg.free;
end;
end;


//值读入注册表

procedure Reg_write(var s1:string);
var reg:Tregistry;
begin
reg:=Tregistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey('/Software/project1', false) then
Reg.WriteString('value1',s1);
finally
Reg.closekey;
Reg.free;
end;
end;

注意在USES中加入registry。
 
就只有写到INI配置文件或注册表中
 
你难道一直以来使用的是计算器作为开发工具?
老哥,你先参加计算机扫盲教育去吧。
 
基本同意楼上的意见。
建议把DFW的离线包(CHM更好)Down下来,自己搜索,不要动不动就让别人给代码!
 
程序记忆功能方法有以下几种:可以写*.ini或*.inf文件;可以用Delphi提供的文件类来自定义一个文件;
可以用数据库接口(如ODBC)引入一种数据库文件,如Foxpro的*.dbf和Access的*.mdb;还可以直接写
Windows的注册表。推荐使用写注册表的办法,因为这种办法很方便,不需太多额外的开销,程序比较简
单,也不易被别人更改。
 
非注册表方法(对于楼主的问题,更应使用这种方法)
var aVar:integer=1;
//在早期Delphi中的表达:const aVar:integer=1;这种表达现在还能用,以后可能不兼容

另一种方法:

var aVar:integer;

然后在单元的末尾加保留字:
initialization
aVar:=1;
 
同意楼上几位兄弟的意见,写入ini,或者注册表.
 
呵呵, 楼上的没看清问题..[:(]
 
用注册表嘛,这也要别人给代码?
变量很多的时候最好自己封个类,在创建时读入,释放时写出
多个实例运行时,创建共享内存区
 
后退
顶部