为什么在inno设置中检查WizardForm是否为空?

时间:2013-09-16 08:31:08

标签: inno-setup pascal pascalscript

为什么这不起作用?

if WizardForm <> nil then
  WizardForm.StatusLabel.Caption := 'blah'
else
  Log('WizardForm not initialized yet!');

我得到了这个例外:

Runtime Error (at 15:118):
Internal error: An attempt was made to access WizardForm before it has been created.

我知道WizardForm尚未初始化,这就是为什么我检查nil,检查无效! 我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

WizardForm变量的每次访问都会发生这种情况,包括检查(如果已分配)。只需将代码从InitializeSetup事件移至InitializeWizard

答案 1 :(得分:1)

  

还有其他方法可以检查null吗?

这个怎么样:

function IsWizardFormCreated(): Boolean;
begin
  Result := True;
  try
    WizardForm;
  except
    Result := False;
  end;
end;