2013-07-04 151 views
0

我有一个小应用程序,它将它的设置存储在INI文件中。当另一个窗体打开时,我关闭INI文件描述符:检查IniFile描述符是否打开

procedure TIndexForm.startButtonClick(Sender: TObject); 
var 
    workForm : TForm; 
begin 

    workForm := TworkingForm.Create(nil); 
    workForm.Show(); 

    configIni.Free; // freeing IniFile desciptor 
    IndexForm.Hide(); 

end; 

而我如何检查描述符仍然是打开的?像这样(代码不起作用):

if not Assigned configIni then 
    configIni := TIniFile.Create(configPath); 

在此先感谢。

+1

为什么不直接访问INI文件?即,只需创建/释放足够长的时间来读/写而不是始终保持打开状态? – Jason

+4

'Assigned'检查一个指针是否为零,所以当你释放'configIni'变量时,你还必须将该值设置为零。 – RRUZ

回答

3

欢迎使用Assigned,但它不检查变量是否引用了有效的对象实例。 没有什么。相反,Assigned只是检查一个变量是否为空。为了使一个有效的支票,让你的变量空当你释放对象是指:

configIni.Free; 
configIni := nil; 

,如果你想,你可以使用FreeAndNil辅助函数;它比我上面写的更少。