1

为什么这不起作用?

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 的原因,检查不起作用!我在这里做错了什么?

4

2 回答 2

1

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

这个怎么样:

function IsWizardFormCreated(): Boolean;
begin
  Result := True;
  try
    WizardForm;
  except
    Result := False;
  end;
end;
于 2014-11-14T14:45:22.080 回答
1

WizardForm如果分配了变量,包括检查在内的变量的每次访问都会发生这种情况。只需将您的代码从InitializeSetup事件移动到InitializeWizard.

于 2013-09-16T08:34:19.890 回答