PDA

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 [29] 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

Антон_Мураткин@vk
06-05-2014, 21:51
Вот ещё одна проблема с кнопками :( после установки они появляются так же в центре где у них интересно менять положения кнопок

Shift85
06-05-2014, 21:58
Как сделать чтобы полностью инсталлятор менялся, а то оно меняется только на одной странице? »
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, Подскажи пожалуйста если знаешь где. Во время установки чего либо кнопка отменить находится по середине. Так-же кнопка завершить тоже по середине. Где их менять? Всё вроде облазил все скрипты которые есть в этом инсталляторе.

Shift85
06-05-2014, 22:55
Во время установки чего либо кнопка отменить находится по середине. Так-же кнопка завершить тоже по середине »

Антон_Мураткин@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 соответствует выбранному языку, а кнопки нет.

Shift85
06-05-2014, 23:30
Dodakaedr, А так у меня на Юникоде работает.

Dodakaedr
06-05-2014, 23:44
А так у меня на Юникоде работает. »
У меня ни на уникоде ни в анси не работает...

Shift85
06-05-2014, 23:55
У меня ни на уникоде ни в анси не работает »
Dodakaedr, Значит не судьба придеться юзать оконный режим вот. :lol:

Caratel
07-05-2014, 00:42
Как из одного архива распаковывать только нужный компонент?
Например папка 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: Благодарю за помощь.

Caratel
07-05-2014, 13:51
sergey3695 я знаю, что это есть.
Но мне нужно чтобы через if not ISExec было. Ибо у меня метод сжатия, который ISArcExtract не распаковывает.
Вот я и спрашиваю как это реализовать.

sergey3695
07-05-2014, 20:33
Caratel, а как пакуешь?

Антон_Мураткин@vk
07-05-2014, 20:53
Ребят, на странице приветствия не появляется текст. Вас приветствует Мастер установки игры {#MyAppName} Рекомендуется закрыть антивирусные пакеты, а также все прочие приложения и т.п

Вот ссылка на скрипт http://sendfile.su/976358

vint56
07-05-2014, 21:53
Антон_Мураткин@vk, потому там нету этих лайбалов

Caratel
07-05-2014, 22:15
Уважаемый 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;

vint56
07-05-2014, 22:57
Caratel вот пример по другому я не знаю http://dfiles.ru/files/it6gqqi9q




© OSzone.net 2001-2012