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

  • Автор темы Автор темы XLASER
  • Дата начала Дата начала

XLASER

Новичок
Ребят подскажите пожалуйста как добавить WizardForm.TasksList 2? Что то не пойму как это сделать! Желательно на примере. Заранее благодарю!!!
 
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 
// Русский - если отмечен то выполняется.
 
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;

Это получается ярлыки на раб.стол

А мне ещё надо добавить софт но только в другую сторону
 
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;
 
vint56, Благодарю! Но всё это не подходит. т.к у меня выскакивает окно в ней все настройки.
Вот скрин:
c728cb4d0f428b88f7ffd1317e0ad770.png
 
XLASER, поменяй параметры WizardForm.TasksList
Left := ScaleX(224);
Top := ScaleY(55);
 
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));
 
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;
 
Последнее редактирование:
vint56, Нет, что то не получается.

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