neo*_*ant 2 delphi pascal inno-setup
这是来自inno setup的代码部分.我的目的是使两个Checkbox在一个时间被选中.但是这段代码返回错误.
[代码]部分:
procedure CheckBoxOnClick(Sender: TObject);
var
Box2,CheckBox: TNewCheckBox;
begin
if CheckBox.Checked then
CheckBox.State := cbUnchecked;
Box2.State := cbChecked;
else //THIS LINE RETURNS AN ERROR: "Identifier Expected."
CheckBox.State := cbChecked;
Box2.State := cbUnchecked;
end;
procedure Box2OnClick(Sender: TObject);
var
Box2,CheckBox: TNewCheckBox;
begin
if Box2.Checked then
CheckBox.State := cbChecked;
Box2.State := cbUnchecked;
else //same error
CheckBox.State := cbUnchecked;
Box2.State := cbChecked;
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;
Run Code Online (Sandbox Code Playgroud)
请告诉我在哪里改变..
在Pascal之后then
,else
必须遵循单个语句或块.
这是解析器解释代码的方式:
CheckBox.State := cbUnchecked;
执行该行.该声明if
完成了该条款.Box2.State := cbChecked;
将永远执行.else
不属于任何当前打开的if
语句- > 语法错误您必须将代码括在一个块中,如下所示:
procedure CheckBoxOnClick(Sender: TObject);
var
Box2,CheckBox: TNewCheckBox;
begin
if CheckBox.Checked then
BEGIN
CheckBox.State := cbUnchecked;
Box2.State := cbChecked;
END else
BEGIN
CheckBox.State := cbChecked;
Box2.State := cbUnchecked;
END;
end;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3344 次 |
最近记录: |