Функция ShouldSkipPage внутри процедуры CurPageChanged
Я хочу, чтобы мои настройки переместились на следующую страницу из CurPageChanged
процедура,
Подробности - я заменяю wpInstalling
с ProgressPage
чтобы сделать установку более аккуратной, после ProgressPage
Готово, я хочу перейти к следующей странице, поэтому я вошел ShouldSkipPage
функция,
но когда я компилирую настройки, я получаю сообщение об ошибке "Идентификатор исключен" на function ShouldSkipPage(curPageId : Integer)
линия.
procedure CurPageChanged(CurPageID: Integer);
var
I: Integer;
begin
case CurPageID of
MOPage.ID:
begin
// this code executes for the first page, so let's setup the buttons however you want
WizardForm.BackButton.Visible := False;
WizardForm.NextButton.Caption := '&Agree and Install';
WizardForm.CancelButton.Caption := '&Abort';
end;
SOPage.ID:
begin
// this code executes for the second page, so let's setup the buttons however you want
SkipSOSwitch := 1;
WizardForm.BackButton.Visible := False;
WizardForm.NextButton.Caption := '&Agree and Install';
WizardForm.CancelButton.Caption := '&Decline';
WizardForm.CancelButton.OnClick := @SkipSOEvent;
end;
FSPage.ID:
begin
WizardForm.NextButton.Caption := SetupMessage(msgButtonFinish);
WizardForm.NextButton.OnClick := @FinishButtonOnClick;
end;
IDPForm.Page.ID:
begin
// show the detail components
idpShowDetails(True);
// and hide the details button
IDPForm.DetailsButton.Visible := False;
end;
wpInstalling:
begin
ProgressPage.SetText('Starting installation...', 'Installing Wise Convert');
ProgressPage.SetProgress(0, 0);
WizardForm.ProgressGauge.Width := 600;
ProgressPage.Show;
try
for I := 0 to 20 do begin
ProgressPage.SetProgress(I, 20);
Sleep(150);
end;
finally
Sleep(3000);
ProgressPage.Hide;
function ShouldSkipPage(curPageId : Integer) : Boolean;
begin
Result := True
end;
end;
// end else
// WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;
//StartTick := GetTickCount;
end;
end;
1 ответ
Эта ошибка возникает из-за того, что вы пытаетесь ShouldSkipPage
Метод события из другого метода. Ваша проблема может быть упрощена до следующего фрагмента кода:
[Code]
procedure CurPageChanged(CurPageID: Integer);
begin
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result := True;
end;
end;
Такое строительство не допускается. Вы не можете объявлять методы событий внутри других. Они никак не могут быть вложенными (хотя ваше объявление фактически не является вложенным). Единственный допустимый способ объявить их:
[Code]
procedure CurPageChanged(CurPageID: Integer);
begin
end;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result := True;
end;
Таким образом, вы должны переместить ShouldSkipPage
Объявление метода события из вашего CurPageChanged
метод события. Если вы хотите, чтобы ваши события как-то взаимодействовали, вам придется использовать некоторые глобально объявленные переменные.