135 lines
4.7 KiB
Plaintext
135 lines
4.7 KiB
Plaintext
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;
|
||
|
||
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;
|
||
// Создание формы и обновление выпадающих меню пакетов программ и утилит
|
||
procedure FormCreate(Sender: TObject);
|
||
// Обрабока клика по кнопке обновления выпадающего меню пакетов программ
|
||
procedure btnSoftPkgReloadClick(Sender: TObject);
|
||
// Обрабока клика по кнопке обновления выпадающего меню пакетов утилит
|
||
procedure btnToolsPkgReloadClick(Sender: TObject);
|
||
private
|
||
// Перезагрузка списка пакетов и выпадающих меню пакетов по указанному типу
|
||
procedure ReloadPackagesList(APackageType: TPackageType);
|
||
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
|
||
------------------------------------------------------------------------------}
|
||
procedure TfmMain.btnSoftPkgReloadClick(Sender: TObject);
|
||
begin
|
||
ReloadPackagesList(ptSoft);
|
||
end;
|
||
|
||
{------------------------------------------------------------------------------
|
||
Процедура: TfmMain.btnToolsPkgReloadClick()
|
||
Назначение: Обрабока клика по кнопке обновления выпадающего меню пакетов утилит
|
||
Вх. параметры: Sender: TObject
|
||
------------------------------------------------------------------------------}
|
||
procedure TfmMain.btnToolsPkgReloadClick(Sender: TObject);
|
||
begin
|
||
ReloadPackagesList(ptTools);
|
||
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;
|
||
end;
|
||
|
||
end.
|
||
|