Меню выбора, кроме инвертирования
This commit is contained in:
parent
ddb1d7ca8f
commit
15d4e0bf31
@ -3713,6 +3713,7 @@ object dmMain: TdmMain
|
|||||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
}
|
}
|
||||||
ImageIndex = 95
|
ImageIndex = 95
|
||||||
|
OnClick = mbCheckAllClick
|
||||||
end
|
end
|
||||||
object mbCheckInvert: TMenuItem
|
object mbCheckInvert: TMenuItem
|
||||||
Caption = 'Инвертировать'
|
Caption = 'Инвертировать'
|
||||||
@ -3793,6 +3794,7 @@ object dmMain: TdmMain
|
|||||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
}
|
}
|
||||||
ImageIndex = 96
|
ImageIndex = 96
|
||||||
|
OnClick = mbCheckNoneClick
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object mbOptions: TMenuItem
|
object mbOptions: TMenuItem
|
||||||
|
71
dmain.pas
71
dmain.pas
@ -5,7 +5,7 @@ unit dMain;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, FileUtil, Controls, Menus, uPackage, uPackageList;
|
Classes, SysUtils, FileUtil, Controls, Menus, VirtualTrees, uPackage, uPackageList;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
@ -35,6 +35,8 @@ type
|
|||||||
pmInstallTree: TPopupMenu;
|
pmInstallTree: TPopupMenu;
|
||||||
pmInstallCheck: TPopupMenu;
|
pmInstallCheck: TPopupMenu;
|
||||||
procedure DataModuleCreate(Sender: TObject);
|
procedure DataModuleCreate(Sender: TObject);
|
||||||
|
procedure mbCheckAllClick(Sender: TObject);
|
||||||
|
procedure mbCheckNoneClick(Sender: TObject);
|
||||||
procedure mbCollapseTreeClick(Sender: TObject);
|
procedure mbCollapseTreeClick(Sender: TObject);
|
||||||
procedure mbExpandTreeClick(Sender: TObject);
|
procedure mbExpandTreeClick(Sender: TObject);
|
||||||
private
|
private
|
||||||
@ -59,6 +61,8 @@ type
|
|||||||
SoftPackages: TPackageList;
|
SoftPackages: TPackageList;
|
||||||
// Список объектов пакетов утилит для запуска
|
// Список объектов пакетов утилит для запуска
|
||||||
ToolsPackages: TPackageList;
|
ToolsPackages: TPackageList;
|
||||||
|
// Установка состояния отметки для всех корневых нод указанного дерева
|
||||||
|
procedure SetVSTCheckState(AVST: TBaseVirtualTree; AState: boolean);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -75,7 +79,6 @@ uses fMain;
|
|||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Конструктор: TdmMain.Create()
|
Конструктор: TdmMain.Create()
|
||||||
Назначение: Создание датамодуля, подготовка путей и списков пакетов
|
Назначение: Создание датамодуля, подготовка путей и списков пакетов
|
||||||
Вх. параметры: Sender: TObject
|
|
||||||
------------------------------------------------------------------------------}
|
------------------------------------------------------------------------------}
|
||||||
procedure TdmMain.DataModuleCreate(Sender: TObject);
|
procedure TdmMain.DataModuleCreate(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
@ -83,6 +86,67 @@ begin
|
|||||||
PreparePackages();
|
PreparePackages();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Конструктор: TdmMain.SetVSTCheckState()
|
||||||
|
Назначение: Установка состояния отметки для всех корневых нод указанного дерева
|
||||||
|
Вх. параметры:
|
||||||
|
AVST: TBaseVirtualTree - дерево
|
||||||
|
AState: boolean - состояние отметок: TRUE выбрать все, FALSE снять выбор со всех
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TdmMain.SetVSTCheckState(AVST: TBaseVirtualTree; AState: boolean);
|
||||||
|
var
|
||||||
|
Node: PVirtualNode;
|
||||||
|
|
||||||
|
// Установка состояния отметки ноды-родителя дочерним нодам
|
||||||
|
procedure CheckChildNodes(ANode: PVirtualNode);
|
||||||
|
var
|
||||||
|
ChildNode: PVirtualNode;
|
||||||
|
begin
|
||||||
|
ChildNode := AVST.GetFirstChild(ANode);
|
||||||
|
while Assigned(ChildNode) do
|
||||||
|
begin
|
||||||
|
CheckChildNodes(ChildNode);
|
||||||
|
ChildNode^.CheckState := ChildNode^.Parent^.CheckState;
|
||||||
|
ChildNode := AVST.GetNextSibling(ChildNode);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
begin
|
||||||
|
AVST.BeginUpdate;
|
||||||
|
try
|
||||||
|
Node := AVST.GetFirst;
|
||||||
|
while Assigned(Node) do
|
||||||
|
begin
|
||||||
|
if AState = true then
|
||||||
|
Node^.CheckState := csCheckedNormal
|
||||||
|
else
|
||||||
|
Node^.CheckState := csUncheckedNormal;
|
||||||
|
CheckChildNodes(Node);
|
||||||
|
Node := AVST.GetNextSibling(Node);
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
AVST.EndUpdate;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Конструктор: TdmMain.mbCheckAllClick()
|
||||||
|
Назначение: Обработка клика п. меню "Выбрать всё"
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TdmMain.mbCheckAllClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
SetVSTCheckState(fmMain.vstSoftPkgContents, true);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Конструктор: TdmMain.mbCheckNoneClick()
|
||||||
|
Назначение: Обработка клика п. меню "Снять выбор"
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TdmMain.mbCheckNoneClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
SetVSTCheckState(fmMain.vstSoftPkgContents, false);
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Процедура: TdmMain.mbCollapseTreeClick()
|
Процедура: TdmMain.mbCollapseTreeClick()
|
||||||
Назначение: Сворачивание дерева на активной вкладке главного окна
|
Назначение: Сворачивание дерева на активной вкладке главного окна
|
||||||
@ -138,8 +202,5 @@ begin
|
|||||||
ToolsPackages.Load(ptTools);
|
ToolsPackages.Load(ptTools);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
object fmMain: TfmMain
|
object fmMain: TfmMain
|
||||||
Left = 299
|
Left = 430
|
||||||
Height = 450
|
Height = 450
|
||||||
Top = 82
|
Top = 108
|
||||||
Width = 350
|
Width = 350
|
||||||
BorderIcons = [biSystemMenu, biMinimize]
|
BorderIcons = [biSystemMenu, biMinimize]
|
||||||
Caption = 'ABTool'
|
Caption = 'ABTool'
|
||||||
@ -3226,6 +3226,7 @@ object fmMain: TfmMain
|
|||||||
TabHeight = 20
|
TabHeight = 20
|
||||||
TabIndex = 0
|
TabIndex = 0
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
|
OnChange = PageControlChange
|
||||||
object tabSoft: TTabSheet
|
object tabSoft: TTabSheet
|
||||||
Caption = 'Установка'
|
Caption = 'Установка'
|
||||||
ClientHeight = 402
|
ClientHeight = 402
|
||||||
|
12
fmain.pas
12
fmain.pas
@ -60,6 +60,7 @@ type
|
|||||||
procedure btnSoftPkgReloadClick(Sender: TObject);
|
procedure btnSoftPkgReloadClick(Sender: TObject);
|
||||||
// Обрабока клика по кнопке обновления выпадающего меню пакетов утилит
|
// Обрабока клика по кнопке обновления выпадающего меню пакетов утилит
|
||||||
procedure btnToolsPkgReloadClick(Sender: TObject);
|
procedure btnToolsPkgReloadClick(Sender: TObject);
|
||||||
|
procedure PageControlChange(Sender: TObject);
|
||||||
// Отображение отметок в нодах дерева программ
|
// Отображение отметок в нодах дерева программ
|
||||||
procedure vstSoftPkgContentsInitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode;
|
procedure vstSoftPkgContentsInitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode;
|
||||||
var InitialStates: TVirtualNodeInitStates);
|
var InitialStates: TVirtualNodeInitStates);
|
||||||
@ -208,6 +209,7 @@ procedure TfmMain.FormCreate(Sender: TObject);
|
|||||||
begin
|
begin
|
||||||
ReloadPackagesList(ptSoft);
|
ReloadPackagesList(ptSoft);
|
||||||
ReloadPackagesList(ptTools);
|
ReloadPackagesList(ptTools);
|
||||||
|
PageControl.ActivePageIndex := 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
@ -228,6 +230,16 @@ begin
|
|||||||
ReloadPackagesList(ptTools);
|
ReloadPackagesList(ptTools);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Процедура: TfmMain.PageControlChange()
|
||||||
|
Назначение: Обрабока переключения вкладок
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TfmMain.PageControlChange(Sender: TObject);
|
||||||
|
begin
|
||||||
|
// меню выбора должно быть активно только на вкладке "Установка"
|
||||||
|
dmMain.mbCheck.Enabled := PageControl.ActivePageIndex = 0;
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Процедура: TfmMain.vstSoftPkgContentsGetText()
|
Процедура: TfmMain.vstSoftPkgContentsGetText()
|
||||||
Назначение: Отображение имён программ в нодах дерева программ
|
Назначение: Отображение имён программ в нодах дерева программ
|
||||||
|
Loading…
Reference in New Issue
Block a user