以下代码
var aIniFile: TIniFile;
procedure ASpecialEvent (aIniFile: TIniFile );
begin
....
if (aIniFile <> nil) then
begin
if fileexists(aIniFile.filename) then // Error is here ....
begin
......
end;
end;
end;
// mainformcode
// i Need to call this procedure even the Tini file is not yet created
ASpecialEvent(ainifile);
因访问冲突而失败。 infile不是Nil但我无法访问filename属性。如果文件有效,如何检查更有效?
答案 0 :(得分:1)
对此的解释如下:
aIniFile
尚未初始化,因此定义不明确。aIniFile
已初始化,但指的是已被销毁的对象。aIniFile
是记录或类的成员,隐式Self
指针无效。这个选项似乎不太可能。不可能更具体地进行诊断,但上述之一是导致错误的原因。
从评论来看,看起来你没有初始化局部变量aIniFile
。在这种情况下,第1项适用。我怀疑你期望局部变量自动初始化。事实并非如此:Are delphi variables initialized with a value by default?
如果您希望nil
表示该对象尚未实例化,则必须明确初始化aIniFile
至nil
。