Inno设置:Ready页面自定义布局

时间:2015-11-03 04:28:51

标签: inno-setup

用户体验设计师的电话。我正在为Ready Page重新设计布局,使其类似于我的绘图中的欢迎页面:

UX Designer wants Ready Page to look more like Welcome page

上面的两张幻灯片是标准页面。底部的那个是重新设计的Ready Page。如何重新定位所有控件和文本标签以实现此目的?

P.S。 我接受了Martin Prikryl的答案,最重要的部分是Wizard.dfm.txt的结构。确切的答案并不完全适用,部分原因是上面的草图简化了升级安装项目以与Inno Setup的Graphic Installer插件一起使用的问题。

1 个答案:

答案 0 :(得分:2)

TWizardForm class的结构类似于(.dfm格式):

object OuterNotebook: TNewNotebook
  object WelcomePage: TNewNotebookPage
    object WizardBitmapImage: TBitmapImage
    object WelcomeLabel2: TNewStaticText
    object WelcomeLabel1: TNewStaticText
  end
  object InnerPage: TNewNotebookPage
    object Bevel1: TBevel
    object InnerNotebook: TNewNotebook
      ...
      object ReadyPage: TNewNotebookPage
        object ReadyMemo: TNewMemo
        object ReadyLabel: TNewStaticText
      end
      ...
    end
    object MainPanel: TPanel
      object WizardSmallBitmapImage: TBitmapImage
      object PageDescriptionLabel: TNewStaticText
      object PageNameLabel: TNewStaticText
    end
  end
end

注意"欢迎"页面与层次结构的层次不同于" Ready"页。

有关详细信息,请参阅Wizard.dfm

InitializeWizard event function

中执行您的要求
  • WizardBitmapImage;
  • 上创建ReadyPage的副本
  • 相应缩小ReadyMemoReadyLabel(使用WelcomeLabel2.Left.Width作为指南。

当用户进入" Ready"页面,在CurPageChanged事件函数中(使用CurPageID = wpReady)。

  • 隐藏MainPanel(可能还有Bevel1);
  • 调整InnerPage的大小以覆盖MainPanel留下的空间。您可以将其设置为与其父InnerPage一样大。

(如果用户按下"返回"并撤消此操作。)