Имя пользователя:
Пароль:
 

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

Аватара для Mailchik

Пользователь


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

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


Цитата JHeavy:
Ну отметить a "навсегда" значит не получится, просто - a программа, a\b и a\c - желаемые дополнения, без которых программа также ставится, решения нет?
читать дальше »
Код: Выделить весь код
[Setup]
AppName=Test
AppVerName=Test
DefaultDirname={pf}\Test

[Types]
Name: full; Description: Full installation; Flags: iscustom

[Components]
Name: a; Description: a; Types: full; Flags: fixed checkablealone
Name: a\b; Description: a\b; 
Name: a\c; Description: a\c;

[Code]
procedure TestClick(Sender: TObject);
 begin
  with WizardForm.ComponentsList do begin
   if Checked[1] then begin   //если выбран 2-й компонент (отсчет начинается с 0)
    ItemEnabled[2]:= True;    //то 3-й компонент активен
    end else begin            //если нет
    ItemEnabled[2]:= False;   //то не активен 3-й компонент
    Checked[2]:= False;       //и убираем "отмеченность" 3-го компонента
   end;
  end;
end;

procedure InitializeWizard();
 begin
  with WizardForm.ComponentsList do begin
   OnClickCheck := @TestClick;
   TestClick(nil);
  end;
end;

Цитата JHeavy:
добавьте комментарии для "усвоения материала"
читать дальше »
Код: Выделить весь код
[Setup]
AppName=Test
AppVerName=Test
DefaultDirname={pf}\Test

[Types]
Name: full; Description: Full installation; Flags: iscustom

[Components]
Name: a; Description: a; Types: full; Flags: fixed checkablealone
Name: a\b; Description: a\b;
Name: a\c; Description: a\c;

[Code]
procedure TestClick(Sender: TObject);
 begin
  with WizardForm.ComponentsList do begin
   if Checked[1] then begin   //если выбран 2-й компонент (отсчет начинается с 0)
    ItemEnabled[2]:= True;    //то 3-й компонент активен
    end else begin            //если нет
    ItemEnabled[2]:= False;   //то не активен 3-й компонент
    Checked[2]:= False;       //и убираем "отмеченность" 3-го компонента
   end;
  end;
end;

procedure InitializeWizard();
 begin
  with WizardForm.ComponentsList do begin
   OnClickCheck := @TestClick;
   TestClick(nil);
  end;
end;

Цитата JHeavy:
как добавлять компоненты (что куда дописывать если их много будет)
читать дальше »
Код: Выделить весь код
[Setup]
AppName=Test
AppVerName=Test
DefaultDirname={pf}\Test

[Types]
Name: full; Description: Full installation; Flags: iscustom

[Components]
//a первый по списку, но имеет значение 0 в компонент листе и остальные компоненты по порядку
Name: a; Description: a; Types: full; Flags: fixed checkablealone
Name: a\b; Description: a\b;
Name: a\c; Description: a\c;
Name: a\d; Description: a\d;
Name: a\e; Description: a\e;
Name: b; Description: b; Types: full; Flags: fixed
Name: b\b; Description: b\b;
Name: b\c; Description: b\c;

[Code]
procedure TestClick(Sender: TObject);
 begin
  with WizardForm.ComponentsList do begin
   if Checked[1] then begin   //если выбран 2-й компонент (a\b) (отсчет начинается с 0)
    ItemEnabled[2]:= True;    //то 3-й компонент (a\c) активен
    ItemEnabled[6]:= True;    //7-й компонент (b\b) активен
    end else begin            //если нет
    ItemEnabled[2]:= False;   //то не активен 3-й компонент (a\c)
    Checked[2]:= False;       //и убираем "отмеченность" 3-го компонента (a\c)
    ItemEnabled[6]:= False;   //не активен 7-й компонент (b\b)
   end;
  end;
end;

procedure InitializeWizard();
 begin
  with WizardForm.ComponentsList do begin
   OnClickCheck := @TestClick;
   TestClick(nil);
  end;
end;

Последний раз редактировалось Mailchik, 10-10-2012 в 00:14.

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

Отправлено: 23:33, 09-10-2012 | #1106