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

El Sanchez
05-09-2014, 21:19
1) Через секцию [Run] служба не устанавливалась; »
Dodakaedr, все пашет:
[Run]
Filename: {app}\DfSdkS32.exe; Parameters: -install

Ни у кого ответа нет? »
kotyarko@fb,

[Components]
Name: "main"; Description: "Main Files"; Types: full compact custom; Flags: fixed
Name: "help"; Description: "Help Files"; Types: full
Name: "help\english"; Description: "English"; Types: full
Name: "help\dutch"; Description: "Dutch"; Types: full

[Code]
var
PupMnu: TPopupMenu;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
procedure ComponentsListOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
P: TPoint;
Item: Integer;
ComponentsList: TNewCheckListBox;
begin
if Button = mbRight then
begin
P.x := X;
P.y := Y;
ComponentsList := TNewCheckListBox(Sender);
Item := ComponentsList.ItemAtPos(P, True);
if (Item = - 1) then Exit;
if (Item = 1) { or (Item = ComponentsList.Items.IndexOf('Main Files')) } then // например, 1-й компонент, т.е. help или 0-й по его описанию
begin
P := ComponentsList.ClientToScreen(P);
PupMnu.Popup(P.x, P.y);
end;
end;
end;

////////////////////////////////////////
procedure Menu1OnClick(Sender: TObject);
begin
MsgBox('Menu 1 OnClick!', mbInformation, MB_OK);
end;

////////////////////////////////////////
procedure Menu2OnClick(Sender: TObject);
begin
MsgBox('Menu 2 OnClick!', mbInformation, MB_OK);
end;

/////////////////////////////
procedure InitializeWizard();
var
Mnu: TMenuItem;
begin
PupMnu := TPopupMenu.Create(WizardForm);
// Menu 1
Mnu := TMenuItem.Create(WizardForm);
Mnu.Caption := 'Menu 1';
Mnu.OnClick := @Menu1OnClick;
PupMnu.Items.Add(Mnu);
// Menu 2
Mnu := TMenuItem.Create(WizardForm);
Mnu.Caption := 'Menu 2';
Mnu.OnClick := @Menu2OnClick;
PupMnu.Items.Add(Mnu);
PupMnu.AutoPopup := False;

WizardForm.ComponentsList.OnMouseDown := @ComponentsListOnMouseDown;
WizardForm.ComponentsList.PopupMenu := PupMnu;
end;

Nightwishh
05-09-2014, 21:33
Всем привет. Не подскажите как мне сделать кнопку BackButton неактивной на странице приветствия. КодProcedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.BackButton.Enabled:= True;
if CurPageID = wpWelcome then begin
WizardForm.BackButton.Enabled:= False;
end;
end; что то не помогает
Ах да, содавать новую страницу и кнопку "назад" я не хочу, кнопка должна быть на визарде...

kotyarko@fb
05-09-2014, 21:58
Не подскажите как мне сделать кнопку BackButton неактивной на странице приветствия. »
Её там просто нет. Зачем?

Nightwishh
05-09-2014, 22:07
Воо:Procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.BackButton.Show;
WizardForm.BackButton.Enabled:= True;
if CurPageID = wpWelcome then begin
WizardForm.BackButton.Enabled:= False;
end;
end;Накатал. Правильно?Зачем? »мне на неё текстуру повесить надо для симетрии)))

kotyarko@fb
05-09-2014, 22:12
Правильно? »
Думаю, нет. Насколько я помню, PageChanged не отменяет действия, которые уже сделал.
Нужно как-то так:
Procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
wpWelcome:
begin
WizardForm.BackButton.Show;
WizardForm.BackButton.Enabled:= False;
end
else
WizardForm.BackButton.Enabled := True;
end;
end;

kotyarko@fb, »
Спасибо за отзыв, но просто не работает.

Nightwishh
05-09-2014, 22:34
Нужно как-то так »спасибо это тоже работает, думаю что возьму ваш вариант

Kashtan007
05-09-2014, 23:08
Всем привет, возникла такая проблема, что когда перелистываю по страницам в установщике у меня проскакивает белый фон на пару секунд. Как решить эту проблему?
Возможно причина в том, что на страницах фон либо же установщик сильно перегружен? Можно ли как-то решить эту проблему? Заранее спасибо за ответ.

kotyarko@fb
05-09-2014, 23:23
когда перелистываю по страницам в установщике у меня проскакивает белый фон на пару секунд. Как решить эту проблему? »
Скинь скомпиленный инстальник, посмотреть.

Kashtan007
05-09-2014, 23:48
kotyarko@fb, http://rghost.ru/57868859

kotyarko@fb
06-09-2014, 00:05
возникла такая проблема, что когда перелистываю по страницам в установщике у меня проскакивает белый фон на пару секунд. »
Нуу.. там даже далеко не секунда. Еле успеваю заметить. Так, как это воспроизводится у меня - вполне нормально.
Если не против, дам пару советов, по поводу инсталла:
1) В конце InitializeWizard прописать WizardForm.Center;
2) Перерисовать все элементы (лейблы, эдиты, листбоксы) и прописать всем параметр Transparent, а у фона дорисовать на местах этих лейблов небольшие затемнения, чтобы текст выделялся. И будет здорово.
3) На последней странице выбора устанавливаемого контента (непосредственно перед самой установкой) переименовать кнопку "Далее" на "Установить".

Kashtan007
06-09-2014, 00:09
kotyarko@fb, хм.. может с компом что-то.
Спасибо за советы попробую, просто первый раз делаю сборку по просьбе друзей.

Как кнопку переименовать? Через блок CustomMessages?

kotyarko@fb
06-09-2014, 00:17
Как кнопку переименовать? Через блок CustomMessages? »
В твоём случае - нет.
Можно через тот же PageChanged, таким же способом, как и в примере на предыдущей странице.

Tco 03
06-09-2014, 11:29
Господа, подскажите, пожалуйста, как создать лейбл, чтобы он отображался строго посередине прогресс бара?

Dodakaedr
06-09-2014, 19:47
Господа, подскажите, пожалуйста, как создать лейбл, чтобы он отображался строго посередине прогресс бара? »
Создаете лейбл, делаете родителем WizardForm, отцентрируете по центру прогресс бара, скрываете его в процедуру CurPageChanged и в этой же процедуре на странице установки (wpInstalling) показываете его.

Tco 03
06-09-2014, 21:12
Создаете лейбл, делаете родителем WizardForm, отцентрируете по центру прогресс бара, скрываете его в процедуру CurPageChanged и в этой же процедуре на странице установки (wpInstalling) показываете его. »
Моя вина, немного не так выразился, не всё так просто. Длина лейбла не постоянная, она изменяется в зависимости от выбора языка. Нужно чтобы он постоянно был по центру прогресс бара, вне зависимости от его длинны (ну не больше самого прогресс бара естественно).

Dodakaedr
06-09-2014, 21:27
Длина лейбла не постоянная, она изменяется в зависимости от выбора языка. »
лично не проверял, но можете попробовать у wpInstalling указать размеры в зависимости от языка через if ... then ВашЛейбл.SetBounds(ScaleX(320), ScaleY(153), ScaleX(80), ScaleY(22));

Kashtan007
07-09-2014, 21:24
Так как до сих пор не разобрался, то повторяю свой вопрос.

Мне нужно, чтобы на странице каталога была 2 чекбокса
-Удалить все старые моды
--Сохранить бекап старых модов
Выглядеть это должно так:
http://s018.radikal.ru/i524/1409/03/2883708d9c1a.png

1 чекбокс, должен удалять содержимое в res_mods\0.9.2\* и удалять папку xvm по пути res_mods\xvm.
2 чекбокс, должен делать бекап папки res_mods, по пути ModPack\BackUp\res_mods, а после удаление репака возвращал бекап в папку res_mods.

Есть еще 1 проблема:

У меня в репаке есть файл "path" и в папке куда я ставлю репак он тоже есть. В следствии чего если я ставлю репак, то файл заменяется, а когда удаляешь репак то файл тоже удаляется и не запускается игра. Как сделать, чтобы когда устанавливаешь репак, то файл "path" из папки куда ставишь репак копировался по пути ModPack\OriginalFiles, а после удаление возвращался на свое место.

Как это реализовать? Заранее спасибо всем за помощь.

kotyarko@fb
07-09-2014, 21:30
Так как до сих пор не разобрался, то повторяю свой вопрос. »
Так я же отвечал: http://forum.oszone.net/post-2398453-1465.html

Kashtan007
07-09-2014, 22:16
kotyarko@fb, да, но чуть не то. Я хочу, чтобы можно было выбрать сразу 2 пункта. Самому сделать не получилось(

kotyarko@fb
07-09-2014, 22:26
ра »
Ну тогда давай то, что есть на данный момент. Поправлю.




© OSzone.net 2001-2012