У меня есть обычное действие, которое я вставил перед диалоговым окном SetupProgress
, в котором отображается диалоговое окно AskOptions
, предлагающее некоторые варианты ярлыков.Использование кнопки диалога назад
По большей части, я вел себя так, как ожидалось, но есть одно поведение, которое я не могу понять. Если пользователь нажимает кнопку «Назад», я хочу, чтобы он перешел к предыдущему диалоговому окну и не продолжал диалог SetupProgress
. Я использую следующий код для своего диалога (минус код, который на самом деле создает ярлыки).
function MyFunction(hMSI)
NUMBER nResult;
STRING szMsg, szText1, szText2, szText3;
NUMBER nReturn, nValue, nvCheck1, nvCheck2, nvCheck3;
begin
SetDialogTitle(DLG_ASK_OPTIONS, "More Options");
szMsg = "Select from the additional options below.";
szText1 = "Shortcut option 1";
szText2 = "Shortcut option 2";
szText3 = "Shortcut option 3";
nvCheck1 = TRUE;
nvCheck2 = TRUE;
nvCheck3 = FALSE;
// Display the check box (NONEXCLUSIVE) dialog.
nValue = NONEXCLUSIVE;
nResult = AskOptions (nValue, szMsg,
szText1, nvCheck1,
szText2, nvCheck2,
szText3, nvCheck3);
//This is the troublesome code... Not sure how to handle this...
//if (nResult = BACK) then
// goto [Where?];
//endif;
end;
Как вы можете видеть, есть строка в нижней части, где я мог бы обрабатывать кнопку назад, я просто не имею ни малейшего понятия о том, как на самом деле вернуться к предыдущему диалогу.
Определенно вернулся к использованию диалогов MSI. И с тех пор имел успех. Причина, по которой я пошел в диалоги InstallScript, - это то, что я изначально использовал диалоги MSI, но неправильно понял, как работают события. Теперь все разобралось. –