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

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

Аватара для Dodakaedr

Ветеран


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

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


Вставлю свои пять копеек
Цитата Chudmin:
А вот как "привязать" чекбоксы к файлам »
Цитата Chudmin:
из первых трёх чекбоксов должен быть выбран обязательно только какой-то один, а четвёртый по желанию »
Example

Код: Выделить весь код
[Setup]
AppName=app
AppVersion=app 1.0
DefaultDirName={pf}\app

[Files]
Source: "{app}\Win_7.txt"; DestDir: "{app}"; Check: Check0();
Source: "{app}\Win_10.txt"; DestDir: "{app}"; Check: Check1();
Source: "{app}\Win_10_2.txt"; DestDir: "{app}"; Check: Check2();
Source: "{app}\Dop_Win_7.txt"; DestDir: "{app}"; Check: Check3();

[Code]
var
Check: array [0..3] of TCheckBox;

function Check0(): boolean;
begin
  Result := Check[0].Checked;
end;

function Check1(): boolean;
begin
  Result := Check[1].Checked;
end;

function Check2(): boolean;
begin
  Result := Check[2].Checked;
end;

function Check3(): boolean;
begin
  Result := Check[3].Checked;
end;

procedure GetCheck(Sender: TObject);
begin
  case sender of
    Check[0]: begin if Check[0].Checked then begin Check[1].Checked := False; Check[2].Checked := False; end; end;
    Check[1]: begin if Check[1].Checked then begin Check[2].Checked := False; Check[0].Checked := False; end; end;
    Check[2]: begin if Check[2].Checked then begin Check[1].Checked := False; Check[0].Checked := False; end; end;
  end;
end;

procedure InitializeWizard();
begin
Check[0] := TCheckBox.Create(WizardForm);
with Check[0] do
begin
Parent := WizardForm.SelectDirPage;
Checked := True;
Left:=ScaleX(4);
Top := ScaleY(100);
Width:=ScaleX(280);
OnClick := @GetCheck;
// Будет Win_7.txt
Caption := ' Стандартные иконки в стиле Win 7';
end;

Check[1] := TCheckBox.Create(WizardForm);
with Check[1] do
begin
Parent := WizardForm.SelectDirPage;
Left:=ScaleX(4);
Top := ScaleY(125);
Width:=ScaleX(280);
OnClick := @GetCheck;
// Будет Win_10.txt
Caption := ' Стандартные иконки в стиле Win 10';
end;

Check[2] := TCheckBox.Create(WizardForm);
with Check[2] do
begin
Parent := WizardForm.SelectDirPage;
Left:=ScaleX(4);
Top := ScaleY(150);
Width:=ScaleX(350);
OnClick := @GetCheck;
// Будет Win_10_2.txt
Caption := ' Станадартные иконки в стиле Win 7 + Win 10';
end;

Check[3] := TCheckBox.Create(WizardForm);
with Check[3] do
begin
Parent := WizardForm.SelectDirPage;
Left:=ScaleX(4);
Top := ScaleY(175);
Width:=ScaleX(280);
// Будет Dop_Win_7.txt
Caption := ' Дополнительные иконки в стиле Win 7';
end;
end;

Цитата ErikPshat:
Как вывести эти же чекбоксы, то только не в главное окно, а в MsgBox? »
На сколько мне известно, то никак.

-------
Inno Setup 5 Ultra Unicode

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

Отправлено: 23:29, 19-11-2018 | #146