今天学习了ini文件的使用,按书上做的,创建了个ini文件:mytest.ini
该ini文件的结构如下:
[参数配置]
appname=dgfsd; 
appyear=1983-03-15;
appbeta=true;在form1上放了两个edit,(edt_name,edt_year,),放了个checkedbox--cb_cs,声明了个全局变量:mytest,
关键代码如下:
procedure TForm1.FormCreate(Sender: TObject);
var
pathname:string;
begin
pathname:=extractfilepath(application.Name)+'mytest.ini';
if not fileexists(pathname) then
raise exception.Create('mytestini文件不存在');
mytest:=tinifile.Create(pathname);
 edt_name.Text:=mytest.ReadString('参数配置','appname','sghd');
 edt_year.Text:=mytest.ReadString('参数配置','appyear','1999-9-5');
 cb_cs.checked:=mytest.readbool('参数配置','appbeta',true);
  end;procedure TForm1.Button1Click(Sender: TObject);
begin
mytest.WriteString('参数配置','appname',edt_name.Text);
mytest.WriteString('参数配置','appyear',edt_year.Text);
mytest.WriteBool('参数配置','appbeta',cb_cs.Checked);
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
mytest.Free;
end;
程序可以编译,可是窗体出来的时候,edit,和checkbox的值都没有显示ini文件的内容,
单击button1的时候修改的值也没有写进ini文件,晕,真不知道为什么哦,
请各位高手指教!!

解决方案 »

  1.   

    变量类型错了,是Tinifile类型才对
    iniF:TIniFile;
    iniF := TIniFile.Create(ExtractFilePath(Application.ExeName)+'configure.ini');
      

  2.   

    to  cxreal  
     你好,  程序中ini变量mytest我是申明为tinifile类型的啊,程序也可以编译,真是不知道怎么回事!
      

  3.   

    pathname:=extractfilepath(application.Name)+'mytest.ini';这个错了
    pathname:=extractfilepath(application.exeName)+'mytest.ini';才对你把pathname的内容打印出来就看出来了
      

  4.   

    其实写了,但是写到了另外的一个ini里面,在系统目录下。
    pathname:=extractfilepath(application.Name)+'mytest.ini';
    改为
    pathname:=extractfilepath(application.exeName)+'mytest.ini';即可。
      

  5.   

    to   cxreal 
      你好,我按你说的把application.name改为  application.exename试了下,果然程序可以运行了,:) 
    谢谢你啊!!
    那我想问下,application.name和application.exename这两个allpication的属性有什么区别呢?
      

  6.   

    application.exename是你可执行文件名字。
      

  7.   

    恩,谢谢各位,小弟的这个小小的疑惑解决了,呵呵,现在结帐,欢迎大家讨论,
    我在大富翁论坛发了个同样的帖子,有人说程序改成这样也行
    path:=Extractfilepath(paramstr(0))+'myini'
    那paramstr(0)是什么意思呢?
      

  8.   

    extractfilepath(application.exeName) 也可写成  ExtractFilePath(Paramstr(0))
      

  9.   

    是那语句错了,pathname没有包含路经,值为mytest.ini,改为application.exeName