【问题标题】:NSIS: Is there a way to set the location of strings or controls such that they are in reference to one another?NSIS:有没有办法设置字符串或控件的位置,以便它们相互引用?
【发布时间】:2010-02-28 09:30:42
【问题描述】:

我目前正在使用 NSIS InstallOptions 插件在我的安装程序中创建一些自定义页面。当您设置要创建的控件的位置时,您必须指定应创建该控件的确切坐标。当您的安装程序是真正静态的时这很好,但我正在采取措施使安装程序国际化,因此我的字符串的位置和长度会因语言而异。

有没有一种方法可以设置字符串/控件的位置,以使它们相互引用?我想将字符串 A 放置在一组精确的坐标中,然后将字符串 B 放在字符串 A 之后,基本上是说“将字符串 B 放在字符串 A 之后”。这可以使用 nsDialog 插件的 InstallOptions 吗?

【问题讨论】:

  • 很高兴接受答案或输入以进行进一步讨论,因为这也是我感兴趣的话题...
  • 抱歉,我从未跟进此事。不幸的是,下面的答案没有回答我的问题。我的问题是关于相对布局位置,下面的答案是绝对位置。我相信我的问题的真正答案是“不,没有办法做到这一点”,但我不确定。

标签: installation nsis


【解决方案1】:

您可以写入自定义页面的 ini 文件以修改位置: 因此,如果我创建这样的自定义页面:

Page custom GetUserParameters_Create GetUserParameters_Leave " - User Parameters"

还有一个像这样的 GetUserParameters.ini 文件:

; Ini file generated by the HM NIS Edit IO designer.
[Settings]
NumFields=2

[Field 1]
Type=Label
Text=User Name:
Left=27
Right=109
Top=9
Bottom=20

[Field 2]
Type=Text
Left=27
Right=170
Top=20
Bottom=33

我的 GetUserParameters_Create 函数可以修改布局,因为安装选项将 ini 文件提取到本地用户的 pluginsdir。在完成我想要的修改后,我使用 INSTALLOPTIONS_DISPLAY 加载 ini 文件:

WriteINIStr "$PLUGINSDIR\GetUserParameters.ini" "Field 2" "Left" "30"
!insertmacro INSTALLOPTIONS_DISPLAY "GetUserParameters.ini"

【讨论】:

    猜你喜欢
    • 2019-06-24
    • 2019-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-28
    • 2013-01-01
    • 2020-07-14
    • 1970-01-01
    相关资源
    最近更新 更多