abtool/fmain.pas

135 lines
4.7 KiB
Plaintext
Raw Normal View History

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,
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;
vstToolsPkgContents: TVirtualStringTree;
// Создание формы и обновление выпадающих меню пакетов программ и утилит
2019-01-12 17:05:16 +00:00
procedure FormCreate(Sender: TObject);
// Обрабока клика по кнопке обновления выпадающего меню пакетов программ
procedure btnSoftPkgReloadClick(Sender: TObject);
// Обрабока клика по кнопке обновления выпадающего меню пакетов утилит
procedure btnToolsPkgReloadClick(Sender: TObject);
2019-01-12 17:05:16 +00:00
private
// Перезагрузка списка пакетов и выпадающих меню пакетов по указанному типу
procedure ReloadPackagesList(APackageType: TPackageType);
2019-01-12 17:05:16 +00:00
public
end;
var
fmMain: TfmMain;
implementation
{$R *.lfm}
{ TfmMain }
{------------------------------------------------------------------------------
Процедура: 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
ReloadPackagesList(ptSoft);
2019-01-12 17:05:16 +00:00
end;
{------------------------------------------------------------------------------
Процедура: TfmMain.btnToolsPkgReloadClick()
Назначение: Обрабока клика по кнопке обновления выпадающего меню пакетов утилит
Вх. параметры: Sender: TObject
------------------------------------------------------------------------------}
procedure TfmMain.btnToolsPkgReloadClick(Sender: TObject);
2019-01-12 17:05:16 +00:00
begin
ReloadPackagesList(ptTools);
2019-01-12 17:05:16 +00:00
end;
{------------------------------------------------------------------------------
Процедура: 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.