2014-02-11 5 views
1

Я хочу создать мой инсталлятор-установщик, используя vcl-стили или isskin. Я попробовал оба, и это выглядит потрясающе. Единственная проблема заключается в том, что, к сожалению, диалоговое окно «Выбрать язык установки» показывается до запуска события InitializeSetup (где загружается скин).Выберите язык установки Диалог

[Files] 
Source: ..\VclStylesinno.dll; DestDir: {app}; Flags: dontcopy 
Source: ..\Styles\Amakrits.vsf; DestDir: {app}; Flags: dontcopy 

[Code] 
// Import the LoadVCLStyle function from VclStylesInno.DLL 
procedure LoadVCLStyle(VClStyleFile: String); external '[email protected]:VclStylesInno.dll stdcall'; 
// Import the UnLoadVCLStyles function from VclStylesInno.DLL 
procedure UnLoadVCLStyles; external '[email protected]:VclStylesInno.dll stdcall'; 

function InitializeSetup(): Boolean; 
begin 
    ExtractTemporaryFile('Amakrits.vsf'); 
    LoadVCLStyle(ExpandConstant('{tmp}\Amakrits.vsf')); 
    Result := True; 
end; 

procedure DeinitializeSetup(); 
begin 
    UnLoadVCLStyles; 
end; 

Так что на данный момент невозможно применить стиль к этому диалоговому окну. Предполагая, что нет способа установить активный язык (насколько я знаю, если есть, я создам специальную форму выбора языка), я не вижу никакого решения. Мне нравится умение хорошо настраивать мою настройку, поэтому теперь вы ищете все возможные способы обхода. Есть ли у кого-нибудь идеи, кроме forking issrc и перестроить его для моих нужд?

+0

RRUZ имеет [ 'же задаче'] (http://stackoverflow.com/q/21612920/960757) как вы. Вам нужно будет создать собственную версию Inno Setup. – TLama

+0

Уже forked issrc. Но потом я на мгновение остановился на удивление - может быть, его быстрее создать собственную локализацию, да? Любые подсказки, где можно поменять вещи, я упомянул, что вы являетесь issrc contributore, TLama? – mishander

+0

Создание собственной локализации - не выход, потому что некоторые вещи внутренне читаются из языковых файлов и те, которые вы не можете перехватить (например, все диалоговые окна сообщений). Я не являюсь автором, но в прошлом я сделал множество пользовательских сборок Inno Setup. Что вам нужно сделать, это переместить ['language intialization'] (https://github.com/jrsoftware/issrc/blob/is-5_5_4/Projects/Main.pas#L3040) где-нибудь после инициализации [' script script '] (https://github.com/jrsoftware/issrc/blob/is-5_5_4/Projects/Main.pas#L3116). Но будьте очень осторожны. Это может сломать что-то ... Нет времени, чтобы проверить это глубже ... – TLama

ответ

0

С помощью и мои настройки скрипта:

[setup] section: 
; When set to auto, the dialog will only be displayed if Setup does not find a language identifier match 
ShowlanguageDialog=yes 

Если установлено значение Нет никакого диалогового языка не покажет

+0

Это правда, но проблема в том, что нет возможности предоставить свой собственный язык. Диалог, который будет оформлен в стиле. – TLama

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