2013-07-04 149 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輔助函數;它比我上面寫的更少。