Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]
Антон_Мураткин@vk
06-05-2014, 21:51
Вот ещё одна проблема с кнопками :( после установки они появляются так же в центре где у них интересно менять положения кнопок
Как сделать чтобы полностью инсталлятор менялся, а то оно меняется только на одной странице? »
Dodakaedr, В коде нужно прописывать.
procedure ChangeLang();
begin
WizardForm.BackButton.Caption:= CustomMessage(lang+'ButtonBack');
WizardForm.NextButton.Caption:= CustomMessage(lang+'ButtonNext');
WizardForm.CancelButton.Caption:= CustomMessage(lang+'ButtonCancel');
WizardForm.Caption:= FmtMessage(CustomMessage(lang+'SetupWindowTitle'), ['{#SetupSetting('AppName')}']);
WizardForm.WelcomeLabel1.Caption:= FmtMessage(CustomMessage(lang+'WelcomeLabel1'), ['{#SetupSetting('AppName')}']);
WizardForm.WelcomeLabel2.Caption:= FmtMessage(CustomMessage(lang+'WelcomeLabel2'), ['{#SetupSetting('AppName')}', '{#SetupSetting('AppVersion')}']);
end;
Dodakaedr
06-05-2014, 22:22
В коде нужно прописывать. »
В вашем примере так и прописано, я решил для начала изменить кнопки (русский по умолчанию) и в итоге получилось что на первой странице при нажатии на кнопку смены языка надписи меняются на английский, перехожу на следующую страницу опять русские надписи... вот такая проблема.
Антон_Мураткин@vk
06-05-2014, 22:39
Shift85, Подскажи пожалуйста если знаешь где. Во время установки чего либо кнопка отменить находится по середине. Так-же кнопка завершить тоже по середине. Где их менять? Всё вроде облазил все скрипты которые есть в этом инсталляторе.
Во время установки чего либо кнопка отменить находится по середине. Так-же кнопка завершить тоже по середине »
Антон_Мураткин@vk, Координаты поменяй они одинаковые.
hBackBtn:=BtnCreate(WizardForm.Handle,203,277,77,23,ExpandConstant('{tmp}\button.png'),18,False);
hCancelBtn:=BtnCreate(WizardForm.Handle,203,277,77,23,ExpandConstant('{tmp}\button.png'),18,False);
перехожу на следующую страницу опять русские надписи... »
Dodakaedr, Давай скрипт погляжу.
Dodakaedr
06-05-2014, 23:12
Давай скрипт погляжу. »
Это с вашего примера: [setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}
ShowLanguageDialog=auto
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
Name: eng; MessagesFile: compiler:Default.isl
[CustomMessages]
; Русский
rusButtonBack=< &Назад
rusButtonNext=&Далее >
rusButtonCancel=Отмена
rusSetupWindowTitle=Установка — %1
; English
engButtonBack=< &Back
engButtonNext=&Next >
engButtonCancel=Cancel
engSetupWindowTitle=Setup — %1
[ Code]
var
lang: String;
langBtn: TButton;
procedure ChangeLang();
begin
WizardForm.BackButton.Caption:= CustomMessage(lang+'ButtonBack');
WizardForm.NextButton.Caption:= CustomMessage(lang+'ButtonNext');
WizardForm.CancelButton.Caption:= CustomMessage(lang+'ButtonCancel');
WizardForm.Caption:= FmtMessage(CustomMessage(lang+'SetupWindowTitle'), ['{#SetupSetting('AppName')}']);
end;
procedure LangBtnClick(Sender: TObject);
begin
if lang='rus' then begin
lang:= 'eng';
langBtn.Caption:= 'рус';
end else begin
lang:= 'rus';
langBtn.Caption:= 'eng';
end;
ChangeLang();
end;
procedure InitializeWizard;
begin
langBtn:= TButton.Create(WizardForm);
with langBtn do begin
SetBounds(10,WizardForm.CancelButton.Top,30,WizardForm.CancelButton.Height)
OnClick:= @LangBtnClick;
Parent:= WizardForm;
end;
if ActiveLanguage='rus' then begin
lang:= 'rus';
langBtn.Caption:= 'eng';
end else begin
lang:= 'eng';
langBtn.Caption:= 'рус';
end;
end;
Напоминаю: я покамись тестирую кнопки.
Shift85, И обратите внимание что WizardForm.Caption соответствует выбранному языку, а кнопки нет.
Dodakaedr, А так у меня на Юникоде работает.
Dodakaedr
06-05-2014, 23:44
А так у меня на Юникоде работает. »
У меня ни на уникоде ни в анси не работает...
У меня ни на уникоде ни в анси не работает »
Dodakaedr, Значит не судьба придеться юзать оконный режим вот. :lol:
Как из одного архива распаковывать только нужный компонент?
Например папка ru, en, ru\en находится в архиве data1
ru - полностью русский является компонентом 1
en - полностью английский является компонентом 2
ru\en - является компонентом 3
Не могли бы вы указать, где и как именно это прописывать?
#ifdef Data1
if not ISExec( 0, 0, 0, ExpandConstant('{tmp}\unarc.exe'), ExpandConstant('x -o+ -cfg"{tmp}\arc.ini" -w"{app}" -p"password" -dp"{app}" "{src}\data1.bin"'), ExpandConstant('{tmp}'), '...',false) then break;
#endif
Или в if not ISExec это нельзя реализовать? (Как понял из справки за это отвечает ExtractedPath, а в этой функции её нету)
Нужно именно через if not ISExec
Если нельзя реализовать, то как это сделать через if not ISArcExtract, используя unarc.exe и arc.ini?
sergey3695
07-05-2014, 09:41
Caratel, в справке про ISArcExtract это есть. поверь. надо лишь прочитать.
Антон_Мураткин@vk
07-05-2014, 13:26
Антон_Мураткин@vk, Координаты поменяй они одинаковые.
Код:
hBackBtn:=BtnCreate(WizardForm.Handle,203,277,77,23,ExpandConstant('{tmp}\button.png'),18,False);
hCancelBtn:=BtnCreate(WizardForm.Handle,203,277,77,23,ExpandConstant('{tmp}\button.png'), »
А где это менять? Если в Button'e то там всё уже изменено, но отмена и завершить всё равно по центру. В других что то такое и не нашёл
Антон_Мураткин@vk
07-05-2014, 13:43
Цитата Антон_Мураткин@vk:
А где это менять? Если в Button'e то там всё уже изменено, но отмена и завершить всё равно по центру. В других что то такое и не нашёл »
Нашёл где это менять. Только совсем почему то названия кнопок другие.
Shift85: Благодарю за помощь.
sergey3695 я знаю, что это есть.
Но мне нужно чтобы через if not ISExec было. Ибо у меня метод сжатия, который ISArcExtract не распаковывает.
Вот я и спрашиваю как это реализовать.
sergey3695
07-05-2014, 20:33
Caratel, а как пакуешь?
Антон_Мураткин@vk
07-05-2014, 20:53
Ребят, на странице приветствия не появляется текст. Вас приветствует Мастер установки игры {#MyAppName} Рекомендуется закрыть антивирусные пакеты, а также все прочие приложения и т.п
Вот ссылка на скрипт http://sendfile.su/976358
Антон_Мураткин@vk, потому там нету этих лайбалов
Уважаемый vint56, вы не могли бы мне помочь с моим вопросом?
Dodakaedr
07-05-2014, 22:33
Антон_Мураткин@vk, добавьте это Welcome1:= TLabel.Create(WizardForm);
with welcome1 do
Begin
AutoSize:= False;
WordWrap:= True;
SetBounds(ScaleX(140), ScaleY(30), ScaleX(400), ScaleY(90));
Transparent:=True;
Font.Name:= 'Arial';
Font.Size:= 10;
Font.Color:=$FFFFFF;
Font.Style:=[fsBold];
OnMouseDown:=@LabelOnMouseDown;
Parent:=WizardForm;
Caption:=CustomMessage('Welcome1');
end;
Welcome2:= TLabel.Create(WizardForm);
with welcome2 do
Begin
AutoSize:= False;
WordWrap:= True;
SetBounds(ScaleX(100), ScaleY(130), ScaleX(400), ScaleY(90));
Transparent:=True;
Font.Name:= 'Arial';
Font.Size:= 10;
Font.Color:=$FFFFFF;
Font.Style:=[fsBold];
OnMouseDown:=@LabelOnMouseDown;
Parent:=WizardForm;
Caption:=CustomMessage('Welcome2');
end;
Caratel вот пример по другому я не знаю http://dfiles.ru/files/it6gqqi9q
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC