这段程序为什么在Win2000下报错,而win98正常?(50分)

  • 主题发起人 主题发起人 LiGen
  • 开始时间 开始时间
L

LiGen

Unregistered / Unconfirmed
GUEST, unregistred user!
这段程序为什么在Win2000下报错,而win98正常?
procedure TFTree.FormCreate(Sender: TObject);
var
IniFile:TiniFile;
begin
IniFile:=TIniFile.create(ExtractFilePath(ParamStr(0))+'Brighteye.ini');
//错误从这里开始
Ftree.top:=IniFile.ReadInteger('top','',0);
Ftree.Left:=IniFile.ReadInteger('Left','',0);
Ftree.Width:=IniFile.ReadInteger('Width','',600);
Ftree.Height:=IniFile.ReadInteger('Height','',480);
BackFileDir:=IniFile.ReadString('BackFileDir','',Curdir+'BackFile');
IniFile.Free;
end;
 
ExtractFilePath(ParamStr(0))+'Brighteye.ini' 中 可能路径不对,
即可能存在c:brighteye.ini 现象,这在 98不允许的
 
我试过了,没有错误
可能是Ftree的错误
最好try一下
 
你要判断ExtractFilePath(ParamStr(0))如果字符串长度等于2就加一个'/'
 
procedure TForm1.FormCreate(Sender: TObject);
var
IniFile:TiniFile;
Curdir, BackFileDir:string;
begin
Curdir := getcurrentdir();
IniFile:=TIniFile.create(ExtractFilePath(ParamStr(0))+'Brighteye.ini');
//错误从这里开始
top:=IniFile.ReadInteger('top','',0);
Left:=IniFile.ReadInteger('Left','',0);
Width:=IniFile.ReadInteger('Width','',600);
Height:=IniFile.ReadInteger('Height','',480);
BackFileDir:=IniFile.ReadString('BackFileDir','',Curdir+'/BackFile');
IniFile.Free;
end;

这样在2k下没问题,我试过了。
 
我不理解你
IniFile.ReadInteger('top','',0);
读的是什么值,一般来说,ini里面:

[abc]
top=10

我们是用 ReadInteger('abc','top',0)来读的
你的写法 ReadInteger('top','',0); 我不知道对应你ini里面是什么样子的
而且,写入 WriteInteger('top','',0) 在我的机器上是出错的,不能用 ''
 
后退
顶部