Inno Setup Отключить кнопку «Далее» с использованием нескольких выражений проверки (когда входное значение совпадает с одним из нескольких значений) - PullRequest
0 голосов
/ 13 декабря 2018

У меня работает этот код ...

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;

Но я хочу добавить больше проверок.

Пример: Если вы не разрешили EX12345 или EX54321.

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

и

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

1 Ответ

0 голосов
/ 13 декабря 2018

Если я вас правильно понимаю, вы спрашиваете, как объединить несколько логических выражений в одно.Используйте логические операторы , в частности оператор * 1003. *.

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;
...