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

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

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

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

Ветеран


Contributor


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


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

Профиль | Отправить 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

 

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

Старожил


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

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


Ктонить может убрать возможность кликнуть ПКМ по тексту комментариев компонентов, из этого кода?
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
ComponentsListTVStyle=true

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl

[CustomMessages]
russian.ComponentsName1=Моя программа™
russian.ComponentsName2=Помощь
russian.ComponentsName2_1=Документация
russian.ComponentsName2_2=Руководство пользователя
russian.ComponentsInfoPanel1=Описание
russian.ComponentsInfoPanel2=Наведите курсор мыши на компонент, чтобы прочитать его описание.
russian.ComponentsDescription1=Устанавливается обязательно
russian.ComponentsDescription2=Помощь
russian.ComponentsDescription3=Прочитать документацию
russian.ComponentsDescription4=Прочитать руководство пользователя

[Components]
Name: readme; Description: Справка; Types: full custom;
Name: readme\en; Description: "Английская "; Types: full custom; Flags: fixed
Name: readme\ru; Description: Русская; Types: full

;*************************************************************************
Name: plugs; Description: Плагины; Types: full ; Flags: collapsed
Name: plugs\wlx; Description: Внутреннего просмотра; Types: full
Name: plugs\wcx; Description: Архиваторные; Types: full
Name: plugs\wfx; Description: Системные; Types: full
Name: plugs\wfx\CanonCam; Description: CanonCam; Types: full
Name: plugs\wfx\PluginManager; Description: PluginManager; Types: full
Name: plugs\wfx\Registry; Description: Registry; Types: full
Name: plugs\wfx\Services; Description: Services; Types: full
Name: plugs\wfx\StartupGuard; Description: StartupGuard; Types: full
Name: plugs\wdx; Description: Другие; Types: full

[C0de]
{ RedesignWizardFormBegin } // Не удалять эту строку!
// Не изменять эту секцию. Она создана автоматически.
var
  DRTF: TRichEditViewer;

procedure RedesignWizardForm;
begin
  with WizardForm.ComponentsList do
  begin
    Width := ScaleX(201);
  end;

  { DRTF }
  DRTF := TRichEditViewer.Create(WizardForm);
  with DRTF do
  begin
    Name := 'DRTF';
    Parent := WizardForm.SelectComponentsPage;
    Left := ScaleX(208);
    Top := ScaleY(74);
    Width := ScaleX(209);
    Height := ScaleY(131);
    Color := clMenu;
    DragMode := dmAutomatic;
    ReadOnly := True;
    ScrollBars := ssVertical;
    Text := '';
  end;

  DRTF.TabOrder := 4;

{ ReservationBegin }
  // Вы можете добавить ваш код здесь.

{ ReservationEnd }
end;
// Не изменять эту секцию. Она создана автоматически.
{ RedesignWizardFormEnd } // Не удалять эту строку!

type
  TComponentDesc = record Description: String; Index: Integer; end;

var
  Descs: array of TComponentDesc;
  Indx: Integer;

procedure ShowDescription(Sender: TObject; X, Y, Index: Integer; Area: TItemArea);
var i: Integer;
begin
  Indx:=-1;
  for i:= 0 to GetArrayLength(Descs)-1 do begin
  if (Descs[i].Index=Index) then begin Indx:=i; Break end; end;
  if (Indx >=0)and(Area=iaItem) then DRTF.Text:= Descs[Indx].Description else DRTF.Text:= ExpandConstant('{cm:ComponentsInfoPanel2}');
end;

procedure AddDescription(AIndex: Integer; ADescription: String);
var i, k: Integer;
begin
i:= GetArrayLength(Descs); SetArrayLength(Descs, i+1);
Descs[i].Description:= ADescription; Descs[i].Index:= AIndex-1
end;

procedure InitializeWizard();
begin
  RedesignWizardForm;
  WizardForm.ComponentsList.OnItemMouseMove:= @ShowDescription


  AddDescription(1, 'Справка'); //первый параметр - это номер компонента, идет последовательно от начала записи компонентов
  AddDescription(2, 'Эта сказка возникла в устных рассказах, пока не стала историей Великой Войны Кольца, включая множество эскурсов в более древние времена. Она начала создаваться после того, как был написан "Хоббит", и по его первой публикации в 1937 году: но я не торопился с продолжением, потому что хотел прежде собрать и привести в порядок мифологию и легенды древних дней, а для этого потребовалось несколько лет. Я делал это для собственного удовольствия и мало надеялся, что другие люди заинтересуются моей работой, особенно потому что она была преимущественно лингвистической по побуждениям и возникла из необходимости привести в порядок мои отрывочные сведения о языках эльфов.'); //Второй параметр - это собственно описание компонента
  AddDescription(3, 'Русская справка');
  AddDescription(4, 'Плагины');
  AddDescription(5, 'Внутреннего просмотра');
  AddDescription(6, 'Архиваторные');
  AddDescription(7, 'Системные');
  AddDescription(8, 'CanonCam');
  AddDescription(9, 'PluginManager');
  AddDescription(10, 'Registry');
  AddDescription(11, 'Services');
  AddDescription(12, 'StartupGuard');
  AddDescription(13, 'Другие');

end;

[ISFormDesigner]
WizardForm=FF0A005457495A415244464F524D003010D602000054504630F10B5457697A617264466F726D0A57697A617264466F726D0C436C69656E744865696768740368010B436C69656E74576964746803F1010C4578706C696369744C65667402000B4578706C69636974546F7002000D4578706C6963697457696474680301020E4578706C69636974486569676874038E010D506978656C73506572496E636802600A54657874486569676874020D00F10C544E65774E6F7465626F6F6B0D4F757465724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B57656C636F6D65506167650D4578706C69636974576964746803F1010E4578706C696369744865696768740339010000F110544E65774E6F7465626F6F6B5061676509496E6E6572506167650D4578706C69636974576964746803F1010E4578706C6963697448656967687403390100F10C544E65774E6F7465626F6F6B0D496E6E65724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B4C6963656E7365506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED000000F110544E65774E6F7465626F6F6B506167651453656C656374436F6D706F6E656E7473506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED0000F11

Отправлено: 00:36, 07-04-2012 | #1441



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

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


Аватара для Ivan_009

Ветеран


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

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


Как прописать в секции [Run] установку Обновить DirectX (требуется интернет соединение) пробовал стандартный ключ silent почемуто ошибка...

Отправлено: 01:42, 07-04-2012 | #1442


Аватара для Johny777

Ветеран


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

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


Цитата Ivan_009:
Как прописать в секции [Run] установку Обновить DirectX »
а если инет слабый и в тихом режиме (которого скорее всего нет) будет всю ночь напролёт качаться?
а если пользователь не хочет ставить панель Bing?
а ели у пользователя инет не безлимитный со всеми вытекающими последствиями?
Лучше не в тихом режиме!
Извини если вопрос не понял
Цитата Raf-9600:
может убрать возможность кликнуть ПКМ по тексту комментариев компонентов »
у меня нет всплывающего меню при нажатии правой кнопкой
использую расширенную версию 5.4.2 (ANSI)

Отправлено: 02:06, 07-04-2012 | #1443


Аватара для Ivan_009

Ветеран


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

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


Как прописать эапуск веб установщика DirectX

Отправлено: 02:15, 07-04-2012 | #1444


Аватара для Johny777

Ветеран


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

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


Ну Ваня
вот два варианта
тебе второй подробнее расписать?
[Run]
Filename: {src}\dxwebsetup.exe; StatusMsg: установка директа; Flags: skipifdoesntexist waituntilterminated;

или

[code]
var
res: integer;
если чекбокс отмечен, то
begin
Exec(ExpandConstant('{src}\dxwebsetup.exe'), '', ExpandConstant('{src}'), SW_SHOW, ewWaitUntilTerminated, Res);
WizardForm.StatusLabel.Caption := 'установка директа';
end;

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

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

Отправлено: 02:23, 07-04-2012 | #1445


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

Ветеран


Contributor


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

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


Цитата El Sanchez:
Johny777, добавь в нужные места: »
El Sanchez, небольшой апдейт: перенес GetWindowRect в процедуру AppOnMessage, а то при перемещении формы нужно заново вычислять координаты прямоугольника скроллбокса, и добавил определение страницы, на которой скроллинг должен действовать, а то скроллилось и на другой странице.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:20, 07-04-2012 | #1446


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

Старожил


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

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


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

Отправлено: 12:29, 07-04-2012 | #1447


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

Старожил


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

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


Подскажите ктонить, можно ли сделать так, чтобы в приведённом ниже коде, при клике на какой-либо компонент, инсталлятор не зависал? При том нужно чтобы весь функционал остался.

читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl

[Components]
Name: "Diablo"; Description: Diablo; Flags: exclusive disablenouninstallwarning;
Name: "Diablo\Local"; Description: Локализация; Flags: exclusive disablenouninstallwarning
Name: "Diablo\Local\Russian"; Description: Русская; Flags: exclusive collapsed disablenouninstallwarning; ExtraDiskSpaceRequired: 518540567
Name: "Diablo\Local\Russian\Stream"; Description: Stream; Flags: exclusive disablenouninstallwarning; Types: full
Name: "Diablo\Local\Russian\Fargus"; Description: Фаргус; Flags: exclusive collapsed disablenouninstallwarning;
Name: "Diablo\Local\Englisch"; Description: Английская; Flags: exclusive collapsed disablenouninstallwarning
Name: "Diablo\Local\Deusch"; Description: Немецкая; Flags: exclusive collapsed disablenouninstallwarning

Name: "Diablo\patch"; Description: Версия; Flags: collapsed disablenouninstallwarning
Name: "Diablo\patch\100"; Description: 1.00; Flags: exclusive collapsed disablenouninstallwarning; Types: full
Name: "Diablo\patch\107"; Description: 1.07; Flags: exclusive collapsed disablenouninstallwarning
Name: "Diablo\patch\108"; Description: 1.08; Flags: exclusive collapsed disablenouninstallwarning
Name: "Diablo\patch\109"; Description: 1.09; Flags: exclusive collapsed disablenouninstallwarning
Name: "Diablo\patch\109b"; Description: 1.09b; Flags: exclusive collapsed disablenouninstallwarning
Name: "Diablo\NoCD"; Description: No-CD; Flags: disablenouninstallwarning; Types: full
Name: "Diablo\UPD"; Description: Активировать UPD; Flags: disablenouninstallwarning; Types: full

Name: "Hellfire"; Description: Hellfire; Flags: exclusive disablenouninstallwarning;
Name: "Hellfire\Local"; Description: Локализация; Flags: exclusive disablenouninstallwarning
Name: "Hellfire\Local\Russian"; Description: Русская; Flags: exclusive collapsed disablenouninstallwarning; ExtraDiskSpaceRequired: 518540567
Name: "Hellfire\Local\Russian\Stream"; Description: Stream; Flags: exclusive collapsed disablenouninstallwarning;
Name: "Hellfire\Local\Russian\Fargus"; Description: Фаргус; Flags: exclusive disablenouninstallwarning;
Name: "Hellfire\Local\Englisch"; Description: Английская; Flags: exclusive collapsed disablenouninstallwarning
Name: "Hellfire\patch"; Description: Версия; Flags: collapsed disablenouninstallwarning
Name: "Hellfire\patch\100"; Description: 1.00; Flags: exclusive disablenouninstallwarning
Name: "Hellfire\patch\101"; Description: 1.01; Flags: exclusive collapsed disablenouninstallwarning
Name: "Hellfire\patch\102"; Description: 1.02; Flags: exclusive collapsed disablenouninstallwarning
Name: "Hellfire\NoCD"; Description: No-CD; Flags: disablenouninstallwarning

Name: "Hellfire\Hide"; Description: Скрытые возможности; Flags: collapsed disablenouninstallwarning
Name: "Hellfire\Hide\multitest"; Description: Мультиплеер; Flags: disablenouninstallwarning collapsed;
Name: "Hellfire\Hide\multitest\udp"; Description: Активировать UDP; Flags: disablenouninstallwarning
Name: "Hellfire\Hide\NestArt"; Description: Статичная палитра Улья; Flags: disablenouninstallwarning dontinheritcheck;
Name: "Hellfire\Hide\bardtest"; Description: Класс - Бард; Flags: disablenouninstallwarning; 
Name: "Hellfire\Hide\Barbariantest"; Description: Класс - Варвар; Flags: disablenouninstallwarning; 
Name: "Hellfire\Hide\theoquest"; Description: Квест от Цилии; Flags: disablenouninstallwarning; 
Name: "Hellfire\Hide\FarmersOrchard"; Description: Квест от фермера Лестера; Flags: exclusive disablenouninstallwarning 
Name: "Hellfire\Hide\cowquest"; Description: Квест от Полного Психа; Flags: exclusive disablenouninstallwarning 


[C0de]
procedure ComponentsListOnClickCheck(Sender: TObject);
begin                                                                
  if wizardform.ComponentsList.Checked[3] then //Diablo\Local\Russian\Stream
    wizardform.ComponentsList.Checked[13]:=True; //Diablo\NoCD


begin                                            
  if wizardform.ComponentsList.Checked[4] then //Hellfire\Local\Russian\Fargus
    wizardform.ComponentsList.Checked[25]:=True; //Hellfire\NoCD
end;

begin                                              
  if wizardform.ComponentsList.Checked[2] then   //Diablo\Local\Russian
    wizardform.ComponentsList.Checked[8]:=True; //Diablo\patch\100
end;


begin
  if wizardform.ComponentsList.Checked[6] then   //Diablo\Local\Deusch
    wizardform.ComponentsList.Checked[12]:=True; //Diablo\patch\109b
end;

begin
  if wizardform.ComponentsList.Checked[0] then   //Diablo
    wizardform.ComponentsList.Checked[1]:=True; //Diablo\Local
    wizardform.ComponentsList.Checked[7]:=True; //Diablo\patch
end;

begin
  if wizardform.ComponentsList.Checked[15] then   //Hellfire
    wizardform.ComponentsList.Checked[16]:=True; //Hellfire\Local
    wizardform.ComponentsList.Checked[21]:=True; //Hellfire\patch
end;

end;

procedure InitializeWizard1();
begin
wizardform.ComponentsList.OnClickCheck:=@ComponentsListOnClickCheck
end;

var
OldEvent_ComponentsListClickCheck: TNotifyEvent;
procedure ComponentsListClickCheck(Sender: TObject);

//Hellfire
begin
If IsComponentSelected('Diablo\Local\Englisch') then begin
WizardForm.ComponentsList.ItemEnabled[9]:=True;  //patch\107
WizardForm.ComponentsList.ItemEnabled[10]:=True;  //patch\108
WizardForm.ComponentsList.ItemEnabled[11]:=True;  //patch\109
end else begin
WizardForm.ComponentsList.ItemEnabled[9]:=False;
WizardForm.ComponentsList.ItemEnabled[10]:=False;
WizardForm.ComponentsList.ItemEnabled[11]:=False;
OldEvent_ComponentsListClickCheck(Sender);
end;

begin
If IsComponentSelected('Hellfire\Local\Englisch') then begin
WizardForm.ComponentsList.ItemEnabled[23]:=True;  //patch\101
WizardForm.ComponentsList.ItemEnabled[24]:=True;  //patch\102
end else begin
WizardForm.ComponentsList.ItemEnabled[23]:=False;  //patch\101
WizardForm.ComponentsList.ItemEnabled[24]:=False;  //patch\102
OldEvent_ComponentsListClickCheck(Sender);
end;
end; 

begin
If IsComponentSelected('Hellfire\patch\100') then
WizardForm.ComponentsList.ItemEnabled[31]:=False   //Barbariantest
else
WizardForm.ComponentsList.ItemEnabled[31]:=True;
OldEvent_ComponentsListClickCheck(Sender);
end;


begin
If IsComponentSelected('Diablo\Local\Deusch') or IsComponentSelected('Diablo\Local\Englisch') then
WizardForm.ComponentsList.ItemEnabled[12]:=True   //Diablo\patch\109b
else
WizardForm.ComponentsList.ItemEnabled[12]:=False;
OldEvent_ComponentsListClickCheck(Sender);
end;

begin
If IsComponentSelected('Diablo\Local\Deusch') then
WizardForm.ComponentsList.ItemEnabled[8]:=False   //Diablo\patch\100
else
WizardForm.ComponentsList.ItemEnabled[8]:=True;
OldEvent_ComponentsListClickCheck(Sender);
end;

begin
If IsComponentSelected('Diablo\patch\109') or IsComponentSelected('Diablo\patch\109b') then
WizardForm.ComponentsList.ItemEnabled[14]:=True   //Diablo\UPD
else
WizardForm.ComponentsList.ItemEnabled[14]:=False;
OldEvent_ComponentsListClickCheck(Sender);
end;

//------
begin
If IsComponentSelected('Diablo\Local\Deusch') then
WizardForm.ComponentsList.ItemEnabled[8]:=False   //Diablo\patch\100
else
WizardForm.ComponentsList.ItemEnabled[8]:=True;
OldEvent_ComponentsListClickCheck(Sender);
end;

end;



procedure InitializeWizard2();
begin
with WizardForm.ComponentsList do
begin
OldEvent_ComponentsListClickCheck := OnClickCheck;
OnClickCheck := @ComponentsListClickCheck;
ItemEnabled[9]:=False;  //patch\107
ItemEnabled[10]:=False;  //patch\108
ItemEnabled[11]:=False;  //patch\109
ItemEnabled[12]:=False;  //patch\109b
ItemEnabled[14]:=False;  //Diablo\UPD
end;
end;

procedure InitializeWizard;
begin
InitializeWizard1();
InitializeWizard2();
end;

Отправлено: 14:58, 07-04-2012 | #1448


Аватара для Johny777

Ветеран


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

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


Raf-9600,
кажется виснет из-за неполной или неправильной логики
вот записал пока в удобочитаемой форме (тормоза на месте)
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl

[Components]
Name: "Diablo"; Description: Diablo; Flags: exclusive disablenouninstallwarning;
Name: "Diablo\Local"; Description: Локализация; Flags: exclusive disablenouninstallwarning
Name: "Diablo\Local\Russian"; Description: Русская; Flags: exclusive collapsed disablenouninstallwarning; ExtraDiskSpaceRequired: 518540567
Name: "Diablo\Local\Russian\Stream"; Description: Stream; Flags: exclusive disablenouninstallwarning; Types: full
Name: "Diablo\Local\Russian\Fargus"; Description: Фаргус; Flags: exclusive collapsed disablenouninstallwarning;
Name: "Diablo\Local\Englisch"; Description: Английская; Flags: exclusive collapsed disablenouninstallwarning
Name: "Diablo\Local\Deusch"; Description: Немецкая; Flags: exclusive collapsed disablenouninstallwarning

Name: "Diablo\patch"; Description: Версия; Flags: collapsed disablenouninstallwarning
Name: "Diablo\patch\100"; Description: 1.00; Flags: exclusive collapsed disablenouninstallwarning; Types: full
Name: "Diablo\patch\107"; Description: 1.07; Flags: exclusive collapsed disablenouninstallwarning
Name: "Diablo\patch\108"; Description: 1.08; Flags: exclusive collapsed disablenouninstallwarning
Name: "Diablo\patch\109"; Description: 1.09; Flags: exclusive collapsed disablenouninstallwarning
Name: "Diablo\patch\109b"; Description: 1.09b; Flags: exclusive collapsed disablenouninstallwarning
Name: "Diablo\NoCD"; Description: No-CD; Flags: disablenouninstallwarning; Types: full
Name: "Diablo\UPD"; Description: Активировать UPD; Flags: disablenouninstallwarning; Types: full

Name: "Hellfire"; Description: Hellfire; Flags: exclusive disablenouninstallwarning ;
Name: "Hellfire\Local"; Description: Локализация; Flags: exclusive disablenouninstallwarning
Name: "Hellfire\Local\Russian"; Description: Русская; Flags: exclusive collapsed disablenouninstallwarning; ExtraDiskSpaceRequired: 518540567
Name: "Hellfire\Local\Russian\Stream"; Description: Stream; Flags: exclusive collapsed disablenouninstallwarning;
Name: "Hellfire\Local\Russian\Fargus"; Description: Фаргус; Flags: exclusive disablenouninstallwarning;
Name: "Hellfire\Local\Englisch"; Description: Английская; Flags: exclusive collapsed disablenouninstallwarning
Name: "Hellfire\patch"; Description: Версия; Flags: collapsed disablenouninstallwarning
Name: "Hellfire\patch\100"; Description: 1.00; Flags: exclusive disablenouninstallwarning
Name: "Hellfire\patch\101"; Description: 1.01; Flags: exclusive collapsed disablenouninstallwarning
Name: "Hellfire\patch\102"; Description: 1.02; Flags: exclusive collapsed disablenouninstallwarning
Name: "Hellfire\NoCD"; Description: No-CD; Flags: disablenouninstallwarning

Name: "Hellfire\Hide"; Description: Скрытые возможности; Flags: collapsed disablenouninstallwarning
Name: "Hellfire\Hide\multitest"; Description: Мультиплеер; Flags: disablenouninstallwarning collapsed;
Name: "Hellfire\Hide\multitest\udp"; Description: Активировать UDP; Flags: disablenouninstallwarning
Name: "Hellfire\Hide\NestArt"; Description: Статичная палитра Улья; Flags: disablenouninstallwarning dontinheritcheck;
Name: "Hellfire\Hide\bardtest"; Description: Класс - Бард; Flags: disablenouninstallwarning;
Name: "Hellfire\Hide\Barbariantest"; Description: Класс - Варвар; Flags: disablenouninstallwarning;
Name: "Hellfire\Hide\theoquest"; Description: Квест от Цилии; Flags: disablenouninstallwarning;
Name: "Hellfire\Hide\FarmersOrchard"; Description: Квест от фермера Лестера; Flags: exclusive disablenouninstallwarning
Name: "Hellfire\Hide\cowquest"; Description: Квест от Полного Психа; Flags: exclusive disablenouninstallwarning


[   Code]
var
  OldEvent_ComponentsListClickCheck: TNotifyEvent;
  
procedure ComponentsListClickCheck(Sender: TObject);
begin

//  if wizardform.ComponentsList.Checked[3] then //Diablo\Local\Russian\Stream
//    wizardform.ComponentsList.Checked[13]:=True; //Diablo\NoCD
//  if wizardform.ComponentsList.Checked[4] then //Hellfire\Local\Russian\Fargus
//    wizardform.ComponentsList.Checked[25]:=True; //Hellfire\NoCD
//  if wizardform.ComponentsList.Checked[2] then   //Diablo\Local\Russian
//    wizardform.ComponentsList.Checked[8]:=True; //Diablo\patch\100
//  if wizardform.ComponentsList.Checked[6] then   //Diablo\Local\Deusch
//    wizardform.ComponentsList.Checked[12]:=True; //Diablo\patch\109b
//  if wizardform.ComponentsList.Checked[0] then   //Diablo
//    wizardform.ComponentsList.Checked[1]:=True; //Diablo\Local
//    wizardform.ComponentsList.Checked[7]:=True; //Diablo\patch
//  if wizardform.ComponentsList.Checked[15] then   //Hellfire
//    wizardform.ComponentsList.Checked[16]:=True; //Hellfire\Local
//    wizardform.ComponentsList.Checked[21]:=True; //Hellfire\patch



  If IsComponentSelected('Diablo\Local\Englisch') then
    begin
      WizardForm.ComponentsList.ItemEnabled[9]:=True;  //patch\107
      WizardForm.ComponentsList.ItemEnabled[10]:=True;  //patch\108
      WizardForm.ComponentsList.ItemEnabled[11]:=True;  //patch\109
      OldEvent_ComponentsListClickCheck(Sender);
    end
  else
    begin
      WizardForm.ComponentsList.ItemEnabled[9]:=False;
      WizardForm.ComponentsList.ItemEnabled[10]:=False;
      WizardForm.ComponentsList.ItemEnabled[11]:=False;
      OldEvent_ComponentsListClickCheck(Sender);
    end;

  If IsComponentSelected('Hellfire\Local\Englisch') then
    begin
      WizardForm.ComponentsList.ItemEnabled[23]:=True;  //patch\101
      WizardForm.ComponentsList.ItemEnabled[24]:=True;  //patch\102
      OldEvent_ComponentsListClickCheck(Sender);
    end
  else
    begin
      WizardForm.ComponentsList.ItemEnabled[23]:=False;  //patch\101
      WizardForm.ComponentsList.ItemEnabled[24]:=False;  //patch\102
      OldEvent_ComponentsListClickCheck(Sender);
    end;

  If IsComponentSelected('Hellfire\patch\100') then
    begin
      WizardForm.ComponentsList.ItemEnabled[31]:=False     //Barbariantest
      OldEvent_ComponentsListClickCheck(Sender);
    end
  else
    begin
      WizardForm.ComponentsList.ItemEnabled[31]:=True;
      OldEvent_ComponentsListClickCheck(Sender);
    end;
    
  If IsComponentSelected('Diablo\Local\Deusch') or IsComponentSelected('Diablo\Local\Englisch') then
    begin
      WizardForm.ComponentsList.ItemEnabled[12]:=True   //Diablo\patch\109b
      OldEvent_ComponentsListClickCheck(Sender);
    end
  else
    begin
      WizardForm.ComponentsList.ItemEnabled[12]:=False;
      OldEvent_ComponentsListClickCheck(Sender);
    end;
    
  If IsComponentSelected('Diablo\Local\Deusch') then
    begin
      WizardForm.ComponentsList.ItemEnabled[8]:=False   //Diablo\patch\100
      OldEvent_ComponentsListClickCheck(Sender);
    end
  else
    begin
      WizardForm.ComponentsList.ItemEnabled[8]:=True;
      OldEvent_ComponentsListClickCheck(Sender);
    end;

  If IsComponentSelected('Diablo\patch\109') or IsComponentSelected('Diablo\patch\109b') then
    begin
      WizardForm.ComponentsList.ItemEnabled[14]:=True   //Diablo\UPD
      OldEvent_ComponentsListClickCheck(Sender);
    end
  else
    begin
      WizardForm.ComponentsList.ItemEnabled[14]:=False;
      OldEvent_ComponentsListClickCheck(Sender);
    end;

  If IsComponentSelected('Diablo\Local\Deusch') then
    begin
      WizardForm.ComponentsList.ItemEnabled[8]:=False   //Diablo\patch\100
      OldEvent_ComponentsListClickCheck(Sender);
    end
  else
    begin
      WizardForm.ComponentsList.ItemEnabled[8]:=True;
      OldEvent_ComponentsListClickCheck(Sender);
    end;
end;



procedure InitializeWizard;
begin
with WizardForm.ComponentsList do
  begin
    OldEvent_ComponentsListClickCheck := OnClickCheck;
    OnClickCheck := @ComponentsListClickCheck;
    ItemEnabled[9]:=False;  //patch\107
    ItemEnabled[10]:=False;  //patch\108
    ItemEnabled[11]:=False;  //patch\109
    ItemEnabled[12]:=False;  //patch\109b
    ItemEnabled[14]:=False;  //Diablo\UPD
    TreeViewStyle := True;
  end;
end;


нашёл конфликт!


дочерний элемент радиокнопки не может быть фиксирован
речь идёт о этом компоненте
Name: "Diablo\UPD"; Description: Активировать UPD; Flags: disablenouninstallwarning; Types: full

и куске процедуры
If IsComponentSelected('Diablo\patch\109') then
begin
WizardForm.ComponentsList.ItemEnabled[14]:=True //Diablo\UPD
OldEvent_ComponentsListClickCheck(Sender);
end
else
begin
WizardForm.ComponentsList.ItemEnabled[14]:=False;
OldEvent_ComponentsListClickCheck(Sender);
end;
те если выбрать патч, то только активировать

достаточно просто чтобы он был отмечен.
а если пользователь снимет галку, то Diablo\patch\109 не отмечен.
очень сложно с этими номерами понять логику.
Пересмотри
а лучше начни писать заново, проверяя после каждого действия всё ли работает

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

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

Отправлено: 15:57, 07-04-2012 | #1449


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

Старожил


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

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


Цитата Johny777:
речь идёт о этом компоненте
Name: "Diablo\UPD"; Description: Активировать UPD; Flags: disablenouninstallwarning; Types: full »
Нет, с этим вроди все в норме. От зависаний я избавился удалив:

Код: Выделить весь код
begin
If IsComponentSelected('Hellfire\patch\100') then
WizardForm.ComponentsList.ItemEnabled[31]:=False   //Barbariantest
else
WizardForm.ComponentsList.ItemEnabled[31]:=True;
OldEvent_ComponentsListClickCheck(Sender);
end;
Но что тут нелогичного?..

Отправлено: 17:33, 07-04-2012 | #1450



Компьютерный форум 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




 
Переход