Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)

Модерирует : gyra, Maz

Widok (23-11-2010 10:55): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

DeKaNszn

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
[Files]
Source: C:\1\*; DestDir: {code:GetPath|1}; Flags: recursesubdirs createallsubdirs;  
Source: C:\2\*; DestDir: {code:GetPath|2}; Flags: recursesubdirs createallsubdirs;  
Source: C:\3\*; DestDir: {code:GetPath|3}; Flags: recursesubdirs createallsubdirs;  
Source: C:\4\*; DestDir: {code:GetPath|4}; Flags: recursesubdirs createallsubdirs;  
[CustomMessages]
russian.Install=Установить
name1=11111
name2=22222
name3=33333
name4=44444
path1={app}
path2={src}
path3={tmp}
 
[Code]
Const
N = 4; //здесь число необходимых флажков
 
var
  CheckBoxes: Array [1..N] of TNewCheckBox;
  Edits: Array [1..N] of TEdit;
  Buttons: Array [1..N] of TNewButton;
  pathes: Array[1..N] of String;
   
function GetPath(Param: String): String;
begin
  Result := ExpandConstant(pathes[StrToInt(Param)]);
end;
 
procedure SelectDirButtonClick(Sender: TObject);
var
  Btn: TNewButton;
  Str: String;
begin
  Btn := TNewButton(Sender);
  if BrowseForFolder('Âûáåðèòå ïàïêó äëÿ ' + CustomMessage('name' + IntToStr(Btn.Tag)), Str, true)
    then pathes[Btn.Tag] := Str
  else pathes[Btn.Tag] := CustomMessage('path' + IntToStr(Btn.Tag));
end;
 
procedure CheckboxClick(Sender: TObject);
var
  Chb: TNewCheckBox;
  Enable: Boolean;
  Index: Byte;
begin
  Chb := TNewCheckBox(Sender);
  Enable := Chb.Checked;
  Edits[Chb.Tag].Enabled := Enable;
  Buttons[Chb.Tag].Enabled := Enable;
  Enable := false
  for Index := 1 To N Do Enable := Enable or CheckBoxes[Index].Checked;
  WizardForm.NextButton.Enabled := Enable;
end;
 
procedure InitializeWizard();
Var
 Index: Byte;
begin
  with WizardForm do begin
    SelectDirBitmapImage.Visible := False;
    DiskSpaceLabel.Visible := False;
    SelectDirBrowseLabel.Visible := False;
    SelectDirLabel.Visible := False;
    pathes[N] := '{app}';
 
    For Index := 1 To N Do begin
      CheckBoxes[Index] := TNewCheckBox.Create(WizardForm);
      with CheckBoxes[Index] do
      begin
        Name := 'NewCheckBox' + IntToStr(Index);
        Parent := SelectDirPage;
        Left := ScaleX(5);
        Top := ScaleY(5) + (Index - 1) * 50;
        Width := SelectDirPage.Width - 10;
        Height := ScaleY(20);
        Caption := CustomMessage('Install') + ' ' + CustomMessage('name' + IntToStr(Index));
        Checked := True;
        State := cbChecked;
        TabOrder := 5 + (Index - 1) * 3;
        Tag := Index;
        OnClick := @CheckboxClick;
      end;
 
      if Index = N
        then Edits[Index] := DirEdit
      else Edits[Index] := TEdit.Create(WizardForm);
      with Edits[Index] do
      begin
        Left := CheckBoxes[Index].Left;
          Top := CheckBoxes[Index].Top + CheckBoxes[Index].Height + 5;
        Width := SelectDirPage.Width - 90;
        Height := ScaleY(23);
        Enabled := CheckBoxes[Index].Checked;
        if Index <> N
          then begin
            Name := 'Edit' + IntToStr(Index);
            Parent := SelectDirPage;
            pathes[Index] := CustomMessage('path' + IntToStr(Index));
            Text := GetPath(IntToStr(Index));
            TabOrder := CheckBoxes[Index].TabOrder + 1;
          end;
      end;
 
      if Index = N
        then Buttons[Index] := DirBrowseButton
      else Buttons[Index] := TNewButton.Create(WizardForm);
      with Buttons[Index] do
      begin
        Left := Edits[Index].Left + Edits[Index].Width + 5;
        Top := Edits[Index].Top;
        Width := ScaleX(75);
        Height := Edits[Index].Height;
        Enabled := CheckBoxes[Index].Checked;
        if Index <> N
          then begin
            Name := 'NewButton' + IntToStr(Index);
            Parent := SelectDirPage;
            Caption := SetupMessage(msgButtonBrowse);
            OnClick := @SelectDirButtonClick;
            Tag := Index;
            TabOrder := Edits[Index].TabOrder + 1;
          end;
      end;
    end;
  end;
end;

Всего записей: 596 | Зарегистр. 03-03-2009 | Отправлено: 16:17 05-11-2010
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)
Widok (23-11-2010 10:55): лимит страниц. продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru