Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 4]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 4]

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1264
Благодарности: 1024


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 22-05-2012
Описание: Закрыто
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2
Скрипты Inno Setup. Помощь и советы [часть 3]


Продолжение обсуждения
Скрипты Inno Setup. Помощь и советы [часть 5]

Отправлено: 18:01, 29-08-2011

 

Забанен


Сообщения: 216
Благодарности: 62

Профиль | Цитировать


Raf-9600, К дереву компонентов которое хочешь скрыть добавляешь ; Flags: collapsed.

Код: Выделить весь код
[Components]
Name: a; Description: Дерево; Types: full; Flags: collapsed
Name: a\1; Description: Компонент 1
Name: a\2; Description: Компонент 2
Name: a\2; Description: Компонент 3
Name: a\2; Description: Компонент 4

Последний раз редактировалось Devils Night, 05-04-2012 в 19:52.


Отправлено: 19:18, 05-04-2012 | #1421



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Johny777

Ветеран


Сообщения: 649
Благодарности: 444

Профиль | Отправить PM | Цитировать


Raf-9600, Devils Night,
вот из примера
Example_NewCheckListBox.iss

1: CheckListBox.TreeViewStyle := CheckListBox2.Checked[1];
это демо
те при нажатии на чекбокс появится возможность складывать дерево в купе с флагом collapsed
(кажется...)

Отправлено: 19:26, 05-04-2012 | #1422


Аватара для Raf-9600

Старожил


Сообщения: 398
Благодарности: 21

Профиль | Отправить PM | Цитировать


Цитата Devils Night:
К дереву компонентов которое хочешь скрыть добавляешь ; Flags: collapsed. »
Но тогда оно будет постоянно свернуто, а мне нужно, чтобы оно сворачивалось, только если выбран определённый компонент.

Допустим чтобы древо относящееся к Game1 автоматически сворачивалось только если выбран Game2. А Game2 автоматически сворачивался только если выбран Game1.
Код: Выделить весь код
[Components]
Name: "Game1"; Description: Игра 1; Flags: exclusive 
Name: "Game1\One"; Description: Пункт 1; 
Name: "Game1\Two"; Description: Пункт 2; 
Name: "Game2"; Description: Игра 2; Flags: exclusive 
Name: "Game2\One"; Description: Пункт 1; 
Name: "Game2\Two"; Description: Пункт 2;
Цитата Johny777:
те при нажатии на чекбокс появится возможность складывать дерево в купе с флагом collapsed
(кажется...) »
А можно чтобы зависимость была не от чекбокса, а от определённого компонента? И чтобы не просто появлялась возможность свернуть, а чтобы автоматически сворачивалось (только)одно древо компонентов?

Отправлено: 19:38, 05-04-2012 | #1423


Аватара для Johny777

Ветеран


Сообщения: 649
Благодарности: 444

Профиль | Отправить PM | Цитировать


Raf-9600,
ты знаешь
кажется настройка "TreeView" относится ко всему ListBox-у со всеми вытекающими последствиями
поэтому одна из 2-х игр будет только на одном листбоксе, созданном в коде.
От стандартного выбора типа установки придётся отказаться. Да думается мне и не нужен он для двух игр,
из которых за раз установить можно только одну!
потом попробую что-то придумать ), но совсем не уверен, что в итоге получится то, что нужно

Последний раз редактировалось Johny777, 05-04-2012 в 20:14.


Отправлено: 20:08, 05-04-2012 | #1424


Аватара для Raf-9600

Старожил


Сообщения: 398
Благодарности: 21

Профиль | Отправить PM | Цитировать


Johny777, благодарю за желание помочь мне, но если это сложно, то я бы не хотел никого напрягать своей просьбой.

Последний раз редактировалось Raf-9600, 05-04-2012 в 22:47.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:30, 05-04-2012 | #1425


Аватара для Johny777

Ветеран


Сообщения: 649
Благодарности: 444

Профиль | Отправить PM | Цитировать


Цитата Raf-9600:
я бы не хотел никого напрягать своей просьбой. »
всё нормально! Появляется повод что-то сделать и при этом знания капают
по твоему вопросу ерунда получилась т.к. не знаю как сворачивать дерево
может кто другой додумает
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
DirExistsWarning=no
DisableProgramGroupPage=yes
DisableWelcomePage=yes
DisableDirPage=yes
DisableReadyPage=yes


[  Code]
var
  ISCustomPage1: TWizardPage;
  CheckListBox2: TNewCheckListBox;
  CheckListBox1: TNewCheckListBox;

procedure make1(Sender: TObject);
begin
  if CheckListBox1.Checked[0] = true then
    begin
      CheckListBox2.TreeViewStyle := true;
      CheckListBox2.Checked[0] := false;
    end
  else
    begin
      CheckListBox2.TreeViewStyle := false;
      CheckListBox2.Checked[0] := true;
    end;
end;


procedure plus1(Sender: TObject);
begin
  if CheckListBox2.Checked[0] = true then
    begin
      CheckListBox1.TreeViewStyle := true;
      CheckListBox1.Checked[0] := false;
    end
  else
    begin
      CheckListBox1.TreeViewStyle := false;
      CheckListBox1.Checked[0] := true;
    end;
end;

procedure InitializeWizard();
begin
  ISCustomPage1 := CreateCustomPage(wpWelcome, 'Test', 'Description');
  WizardForm.Color := clWhite;
  WizardForm.InnerPage.Color := clWhite;
  ISCustomPage1.Surface.Color := clWhite;
  WizardForm.NextButton.Hide;

  CheckListBox2 := TNewCheckListBox.Create(WizardForm);
  with CheckListBox2 do
  begin
    Name := 'CheckListBox2';
    Parent := ISCustomPage1.Surface;
    Left := ScaleX(0);
    Top := ScaleY(100);
    Width := ScaleX(417);
    Height := ScaleY(100);
    DragMode := dmAutomatic;
    OnClickCheck := @plus1;
    TreeViewStyle := True;
    BorderStyle := bsNone;
    
    AddCheckBoxEx('CheckBox_0', 'c01 00', 0, True, True, True, True, nil, True);
    AddRadioButtonEx('RadioButton_1', 'r21 02', 1, True, True, nil, True);
    AddRadioButtonEx('RadioButton_2', 'r22 03', 1, True, True, nil, True);
    AddRadioButtonEx('RadioButton_3', 'r31 04', 1, True, True, nil, True);
    AddRadioButtonEx('RadioButton_4', 'r32 05', 1, True, True, nil, True);
    AddCheckBoxEx('CheckBox_4.1', 'c17 18', 2, True, True, False, True, nil, True);
  end;


  CheckListBox1 := TNewCheckListBox.Create(WizardForm);
  with CheckListBox1 do
  begin
    Name := 'CheckListBox1';
    Parent := ISCustomPage1.Surface;
    Left := ScaleX(0);
    Top := ScaleY(0);
    Width := ScaleX(417);
    Height := ScaleY(100);
    OnClickCheck := @make1;
    BorderStyle := bsNone;
    
    AddCheckBoxEx('CheckBox_0', 'c01 00', 0, True, True, True, True, nil, True);
    AddCheckBoxEx('CheckBox_0', 'c01 00', 1, True, True, True, True, nil, True);
    AddCheckBoxEx('CheckBox_0', 'c01 00', 2, True, True, True, True, nil, True);
    AddCheckBoxEx('CheckBox_0', 'c01 00', 2, True, True, True, True, nil, True);
    AddCheckBoxEx('CheckBox_0', 'c01 00', 2, True, True, True, True, nil, True);
    AddCheckBoxEx('CheckBox_4.1', 'c17 18', 2, True, True, False, True, nil, True);
  end;
end;


procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
  Confirm := False;
end;

Последний раз редактировалось Johny777, 06-04-2012 в 04:09.

Это сообщение посчитали полезным следующие участники:

Отправлено: 03:55, 06-04-2012 | #1426


Аватара для Raf-9600

Старожил


Сообщения: 398
Благодарности: 21

Профиль | Отправить PM | Цитировать


Цитата Johny777:
по твоему вопросу ерунда получилась т.к. не знаю как сворачивать дерево »
Если честно, то я и предполагал что единственная возможная реализация будет такой, ибо вряд ли разрзрабы ResTools заморачивались относительно автоматического сворачивания компонентов

Ну да ладно, у меня другой вопрос: возможно ли менять описание компонентов в зависимости от того, какие выбраны?
Код на описание компонентов использую этот http://forum.oszone.net/post-1893249-1390.html

Пробовал писать примерно так:
Код: Выделить весь код
if IsComponentSelected('Game1') = True then
  AddDescription(1, 'Вариант 1'); 

if IsComponentSelected('Game2') = True then
  AddDescription(1, 'Вариант 2');
Но все бестолку =(

Отправлено: 09:06, 06-04-2012 | #1427


Аватара для Johny777

Ветеран


Сообщения: 649
Благодарности: 444

Профиль | Отправить PM | Цитировать


Raf-9600,
не совсем понимаю
в примере идёт описание сверху вниз в соответствии с элементами окошка компонентов (они тоже сверху вниз добавляются как в секции записано).

Отправлено: 13:16, 06-04-2012 | #1428


Аватара для Raf-9600

Старожил


Сообщения: 398
Благодарности: 21

Профиль | Отправить PM | Цитировать


Johny777, допустим есть такие компоненты:

Код: Выделить весь код
[Components]
Name: "Game1"; Description: Игра 1; Flags: exclusive 
Name: "Game2"; Description: Игра 2; Flags: exclusive 
Name: "Item"; Description: Пункт;
Если выбрать Game1, то комментарий к Item должно быть одним, а если выбрать Game2 то комментарий к Item должен быть другим.

Отправлено: 13:23, 06-04-2012 | #1429


Аватара для R.i.m.s.k.y.

Ветеран


Сообщения: 1640
Благодарности: 536

Профиль | Отправить PM | Цитировать


Raf-9600, ща за 15-20 минут накидаю примерчик
Код: Выделить весь код
[Components]
Name: "Game1"; Description: Игра 1; Flags: exclusive 
Name: "Game2"; Description: Игра 2; Flags: exclusive 
Name: "Item"; Description: Пункт;

[*Code]
var
game1, game2, Item : integer;
game1s, game2s, Items : string;

procedure CheckComponents;
begin
if IsComponentSelected('Game1') then begin
  with WizardForm.ComponentsList do begin
    ItemCaption[item] := items + 'Game1s';
  end; end;//with WizardForm.ComponentsList do begin
if IsComponentSelected('Game2') then begin
  with WizardForm.ComponentsList do begin
    ItemCaption[item] := items + 'Game2s';
  end; end;//with WizardForm.ComponentsList do begin
WizardForm.ComponentsList.Repaint;
end;

procedure ComponentOnClick(Sender: TObject);
begin
CheckComponents;
end;

procedure InitializeWizard()
begin
...
  game1:= WizardForm.ComponentsList.Items.IndexOf('Игра 1');  game1s:= WizardForm.ComponentsList.ItemCaption[game1];
  game2:= WizardForm.ComponentsList.Items.IndexOf('Игра 2');  game1s:= WizardForm.ComponentsList.ItemCaption[game2];
  item:= WizardForm.ComponentsList.Items.IndexOf('Пункт');  items:= WizardForm.ComponentsList.ItemCaption[item];

  WizardForm.ComponentsList.OnClick := @ComponentOnClick; CheckComponents;
...
end;
идеологически верно но могут быть пропущенные end'ы, кавыки, сам расставишь

щаз еще Лександр скажет "надо использовать case"
Да, н-н-надо, но я не знаю как перехватить номер нажатого компонента

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Последний раз редактировалось R.i.m.s.k.y., 06-04-2012 в 13:54.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:25, 06-04-2012 | #1430



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 4]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Test ferget Тест-форум 0 24-08-2011 01:25
test ! ! Aaa ! ! Тест-форум 0 23-04-2011 11:29
test Santa aka Snt Тест-форум 0 16-04-2011 22:35
test xolod. Программное обеспечение Linux и FreeBSD 0 19-04-2009 21:03
Test memory KEugeNik Хочу все знать 11 23-11-2003 23:11




 
Переход