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

Показать сообщение отдельно

Аватара для 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