Inno Setup:就绪页面自定义布局

问题描述 投票:0回答:1

UX 设计师的号召。我正在重新设计就绪页面的布局,使其与我绘图中的欢迎页面类似:

上面两张幻灯片是标准页面。底部的页面是经过重新设计的“就绪页面”。如何重新定位所有控件和文本标签来实现这一目标?

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

inno-setup
1个回答
4
投票

TWizardForm
的结构类似于(.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

请注意“欢迎”页面与“就绪”页面位于不同的层次结构级别。

有关完整详细信息,请参阅

Wizard.dfm


要执行您要求的操作,请在

InitializeWizard
事件函数中:

  • WizardBitmapImage
    上创建
    ReadyPage
    的副本;
  • 相应地缩小
    ReadyMemo
    ReadyLabel
    (使用
    WelcomeLabel2.Left
    .Width
    作为指导)。

当用户进入“就绪”页面时,在

CurPageChanged
事件功能中(使用
CurPageID = wpReady
)。

  • 隐藏
    MainPanel
    (也可能是
    Bevel1
    );
  • 调整
    InnerPage
    的大小以拉伸到
    MainPanel
    留下的空间。您可以将其设置为与其父级
    InnerPage
    一样大。

(如果用户按“后退”则撤消此操作)。

© www.soinside.com 2019 - 2024. All rights reserved.