Inno setup Inno Setup,是否可以在运行时在页面上再次调用Initialize()?

Inno setup Inno Setup,是否可以在运行时在页面上再次调用Initialize()?,inno-setup,Inno Setup,我在InitializeWizard()中创建了一个TInputDirWizardPage,例如 DataFolderPage: TInputDirWizardPage; DataFolderPage := CreateInputDirPage(wpSelectDir, 'Caption', 'Description', 'Caption', True, 'mydatafolder'); 在页面创建时,我将参数AppendDir设置为True。 稍后,在运行时,在函数NextButtonCli

我在
InitializeWizard()中创建了一个
TInputDirWizardPage
,例如

DataFolderPage: TInputDirWizardPage;
DataFolderPage := CreateInputDirPage(wpSelectDir, 'Caption', 'Description', 'Caption', True, 'mydatafolder');
在页面创建时,我将参数AppendDir设置为True。 稍后,在运行时,在函数
NextButtonClick()
中,我决定参数AppendDir必须是False,但如果我尝试调用
INITIALIZE()
,编译将失败,并显示消息未知标识符“INITIALIZE”

DataFolderPage.Caption := 'new caption'; // compiles ok
DataFolderPage.Initialize('new SubCaption', False, 'blah'); // Unknown identifier 'INITIALIZE'

谁知道我为什么不能再次调用方法
Initialize()

类(及其基类)没有公共
Initialize
方法(请参阅帮助中的支持类参考),并且它没有设置
AppendDir
值的属性


最好的方法是将false传递给页面,使其不附加目录,并在从页面检索输入的路径时自己添加该目录。

我想您会发现,尽管InnoSetup非常复杂,但它并没有那么灵活。它倾向于喜欢以“正确的方式”做事情,而你想要的更多的是一种黑客行为。祝你好运。我不知道Pascal,但在搜索了非源代码后,我发现(ScriptDlg.pas)
TInputDirWizardPage
是一个
类(TWizardPage)
过程初始化(const suboption:String;const AppendDir:Boolean;const NewFolderName:String)是公共的。为什么这不起作用?有帕斯卡大师吗?