2009-11-25 2 views
3

Я играл с Inno Setup 5.3.6; пытаясь настроить цвета инсталляторов. Главным образом баннер, который появляется во главе установщика. Но до сих пор мне не повезло найти способ сделать это легко.Изменение цветовой схемы установщика Inno Setup

После прочтения документации я нашел параметры BackColor, BackColor2, BackColorDirection и BackSolid. Но предоставление им разных ценностей до сих пор не дало мне никаких визуальных изменений.

Быстрый пример того, что я пытаюсь сделать

[Setup] 
AppName=My Program 
AppVerName=My Program version 1.4 
DefaultDirName={pf}\My Program 
DefaultGroupName=My Program 

BackColor=$E6B13A 
BackColor2=$E5B13A 
BackSolid=no 
BackColorDirection=lefttoright 

Что мне интересно, кто-нибудь знает, что на самом деле изменяет цвета BackColor и BackColor2? И если нет простого способа изменить цвета; есть ли способ модифицировать градиент верхнего градиента программным путем с помощью сегмента [Code]?

ответ

7

Четыре параметра описаны в Cosmetic разделе документации [Setup] секции в установке помощи Inno . Они делают то, что вы ожидаете, но не для градиента в верхней области мастера настройки, а для заднего фона, которое было принято несколько лет назад. Это считается наследием, но может быть включена путем установки

[Setup] 
... 
WindowVisible=yes 

(значение по умолчанию no). Вы можете попробовать это, чтобы увидеть это в действии, но IMO вы не должны включать это для своих установок, если вы не хотите, чтобы они выглядели довольно устаревшими.

Что касается верхней части мастера: он не предназначен для градиента. Если вы используете инструмент Spy ++ для проверки иерархии окон мастера или откройте текстовый файл Wizard.dfm.txt от источников Inno Setup, вы увидите, что есть окно класса TPanel с набором цветов на цвет окна по умолчанию (clWindow, если вы знаете Delphi, или результат звонка GetSysColor() с константой COLOR_WINDOW). Это сплошной цвет, который вы можете легко изменить, добавив в ваш [Код] раздел:

procedure InitializeWizard(); 
begin 
    WizardForm.MainPanel.Color := clYellow; 
end; 

Я не думаю, что это возможно с текущими версиями установки Inno, чтобы сделать градиент на этом потому что сама панель не имеет холста для рисования, а класс TPaintBox, который может быть создан , может быть создан в нужном месте и использоваться для рисования градиента недоступен (см. список классов в разделе «Справочник по классам поддержки» "раздела документации).

4

Это старый вопрос, но кто-то может споткнуться здесь, как я. Самый элегантный способ изменить цветовые схемы настройки inno - это использовать сторонний инструмент под названием ISSkin

Смежные вопросы