求教:如何让Edit控件记住前一次运行的Text值。(内空)(30分)

  • 主题发起人 主题发起人 yeeler
  • 开始时间 开始时间
在退出时你可以把Edit控件的Text保存在数据库或一个ini文件中。
再次运行时,把此值从数据库或一个ini文件读取出来添进去。
 
用ini文件,或是数据库
 
我建议用Registry,将值写在注册表中:用法如下:
在Uses中添如Registry

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
MyReg:TRegistry;
begin
MyReg:=TRegistry.Create;
try
MyReg.RootKey:=HKEY_LOCAL_MACHINE;
MyReg.OpenKey('SoftWare/MyValue',TRUE);
MyReg.WriteString('Edit1','asdf');
finally
MyReg.Free;
end;
正在HKEY_LOCAL_MACHINE/SOftware下建立一个项名称为MyValue,然后建立一个
字符串值,名字为Edit1,值为asdf。
在程序开始后用MyReg.ReadString从注册表中调入即可。
 
可以用一个 ComboBox 模拟。
 
多数情况下我是用only you的方法,若嫌麻烦也可以把它存入一个*.txt文件中,退
出时存入需要时取出:
var
Edittxt:TextFile;
EditStr:String;
begin
try
AssignFile(Edittxt,'c:/tem/temp.txt');
Reset(Edittxt); {or ReWrite(Edittxt); //写入}
Read(Edittxt,EditStr); {write(Edittxt,Edit1.Text)}
Edit1.Text:=EditStr;
finally
CloseFile(Edittxt);
end;
end;

这样也非常方便。
 
总之,你必要把上次的值保存在硬盘上(Registry、ini、txt、database。。。。)
下次运行时再读出来,不然怎么能记住上次的值呢?
 
请问如果用ini如何操作?
 
用tstringlist足够了
搜索一下 有的
INI的用法
var
pc:tinifile;
begin
pc:=tinifile.create('email.ini');
pc.writestring(s,'Host',edit1.text);
pc.writestring(s,'Email',edit2.text);
pc.writestring(s,'Name',edit3.text);
pc.writestring(s,'Port','110');
pc.free;
end;
 
可以用数据库,注册表,ini文件很多地方都可以的。
 
已搞定,多谢了!!!
 
后退
顶部