【发布时间】:2017-05-17 02:29:28
【问题描述】:
当我在 Inno Setup 的wpSelectDir 中时,当用户点击Next 时,我想获取安装目录的路径。
我需要检查路径,因为我需要验证路径,如果不正确,我不会让用户继续。
我的问题是常量{app}还没有设置,因为它会在wpSelectDir之后设置,我还在里面。
【问题讨论】:
标签: window installation inno-setup pascalscript
当我在 Inno Setup 的wpSelectDir 中时,当用户点击Next 时,我想获取安装目录的路径。
我需要检查路径,因为我需要验证路径,如果不正确,我不会让用户继续。
我的问题是常量{app}还没有设置,因为它会在wpSelectDir之后设置,我还在里面。
【问题讨论】:
标签: window installation inno-setup pascalscript
使用WizardDirValue support function:
返回向导的选择目标位置页面上编辑控件的当前内容。
与
ExpandConstant('{app}')不同,如果在显示向导之后但在用户选择目录之前调用此函数不会失败。相反,它将返回默认目录名称。
它比WizardForm.DirEdit.Text 更惯用。
虽然在内部它的作用几乎相同:
RemoveBackslashUnlessRoot(WizardForm.DirEdit.Text)
另见How do you find the user-selected install path in 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 文本框中的当前值。每次 dirEdit 文本框中的文本更改时,都会调用过程 onDirChange。您可以使用此值来执行验证。
【讨论】: