Вопрос Сделать на подобии TasksList

XLASER

Новичок
Ребят подскажите пожалуйста как добавить WizardForm.TasksList 2? Что то не пойму как это сделать! Желательно на примере. Заранее благодарю!!!
 

sergey3695

Ветеран
Модератор
XLASER,
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
OutputDir=.

[Tasks]
Name: task1; Description: Доп. программное обеспечение; Flags: exclusive
Name: task1\task2; Description: DirectX; Flags: unchecked
Name: task1\task3; Description: Microsoft Visual C++ 2005 Redist; Flags: unchecked

[code]
var
  CheckListBox: TNewCheckListBox;

procedure InitializeWizard();
begin
  CheckListBox := TNewCheckListBox.Create(WizardForm);
with CheckListBox do
begin
  Parent := WizardForm.SelectTasksPage;
  SetBounds(WizardForm.TasksList.Left, WizardForm.TasksList.Top+ScaleY(80), WizardForm.TasksList.Width, ScaleY(80));

  AddCheckBoxEx('Язык интерфейса:', '', 0, False, False, True, False, nil, True);
  AddRadioButtonEx('Русский', '', 1, True, True, nil, False);
  AddRadioButtonEx('Английский', '', 1, True, True, nil, True);

  Color:= clWindow;
  ParentColor:= True;
  WantTabs:= True;
  BorderStyle:= bsNone;
  ItemHeightFixed := True;
  HideSelection := True;
end;
end;

// if CheckListBox.Checked[1] then 
// Русский - если отмечен то выполняется.
 

XLASER

Новичок
sergey3695, Мне бы на подобие этого!
Код:
WizardForm.TasksList.TreeViewStyle := True;
WizardForm.TasksList.Cursor := crHand;
WizardForm.TasksList.Parent := Panel1;
WizardForm.TasksList.color := clblack;
WizardForm.TasksList.Font.Style:=[fsBold];
WizardForm.TasksList.SetBounds(ScaleX(0),ScaleY(65),ScaleX(250),ScaleY(210));
WizardForm.TasksList.Font.Color:=clWhite;
Это получается ярлыки на раб.стол

А мне ещё надо добавить софт но только в другую сторону
 

vint56

Ветеран
Проверенный
XLASER, а как такой пример
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Tasks]
Name: VCCheck; Description: Установить Microsoft Visual C++
Name: PhysXCheck; Description: Установить Nvidia PhysX

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

[Components]
Name: Icon; Description: Дополнительные задачи:;
Name: Icon\DesktopIcon; Description: Создать ярлык на Рабочем столе; Types: full
Name: Icon\StartMenuIcon; Description: Создать ярлыки в меню «Пуск»; Types: full

[code]
procedure InitializeWizard();
begin
  with WizardForm.ComponentsList do
  begin
    Parent := WizardForm.SelectTasksPage;
    Width := ScaleX(215);
    Color := clMenu;
    BorderStyle := bsNone;
  end;
  with WizardForm.TasksList do
  begin
    Left := ScaleX(224);
    Width := ScaleX(193);
    Top := ScaleY(55);
  end;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  if (PageID = 7) then
  Result:= True;
end;
 

XLASER

Новичок
vint56, Благодарю! Но всё это не подходит. т.к у меня выскакивает окно в ней все настройки.
Вот скрин:
 

vint56

Ветеран
Проверенный
XLASER, поменяй параметры WizardForm.TasksList
Left := ScaleX(224);
Top := ScaleY(55);
 

sergey3695

Ветеран
Модератор
XLASER, не ну ппц..
Left и Top пропиши нужные координаты.
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
OutputDir=.

[Icons]
Name: {group}\My Program; Filename: {app}\My Program.exe
Name: {group}\{cm:UninstallProgram,My Program}; Filename: {uninstallexe}
Name: {commondesktop}\My Program; Filename: {app}\My Program.exe; Tasks: desktopicon
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\My Program; Filename: {app}\My Program.exe; Tasks: quicklaunchicon

[Run]
Filename: {src}\Redist\DirectX\DXSETUP.exe; Parameters: /silent; StatusMsg: Обновление DirectX...; Flags: waituntilterminated; Check: CheckListBoxChecked(3);
Filename: {src}\Redist\vcredist_x86.exe; Parameters: /q; StatusMsg: Установка Microsoft Visual C++ 2005 SP1 Redist...; Flags: runhidden waituntilterminated; Check: CheckListBoxChecked(2);

[Tasks]
Name: quicklaunchicon; Description: в меню; GroupDescription: доп ярлыки; Flags: unchecked
Name: desktopicon; Description: раб стол; GroupDescription: доп ярлыки; Flags: unchecked

[code]
var
  CheckListBox: TNewCheckListBox;

function CheckListBoxChecked(int: integer): boolean;
begin
if (int >= 0) and (int < CheckListBox.ItemCount) then
  Result:= CheckListBox.Checked[int]
else
  Result:= false;
end;

procedure InitializeWizard();
begin
with WizardForm.TasksList do
begin
  TreeViewStyle := True;
  Cursor := crHand;
  color := clblack;
  Font.Style:=[fsBold];
  SetBounds(ScaleX(0),ScaleY(65),ScaleX(200),ScaleY(210));
  Font.Color:=clWhite;
end;

  CheckListBox := TNewCheckListBox.Create(WizardForm);
with CheckListBox do
begin
  Parent := WizardForm.SelectTasksPage;
  SetBounds(WizardForm.TasksList.Left+ScaleX(200), ScaleY(65), ScaleX(200),ScaleY(210));

  AddCheckBoxEx('Доп. программное обеспечение', '', 1, True, True, False, True, nil, True);
  AddCheckBoxEx('DirectX', '', 1, False, True, False, True, nil, True);
  AddCheckBoxEx('Microsoft Visual C++ 2005 Redist', '', 1, False, True, False, True, nil, True);

  Font.Color:=clWhite;
  TreeViewStyle := True;
  Color:= clblack;
  Cursor := crHand;
  Font.Style:=[fsBold];
  WantTabs:= True;
  BorderStyle:= bsNone;
  ItemHeightFixed := True;
  HideSelection := True;
end;
end;
переноси.
Код:
with CheckListBox do
begin
...
  SetBounds(это, это, ScaleX(200),ScaleY(210));
 

XLASER

Новичок
vint56, У меня идут доп.программы с ярлыками и переносятся в месте на права. А мне надо отдельно от ярлыков
 

vint56

Ветеран
Проверенный
XLASER, попробуй так теперь двигай PanelTask,PanelComponent меняй координаты left и top
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Tasks]
Name: VCCheck; Description: Установить Microsoft Visual C++
Name: PhysXCheck; Description: Установить Nvidia PhysX

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

[Components]
Name: Icon; Description: Дополнительные задачи:;
Name: Icon\DesktopIcon; Description: Создать ярлык на Рабочем столе; Types: full
Name: Icon\StartMenuIcon; Description: Создать ярлыки в меню «Пуск»; Types: full

[code]
var
PanelTask,PanelComponent: TPanel;

procedure InitializeWizard();
begin
PanelComponent := TPanel.Create(WizardForm);
with PanelComponent do
begin
Parent := WizardForm.SelectTasksPage;
Left := ScaleX(0);
Top := ScaleY(30);
Width := ScaleX(185);
Height := ScaleY(192);
BevelOuter := bvNone;
end;

PanelTask := TPanel.Create(WizardForm);
with PanelTask do
begin
Parent := WizardForm.SelectTasksPage;
Left := ScaleX(220);
Top := ScaleY(30);
Width := ScaleX(185);
Height := ScaleY(192);
BevelOuter := bvNone;
end;

with WizardForm.ComponentsList do
begin
Parent := PanelComponent;
Width := ScaleX(215);
Color := clMenu;
BorderStyle := bsNone;
end;

with WizardForm.TasksList do
begin
Parent := PanelTask;
Left := ScaleX(0);
Width := ScaleX(193);
Top := ScaleY(55);
end;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID = 7) then
Result:= True;
end;
 
Последнее редактирование:

XLASER

Новичок
vint56, Нет, что то не получается.

А возможно ли создать дополнительный WizardForm.TasksList (1) т.к есть уже WizardForm.TasksList и в TasksList (1) уже прописать параметры для доп прог?
 
Последнее редактирование:
Сверху