2019-01-12 17:05:16 +00:00
|
|
|
|
unit fMain;
|
|
|
|
|
|
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
|
|
uses
|
|
|
|
|
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
|
|
|
|
|
StdCtrls, ExtCtrls, Buttons, ActnList, EditBtn, Menus, VirtualTrees, Types,
|
2019-01-12 20:24:13 +00:00
|
|
|
|
dMain, uFileUtils, uPackage, uPackageUtils, uPackageList;
|
2019-01-12 17:05:16 +00:00
|
|
|
|
|
|
|
|
|
type
|
|
|
|
|
|
|
|
|
|
{ TfmMain }
|
|
|
|
|
|
|
|
|
|
TfmMain = class(TForm)
|
|
|
|
|
btnSoftStart: TButton;
|
|
|
|
|
btnToolsPkgEdit: TSpeedButton;
|
|
|
|
|
btnToolsPkgReload: TSpeedButton;
|
|
|
|
|
btnToolsRun: TButton;
|
|
|
|
|
cmbSoftPkgSelect: TComboBox;
|
|
|
|
|
cmbToolsPkgSelect: TComboBox;
|
|
|
|
|
edSoftSearch: TEdit;
|
|
|
|
|
edToolsSearch: TEdit;
|
|
|
|
|
labSoftPkgDescription: TLabel;
|
|
|
|
|
labToolsPkgDescription: TLabel;
|
|
|
|
|
PageControl: TPageControl;
|
|
|
|
|
pnSoftTop: TPanel;
|
|
|
|
|
btnSoftPkgEdit: TSpeedButton;
|
|
|
|
|
btnSoftPkgReload: TSpeedButton;
|
|
|
|
|
pnToolsTop: TPanel;
|
|
|
|
|
tabSoft: TTabSheet;
|
|
|
|
|
tabLog: TTabSheet;
|
|
|
|
|
tabSystem: TTabSheet;
|
|
|
|
|
tabTools: TTabSheet;
|
|
|
|
|
vstSoftPkgContents: TVirtualStringTree;
|
2019-01-12 20:24:13 +00:00
|
|
|
|
vstToolsPkgContents: TVirtualStringTree;
|
|
|
|
|
// Создание формы и обновление выпадающих меню пакетов программ и утилит
|
2019-01-12 17:05:16 +00:00
|
|
|
|
procedure FormCreate(Sender: TObject);
|
2019-01-12 20:24:13 +00:00
|
|
|
|
// Обрабока клика по кнопке обновления выпадающего меню пакетов программ
|
|
|
|
|
procedure btnSoftPkgReloadClick(Sender: TObject);
|
|
|
|
|
// Обрабока клика по кнопке обновления выпадающего меню пакетов утилит
|
|
|
|
|
procedure btnToolsPkgReloadClick(Sender: TObject);
|
2019-01-12 17:05:16 +00:00
|
|
|
|
private
|
2019-01-12 20:24:13 +00:00
|
|
|
|
// Перезагрузка списка пакетов и выпадающих меню пакетов по указанному типу
|
|
|
|
|
procedure ReloadPackagesList(APackageType: TPackageType);
|
2019-01-12 17:05:16 +00:00
|
|
|
|
public
|
|
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
var
|
|
|
|
|
fmMain: TfmMain;
|
|
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
|
|
|
|
|
{$R *.lfm}
|
|
|
|
|
|
|
|
|
|
{ TfmMain }
|
2019-01-12 20:24:13 +00:00
|
|
|
|
|
|
|
|
|
{------------------------------------------------------------------------------
|
|
|
|
|
Процедура: TfmMain.ReloadPackagesList()
|
|
|
|
|
Назначение: Создание формы и обновление выпадающих меню пакетов программ и утилит
|
|
|
|
|
Вх. параметры: Sender: TObject
|
|
|
|
|
------------------------------------------------------------------------------}
|
|
|
|
|
procedure TfmMain.FormCreate(Sender: TObject);
|
|
|
|
|
begin
|
|
|
|
|
ReloadPackagesList(ptSoft);
|
|
|
|
|
ReloadPackagesList(ptTools);
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
{------------------------------------------------------------------------------
|
|
|
|
|
Процедура: TfmMain.btnSoftPkgReloadClick()
|
|
|
|
|
Назначение: Обрабока клика по кнопке обновления выпадающего меню пакетов программ
|
|
|
|
|
Вх. параметры: Sender: TObject
|
|
|
|
|
------------------------------------------------------------------------------}
|
2019-01-12 17:05:16 +00:00
|
|
|
|
procedure TfmMain.btnSoftPkgReloadClick(Sender: TObject);
|
|
|
|
|
begin
|
2019-01-12 20:24:13 +00:00
|
|
|
|
ReloadPackagesList(ptSoft);
|
2019-01-12 17:05:16 +00:00
|
|
|
|
end;
|
2019-01-12 20:24:13 +00:00
|
|
|
|
|
|
|
|
|
{------------------------------------------------------------------------------
|
|
|
|
|
Процедура: TfmMain.btnToolsPkgReloadClick()
|
|
|
|
|
Назначение: Обрабока клика по кнопке обновления выпадающего меню пакетов утилит
|
|
|
|
|
Вх. параметры: Sender: TObject
|
|
|
|
|
------------------------------------------------------------------------------}
|
|
|
|
|
procedure TfmMain.btnToolsPkgReloadClick(Sender: TObject);
|
2019-01-12 17:05:16 +00:00
|
|
|
|
begin
|
2019-01-12 20:24:13 +00:00
|
|
|
|
ReloadPackagesList(ptTools);
|
2019-01-12 17:05:16 +00:00
|
|
|
|
end;
|
|
|
|
|
|
2019-01-12 20:24:13 +00:00
|
|
|
|
{------------------------------------------------------------------------------
|
|
|
|
|
Процедура: TfmMain.ReloadPackagesList()
|
|
|
|
|
Назначение: Перезагрузка списка пакетов и выпадающих меню пакетов по указанному типу
|
|
|
|
|
Вх. параметры: APackageType: TPackageType - тип списка пакета
|
|
|
|
|
------------------------------------------------------------------------------}
|
|
|
|
|
procedure TfmMain.ReloadPackagesList(APackageType: TPackageType);
|
|
|
|
|
var
|
|
|
|
|
LastIndex: integer;
|
|
|
|
|
Key: Integer;
|
|
|
|
|
Pkg: TPackage;
|
|
|
|
|
Combo: TComboBox;
|
|
|
|
|
PackageList: TPackageList;
|
|
|
|
|
begin
|
|
|
|
|
case (APackageType) of
|
|
|
|
|
ptSoft: begin
|
|
|
|
|
Combo := cmbSoftPkgSelect;
|
|
|
|
|
PackageList := dmMain.SoftPackages;
|
|
|
|
|
end;
|
|
|
|
|
ptTools: begin
|
|
|
|
|
Combo := cmbToolsPkgSelect;
|
|
|
|
|
PackageList := dmMain.ToolsPackages;
|
|
|
|
|
end;
|
|
|
|
|
ptUnknown: raise Exception.Create('TfmMain.ReloadPackagesList(): передан ptUnknown');
|
|
|
|
|
end;
|
|
|
|
|
LastIndex := Combo.ItemIndex;
|
|
|
|
|
if LastIndex < 0 then
|
|
|
|
|
LastIndex := 0;
|
|
|
|
|
Combo.Clear;
|
|
|
|
|
PackageList.Reload();
|
|
|
|
|
if PackageList.Count > 0 then
|
|
|
|
|
begin
|
|
|
|
|
for Key := 0 to PackageList.Count - 1 do
|
|
|
|
|
begin
|
|
|
|
|
Pkg := PackageList[Key];
|
|
|
|
|
Combo.Items.Add(Pkg.Name + ' (' + ExtractFileName(Pkg.FileName) + ')');
|
|
|
|
|
end;
|
|
|
|
|
end;
|
|
|
|
|
if Combo.Items.Count <= LastIndex then
|
|
|
|
|
LastIndex := Combo.Items.Count - 1;
|
|
|
|
|
Combo.ItemIndex := LastIndex;
|
2019-01-12 17:05:16 +00:00
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
end.
|
|
|
|
|
|