Inno Setup Disable Next按钮使用多个验证表达式(当输入值与多个值中的一个匹配时)



我有这个代码在工作。。。

procedure ValidatePage;
begin 
WizardForm.NextButton.Enabled :=
(CompareText(InputPage6.Values[EditIndex2], 'Admin') <> 0);
end;
procedure EditChange(Sender: TObject);
begin
ValidatePage;
end;
procedure PageActivate(Sender: TWizardPage);
begin
ValidatePage;
end;

但我想添加更多的验证。

示例:如果您不允许使用EX12345EX54321

WizardForm.NextButton.Enabled :=
(CompareText(InputPage6.Values[EditIndex2], 'EX12345') <> 0);

WizardForm.NextButton.Enabled :=
(CompareText(InputPage6.Values[EditIndex2], 'EX54321') <> 0);

如果我理解正确,您将询问如何将多个逻辑表达式组合为一个。使用布尔运算符,特别是and运算符。

procedure ValidatePage;
begin 
WizardForm.NextButton.Enabled :=
(CompareText(InputPage6.Values[EditIndex2], 'EX12345') <> 0) and
(CompareText(InputPage6.Values[EditIndex2], 'EX54321') <> 0);
end;

特别是如果你要添加更多的选项,你可以通过首先将值存储到本地变量中来优化代码:

procedure ValidatePage;
var
Value: string;
begin 
Value := InputPage6.Values[EditIndex2];
WizardForm.NextButton.Enabled :=
(CompareText(Value, 'EX12345') <> 0) and
(CompareText(Value, 'EX54321') <> 0);
end;

最新更新