NSIS: есть ли способ установить расположение строк или элементов управления таким образом, чтобы они ссылались друг на друга?

В настоящее время я использую плагин NSIS InstallOptions для создания некоторых пользовательских страниц в моем установщике. Когда вы устанавливаете расположение элементов управления, которые хотите создать, вы должны указать точные координаты того места, где этот элемент управления должен быть создан. Это нормально, когда ваш установщик действительно статичен, но я делаю шаг к интернационализации установщика, и, следовательно, расположение и длина моих строк будут различаться в зависимости от языка.

Есть ли способ установить расположение строк/элементов управления таким образом, чтобы они ссылались друг на друга? Я хочу поместить строку A в точный набор координат, а затем поместить строку B после строки A, по сути говоря, «поместить строку B после строки A». Возможно ли это с помощью плагинов InstallOptions nsDialog?


person dreadpirateryan    schedule 28.02.2010    source источник
comment
Было бы неплохо принять ответ или вклад для дальнейшего обсуждения, так как это также тема, которая меня интересует...   -  person HX_unbanned    schedule 30.07.2012
comment
Извините, я никогда не следил за этим. Ответ ниже, к сожалению, не отвечает на мой вопрос. Мой вопрос касается относительных позиций макета, а ответ ниже - абсолютные позиции. Я считаю, что реальный ответ на мой вопрос - нет, это невозможно сделать, но я не знаю этого наверняка.   -  person dreadpirateryan    schedule 16.11.2012


Ответы (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 локального пользователя. После внесения необходимых изменений я загружаю ini-файл с помощью INSTALLOPTIONS_DISPLAY:

WriteINIStr "$PLUGINSDIR\GetUserParameters.ini" "Field 2" "Left" "30"
!insertmacro INSTALLOPTIONS_DISPLAY "GetUserParameters.ini"
person AaronLS    schedule 03.03.2010