Как определить, был ли объект создан в Inno Setup Pascal Script?

Как мне проверить, что мой флажок был создан/сконструирован и может использоваться для проверки, отмечен ли он?

[Code]

var
  MyCheckBoxThatMayExistOrNot: TNewCheckBox;

procedure Whatever();
begin
  { Check if MyCheckBoxThatMayExistOrNot exists and checked }
  if ????? and MyCheckBoxThatMayExistOrNot.Checked then
  begin
    ...
  end;
end;

ТИА!!


person user3161924    schedule 03.07.2020    source источник


Ответы (1)


Сравните значение переменной с nil:

if (MyCheckBoxThatMayExistOrNot <> nil) and MyCheckBoxThatMayExistOrNot.Checked then

Эквивалентным является использование Assignedфункции:

if Assigned(MyCheckBoxThatMayExistOrNot) and MyCheckBoxThatMayExistOrNot.Checked then

Возможно, вы захотите явно инициализировать переменную значением nil в InitializeSetup или < a href="https://jrsoftware.org/ishelp/index.php?topic=scriptevents&anchor=InitializeWizard" rel="nofollow noreferrer">InitializeWizard, но в этом нет необходимости: Инициализированы ли глобальные переменные в Pascal Script нулями?

person Martin Prikryl    schedule 03.07.2020