» Страница выбора компонентов установки

K.A.V.
www.oszone.net
22.02.2010
Автор: kotkovets
Последнее обновление: 5.09.2010


Страница выбора компонентов установки включается командой MUI_PAGE_COMPONENTS

!insertmacro MUI_PAGE_COMPONENTS

  

Команда MUI_COMPONENTSPAGE_SMALLDESC создает маленькую область описания на странице.
Используйте этот параметр для большого количества разделов и когда вы не нуждаетесь в больших описаниях.

!define MUI_COMPONENTSPAGE_SMALLDESC

  

Команда MUI_COMPONENTSPAGE_NODESC позволяет не использовать описание.
!define MUI_COMPONENTSPAGE_NODESC

Команда MUI_COMPONENTSPAGE_TEXT_TOP помещает текст над списком компонентов.
define MUI_COMPONENTSPAGE_TEXT_TOP "Здесь может быть ваш текст""

Команда MUI_COMPONENTSPAGE_TEXT_INSTTYPE помещает текст слева от выпадающего списока с фиксированными значениями.
!define MUI_COMPONENTSPAGE_TEXT_INSTTYPE "Выберите установку:"

Команда MUI_COMPONENTSPAGE_TEXT_COMPLIST помещает текст слева от списка компонентов.
!define MUI_COMPONENTSPAGE_TEXT_COMPLIST "Выберите компонеты для установки:"

Команда MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE изменяет имя контейнера группы.
!define MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE "Моё описание"

Команда MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO помещает текст в контейнер группы
!define MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO "При наведении мышки на компонент,$\n$\rВы увидите описание компонента!"
Подробней об описании компонентов читайте в главе Создание своего инсталлятора на NSIS. Секции и выбор компонентов

Команда MUI_COMPONENTSPAGE_CHECKBITMAP изменяет рисунок с изображениями чекбоксов в дереве компонентов.
!define MUI_COMPONENTSPAGE_CHECKBITMAP "${NSISDIR}\Contrib\Graphics\Checks\colorful.bmp"
По умолчанию: ${NSISDIR}\Contrib\Graphics\Checks\modern.bmp

  


Можно также изменять цвет и шрифт в "окне" списка компонентов.
!include "MUI2.nsh"

!define TVM_SETBKCOLOR 0x111D     #Window Message Background
!define TVM_SETTEXTCOLOR 0x111E   #Window Message Text

!define MUI_COMPONENTSPAGE_SMALLDESC
!define MUI_COMPONENTSPAGE_TEXT_TOP "Здесь может быть ваш текст"
!define MUI_COMPONENTSPAGE_TEXT_INSTTYPE "Выберите установку:"
!define MUI_COMPONENTSPAGE_TEXT_COMPLIST "Выберите компонеты для установки:"
!define MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE "Моё описание"
!define MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO "При наведении мышки на компонент,$\n$\rВы увидите описание компонета!"
!define MUI_COMPONENTSPAGE_CHECKBITMAP "${NSISDIR}\Contrib\Graphics\Checks\colorful.bmp"

!define MUI_PAGE_CUSTOMFUNCTION_SHOW "CompShowProc"  #функция будет выполнена на стр. компонентов
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"
InstType "Полная установка"

Name "Программы"
OutFile COMPONENTSPAGE.exe

Function CompShowProc
 FindWindow $0 "#32770" "" $HWNDPARENT
 GetDlgItem $0 $0 1032
 SendMessage $0 ${TVM_SETBKCOLOR} 0 0xFFF0F0     #здесь цвет фона списка компонетов
 SendMessage $0 ${TVM_SETTEXTCOLOR} 0 0x2828FF   #здесь цвет текста компонентов
 CreateFont $1 "Comic Sans Ms" 9 0               #создаем шрифт
 SendMessage $0 ${WM_SETFONT} $1 0               #применяем шрифт
FunctionEnd

SubSection /e "Компоненты"

Section "Компонент 1" test
 SectionIn 1
SectionEnd

Section /o "Компонент 2" test1
 SectionIn 1
SectionEnd

Section "Компонент 3" test2
 SectionIn 1
 SectionIn RO
SectionEnd

SubSectionEnd