我可以以某种方式将 TInput/TOutput 页面作为 Inno Setup 中的一个参数传递给函数吗?

问题描述

我想知道我是否可以通过TInputQueryWizardPageTInputoptionWizardPageTInputDirWizardPageTInputFileWizardPageTOutputMsgWizardPageTOutputMsgMemoWizardPage、{{1} } 页面一个函数作为一个参数?

我需要这样做的原因是,根据情况,我必须将这些页面之一传递给内部包含 TOutputProgressWizardPage 语句的函数,该语句决定必须对特定页面进行哪些更改,而我不这样做' t想传递7个参数。

这是一个例子:

case

所以,正如你所看到的,我需要为不同类型的页面更改不同的内容,但我不想传递这么多参数

解决方法

如果您希望该功能在这些页面中的任何一个上运行,则必须仅使用它们的通用 API/功能。它们的通用 API/功能是它们的基类 TWizardPage:

procedure DoSomethingWithAnyCustomPage(WizardPage: TWizardPage);
begin
  // ...
end;

如果很多情况下,您还可以通过使用相同/共享的页面事件实现来实现通用功能。