Получите путь в wpSelectDir до того, как будет установлено {приложение} Inno Setup
Я хотел бы получить путь к каталогу установки, когда пользователь нажимает кнопку Далее, когда я нахожусь в wpSelectDir
Inno Setup.
Мне нужно проверить путь, потому что мне нужно проверить путь, и если он не правильный, я не позволю пользователю продолжить.
Моя проблема в том, что постоянная {app}
еще не установлен, потому что он будет установлен после wpSelectDir
и я все еще в.
2 ответа
Использование WizardDirValue
функция поддержки:
Возвращает текущее содержимое элемента управления для редактирования на странице выбора места назначения мастера.
В отличие от
ExpandConstant('{app}')
эта функция не завершится с ошибкой, если вызывается после показа мастера, но до того, как пользователь выберет каталог. Скорее, он вернет имя каталога по умолчанию.
Это более идиоматично, чем WizardForm.DirEdit.Text
,
Хотя внутренне это делает почти то же самое:
RemoveBackslashUnlessRoot(WizardForm.DirEdit.Text)
См. Также Как найти выбранный пользователем путь установки в Inno Setup?
Вы можете сделать что-то вроде этого....
procedure onDirChange(Sender: TObject);
var
currentDir: String;
begin
currentDir := WizardForm.DirEdit.Text;
// your validation goes here....
end;
procedure InitializeWizard;
begin
WizardForm.DirEdit.onChange := @onDirChange;
end;
WizardForm.DirEdit.Text
возвращает текущее значение в DirEdit
Текстовое окно. Процедура onDirChange
вызывается каждый раз, когда изменяется текст в текстовом поле dirEdit. Вы можете использовать это значение для выполнения ваших проверок.