abtool/dmain.pas

118 lines
3.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

unit dMain;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Controls, Menus, uPackage, uPackageList;
type
{ TdmMain }
TdmMain = class(TDataModule)
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);
private
// Подготовка директорий
procedure PrepareDirs();
// Подготовка списков пакетов
procedure PreparePackages();
public
{ Публичные переменные, которые доступны во всех юнитах с подключенным uses ..., dMain }
// путь к файлу ABTool.exe
ABToolExePath: String;
// путь к директории ABTool
ABToolDataPath: String;
// путь к директории ABTool\Packages
ABToolPkgPath: String;
// путь к директории ABTool\Languages
ABToolLangPath: String;
// путь к директории ABTool\Logs
ABToolLogPath: String;
// Список объектов пакетов программ для установки
SoftPackages: TPackageList;
// Список объектов пакетов утилит для запуска
ToolsPackages: TPackageList;
end;
var
dmMain: TdmMain;
implementation
{$R *.lfm}
{ TdmMain }
{------------------------------------------------------------------------------
Конструктор: TdmMain.Create()
Назначение: Создание датамодуля, подготовка путей и списков пакетов
Вх. параметры: Sender: TObject
------------------------------------------------------------------------------}
procedure TdmMain.DataModuleCreate(Sender: TObject);
begin
PrepareDirs();
PreparePackages();
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;
end.