[英]Pascal and Delphi Syntax Error?
这是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;
请告诉我在哪里更改。
在帕斯卡尔之后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;
很简单。 在then
之后添加一个begin ... end
子句。
if CheckBox.Checked then
BEGIN
CheckBox.State := cbUnchecked;
Box2.State := cbChecked;
END
else
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.