abtool/dmain.pas

146 lines
4.8 KiB
ObjectPascal
Raw Normal View History

2019-01-12 17:05:16 +00:00
unit dMain;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Controls, Menus, uPackage, uPackageList;
2019-01-12 17:05:16 +00:00
type
{ TdmMain }
2019-01-12 17:05:16 +00:00
TdmMain = class(TDataModule)
2019-01-12 17:05:16 +00:00
imgIcons: TImageList;
mmMain: TMainMenu;
mbInstallCheckAll: TMenuItem;
mbInstallExpandTree: TMenuItem;
mbInstallCollapseTree: TMenuItem;
mbInstallCheckInvert: TMenuItem;
mbInstallCheckNone: TMenuItem;
mbTree: TMenuItem;
mbCollapseTree: TMenuItem;
mbExpandTree: TMenuItem;
mbCheck: TMenuItem;
mbCheckAll: TMenuItem;
mbCheckInvert: TMenuItem;
mbCheckNone: TMenuItem;
mbOptions: TMenuItem;
mbHelp: TMenuItem;
mbOnlineHelp: TMenuItem;
mbAbout: TMenuItem;
mbOptonsMain: TMenuItem;
mbOptionsPkg: TMenuItem;
pmInstallTree: TPopupMenu;
pmInstallCheck: TPopupMenu;
procedure DataModuleCreate(Sender: TObject);
procedure mbCollapseTreeClick(Sender: TObject);
procedure mbExpandTreeClick(Sender: TObject);
2019-01-12 17:05:16 +00:00
private
// Подготовка директорий
procedure PrepareDirs();
// Подготовка списков пакетов
procedure PreparePackages();
2019-01-12 17:05:16 +00:00
public
{ Публичные переменные, которые доступны во всех юнитах с подключенным uses ..., dMain }
2019-01-12 17:05:16 +00:00
// путь к файлу ABTool.exe
ABToolExePath: String;
// путь к директории ABTool
ABToolDataPath: String;
// путь к директории ABTool\Packages
ABToolPkgPath: String;
// путь к директории ABTool\Languages
ABToolLangPath: String;
// путь к директории ABTool\Logs
ABToolLogPath: String;
// Список объектов пакетов программ для установки
SoftPackages: TPackageList;
// Список объектов пакетов утилит для запуска
ToolsPackages: TPackageList;
2019-01-12 17:05:16 +00:00
end;
var
dmMain: TdmMain;
2019-01-12 17:05:16 +00:00
implementation
uses fMain;
2019-01-12 17:05:16 +00:00
{$R *.lfm}
{ TdmMain }
{------------------------------------------------------------------------------
Конструктор: TdmMain.Create()
Назначение: Создание датамодуля, подготовка путей и списков пакетов
Вх. параметры: Sender: TObject
------------------------------------------------------------------------------}
procedure TdmMain.DataModuleCreate(Sender: TObject);
begin
PrepareDirs();
PreparePackages();
end;
{------------------------------------------------------------------------------
Процедура: TdmMain.mbCollapseTreeClick()
Назначение: Сворачивание дерева на активной вкладке главного окна
------------------------------------------------------------------------------}
procedure TdmMain.mbCollapseTreeClick(Sender: TObject);
begin
case (fmMain.PageControl.ActivePageIndex) of
0: fmMain.vstSoftPkgContents.FullCollapse();
1: fmMain.vstToolsPkgContents.FullCollapse();
end;
end;
{------------------------------------------------------------------------------
Процедура: TdmMain.mbCollapseTreeClick()
Назначение: Разворачивание дерева на активной вкладке главного окна
------------------------------------------------------------------------------}
procedure TdmMain.mbExpandTreeClick(Sender: TObject);
begin
case (fmMain.PageControl.ActivePageIndex) of
0: fmMain.vstSoftPkgContents.FullExpand();
1: fmMain.vstToolsPkgContents.FullExpand();
end;
end;
{------------------------------------------------------------------------------
Процедура: TdmMain.PreparePackages()
Назначение: Подготовка директорий
------------------------------------------------------------------------------}
procedure TdmMain.PrepareDirs();
begin
ABToolExePath := ExtractFilePath(ParamStr(0));
ABToolDataPath := ABToolExePath + 'ABTool\';
ABToolPkgPath := ABToolDataPath + 'Packages\';
ABToolLangPath := ABToolDataPath + 'Languages\';
ABToolLogPath := ABToolDataPath + 'Logs\';
if not DirectoryExists(ABToolPkgPath) then
ForceDirectories(ABToolPkgPath);
if not DirectoryExists(ABToolLangPath) then
ForceDirectories(ABToolLangPath);
if not DirectoryExists(ABToolLogPath) then
ForceDirectories(ABToolLogPath);
end;
{------------------------------------------------------------------------------
Процедура: TdmMain.PreparePackages()
Назначение: Подготовка списков пакетов
------------------------------------------------------------------------------}
procedure TdmMain.PreparePackages();
begin
SoftPackages := TPackageList.Create;
SoftPackages.Load(ptSoft);
ToolsPackages := TPackageList.Create;
ToolsPackages.Load(ptTools);
end;
2019-01-12 17:05:16 +00:00
2019-01-12 17:05:16 +00:00
end.