Inno setup 复选框::一次选择一个

Inno setup 复选框::一次选择一个,inno-setup,Inno Setup,这是inno安装程序的代码部分。我的目的是在一次选中一个复选框的地方设置两个复选框。 但单击第一个复选框时,此代码返回错误 [守则] procedure CheckBoxOnClick(Sender: TObject); var Box2,CheckBox: TNewCheckBox; begin if CheckBox.Checked then ///error:"Could not call proc" [sud it be global if then how to or what t

这是inno安装程序的代码部分。我的目的是在一次选中一个复选框的地方设置两个复选框。 但单击第一个复选框时,此代码返回错误

[守则]

procedure CheckBoxOnClick(Sender: TObject);
var
Box2,CheckBox: TNewCheckBox;
begin
if CheckBox.Checked then   ///error:"Could not call proc" [sud it be global if then how to or what to change?]
BEGIN
   CheckBox.State := cbUnchecked;
   Box2.State := cbChecked;
END else
BEGIN
   CheckBox.State := cbChecked;
   Box2.State := cbUnchecked;
END;
end;

procedure Box2OnClick(Sender: TObject);
var
Box2,CheckBox: TNewCheckBox;
begin
if Box2.Checked then              ///error:same
BEGIN
   CheckBox.State := cbChecked;
   Box2.State := cbUnchecked;
END else
BEGIN
   CheckBox.State := cbUnchecked;
   Box2.State := cbChecked;
END;
end;

procedure CreateTheWizardPages;
var
  Page: TWizardPage;
  Box2,CheckBox: TNewCheckBox;
begin
  { TButton and others }

  Page := CreateCustomPage(wpWelcome, '', '');

  CheckBox := TNewCheckBox.Create(Page);
  CheckBox.Top :=ScaleY(8)+ScaleX(50);
  CheckBox.Width := Page.SurfaceWidth;
  CheckBox.Height := ScaleY(17);
  CheckBox.Caption := 'Do this';
  CheckBox.Checked := True;
  CheckBox.OnClick := @CheckBoxOnClick;
  CheckBox.Parent := Page.Surface;

  Box2 := TNewCheckBox.Create(Page);
  Box2.Top :=ScaleY(8)+ScaleX(70);
  Box2.Width := Page.SurfaceWidth;
  Box2.Height := ScaleY(17);
  Box2.Caption := 'No,Thanks.';
  Box2.Checked := False;
  Box2.OnClick := @Box2OnClick;
  Box2.Parent := Page.Surface;
end;


procedure InitializeWizard();
//var
begin
  { Custom wizard pages }
  CreateTheWizardPages;
end;

请告诉我在哪里更改..

错误的原因是您正在引用该方法中本地定义的复选框。此时尚未创建复选框。这意味着您的呼叫复选框。复选框未定义时选中,很可能为零

复选框的每个声明表示一个新变量,不引用具有相同名称的其他变量。这是由于范围规则


解决问题的一个方法是删除Box2的本地声明,并在每个方法中选中复选框,然后全局声明它们。

这是什么语言?看起来像帕斯卡。在一般的UI术语中,复选框彼此不相关,但单选按钮是分组的,并且相互排斥。也许你想要单选按钮。语言是PascalScript,这是Inno安装程序的语言。