Inno setup 在InputFilePage(CreateInputFilePage)上未选择文件时,如何禁用下一个按钮?

Inno setup 在InputFilePage(CreateInputFilePage)上未选择文件时,如何禁用下一个按钮?,inno-setup,pascalscript,Inno Setup,Pascalscript,我的Inno安装程序有一个自定义的“输入文件页”,它是使用CreateInputFilePage创建的 在用户正确选择文件路径之前,如何禁用此页面中的NextButton 换句话说,当文件选择表单为空时,我需要使NextButton不可点击,当文件选择表单为空时,我需要使其可点击 谢谢。最简单的方法是使用验证输入,并在验证失败时显示错误消息 var FilePage:TInputFileWizardPage; 过程初始化Wizard(); 开始 FilePage:=CreateInputFile

我的Inno安装程序有一个自定义的“输入文件页”,它是使用
CreateInputFilePage
创建的

在用户正确选择文件路径之前,如何禁用此页面中的
NextButton

换句话说,当文件选择表单为空时,我需要使
NextButton
不可点击,当文件选择表单为空时,我需要使其可点击

谢谢。

最简单的方法是使用验证输入,并在验证失败时显示错误消息

var
FilePage:TInputFileWizardPage;
过程初始化Wizard();
开始
FilePage:=CreateInputFilePage(wpSelectDir,‘标题’、‘说明’、‘子标题’);
Add('prompt'、'*.'、'.dat');
结束;
函数NextButtonClick(CurPageID:Integer):布尔值;
开始
结果:=真;
如果(CurPageID=FilePage.ID)和
(长度(FilePage.Edits[0].Text)=0)然后
开始
MsgBox('请选择一个文件',mbError,MB_OK);
WizardForm.ActiveControl:=文件页。编辑[0];
结果:=假;
结束;
结束;

如果您真的想在输入更改时更新“Next”(下一步)按钮状态,则需要更复杂一些:

procedure FilePageEditChange(发送方:TObject);
开始
WizardForm.NextButton.Enabled:=(长度(TEdit(Sender.Text)>0);
结束;
程序文件页面激活(发送方:TWizardPage);
开始
FilePageEditChange(TInputFileWizardPage(发件人).Edits[0]);
结束;
过程初始化Wizard();
变量
页面:TInputFileWizardPage;
编辑:TEdit;
开始
页面:=CreateInputFilePage(wpSelectDir,'标题','说明','子标题');
{要在进入页面时更新下一个按钮状态}
Page.OnActivate:=@FilePageActivate;
编辑:=Page.Edits[Page.Add('prompt','*.'','.dat');
{要在编辑内容更改时更新下一个按钮状态}
Edit.OnChange:=@FilePageEditChange;
结束;