⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uconfingtools.pas

📁 一个基于不需引擎的文件管理系统,使用了许多界面比较好的控件
💻 PAS
字号:
unit uConfingTools;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,ExtCtrls, DB, ABSMain, ComCtrls,uSecPlugInf,uListfrm,ShellApi, Commctrl,
  TB2ToolWindow, TBXDkPanels, SpTBXTabs, TB2Item, TBX, SpTBXItem, TB2Dock;

type
  TToolsfrm = class(TForm)
    Open1: TOpenDialog;
    TBXToolWindow1: TTBXToolWindow;
    SpTBXTabControl1: TSpTBXTabControl;
    SpTBXTabItem1: TSpTBXTabItem;
    SpTBXTabSheet1: TSpTBXTabSheet;
    ToolView: TListView;
    TBXButton1: TTBXButton;
    TBXButton2: TTBXButton;
    TBXButton3: TTBXButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure ToolViewMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure TBXButton1Click(Sender: TObject);
    procedure TBXButton2Click(Sender: TObject);
    procedure TBXButton3Click(Sender: TObject);
  private
    { Private declarations }
    procedure GetPlugList;
    procedure AddItem(PlugName,Description,Ver,FileName:string);
    procedure ShowList(AView: TListView;ImageList:TImageList);
  public
    { Public declarations }
  end;

implementation

uses uMain,uSECData;

{$R *.dfm}

procedure TToolsfrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:=cafree;
end;

procedure TToolsfrm.FormShow(Sender: TObject);
begin
  GetPlugList;
end;

procedure TToolsfrm.GetPlugList;
var
  Description,PlugName,Ver,FileName:string;
begin
  ToolView.Clear;
  SecData.qryTmp.Close;
  SecData.qryTmp.SQL.Clear;
  SecData.qryTmp.SQL.Text:='Select * from Plugin';
  SecData.qryTmp.Open;
  while not SecData.qryTmp.Eof do
  begin
    Description:=SecData.qryTmp.fieldbyname('Description').AsString;
    PlugName:=SecData.qryTmp.fieldbyname('Name').AsString;
    Ver:=SecData.qryTmp.fieldbyname('Ver').AsString;
    FileName:=SecData.qryTmp.fieldbyname('FileName').AsString;
    AddItem(PlugName,Description,Ver,FileName);

    SecData.qryTmp.Next;
  end;
end;

procedure TToolsfrm.ToolViewMouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
var
  ListItem:TListItem;
begin
  ListItem:=ToolView.GetItemAt(X,Y);
  if ListItem<>nil then
  begin
    ToolView.ShowHint:=true;
    ToolView.Hint:='插件对象:'+ListItem.SubItems.Strings[0]+#13+
                   '插件描述:'+ListItem.Caption+#13+
                   '插件版本:'+ListItem.SubItems.Strings[1]+#13+
                   '插件文件:'+ListItem.SubItems.Strings[2];
  end
  else
  begin
    ToolView.ShowHint:=false;
    ToolView.Hint:='';
  end;
end;

procedure TToolsfrm.TBXButton1Click(Sender: TObject);
var
  i:integer;
  HasAdded:Boolean;
  SecPlug:ISecPlug;
  frm:TListfrm;
  FileName:string;
begin
  HasAdded:=false;
  frm:=TListfrm.Create(self);
  frm.Caption:='选择插件'; 
  ShowList(frm.PlugView,frm.ImageList1);
  frm.ShowModal;
  FileName:=frm.FileName;
  frm.Free;
  self.Update;
  if FileName<>'' then
  begin
    for i:=0 to ToolView.Items.Count-1 do
    begin
      if ToolView.Items[i].SubItems.Strings[2]=FileName then
      begin
        HasAdded:=true;
        break;
      end;
    end;

    if not HasAdded then
    begin
      SecPlug:=mainfrm.OprList.PlugInManager.AddPlugIn(FileName);
      if SecPlug<>nil then
      begin
        AddItem(SecPlug.Name,SecPlug.Description,SecPlug.Ver,FileName);
      end;
    end
    else
      showmessage('已加载该插件。');
  end;
end;

procedure TToolsfrm.TBXButton2Click(Sender: TObject);
begin
  if ToolView.Selected<>nil then
  begin
    if MessageBox(Handle,'真的要删除吗?','提示',MB_ICONASTERISK or MB_OKCANCEL)=IDOK then
    begin
      mainfrm.OprList.PlugInManager.DelPlugIn(ToolView.Selected.SubItems[2],ToolView.Selected.SubItems[0]);
      ToolView.Selected.Delete;
    end;
  end;
end;

procedure TToolsfrm.TBXButton3Click(Sender: TObject);
begin
  close;
end;

procedure TToolsfrm.AddItem(PlugName,Description,Ver,FileName:string);
var
  ListItem:TListItem;
begin
  ListItem:=ToolView.Items.Add;
  ListItem.Caption:=Description;
  ListItem.SubItems.Add(PlugName);
  ListItem.SubItems.Add(Ver);
  ListItem.SubItems.Add(FileName);
  ListItem.ImageIndex:=4;
end;

procedure TToolsfrm.ShowList(AView: TListView;ImageList:TImageList);
var
  ListItem:TListItem;
  sr: TSearchRec;
  FileAttrs: Integer;
  path:string;
  icon:hicon;
begin
  path:=ExtractFileDir(paramstr(0))+'\Plugin';
  if DirectoryExists(path) then
  begin
    FileAttrs := faAnyFile;
    if FindFirst(path+'\*.dll', FileAttrs, sr) = 0 then
    begin
      if (sr.Attr and FileAttrs) = sr.Attr then
      begin
        icon:=loadicon(0,IDI_WINLOGO);
        ListItem:=AView.Items.Add;
        ListItem.Caption:=sr.Name;
        ListItem.ImageIndex:=imagelist_addicon(ImageList.Handle,icon);
      end;
      while FindNext(sr) = 0 do
      begin
        if (sr.Attr and FileAttrs) = sr.Attr then
        begin
          icon:=loadicon(0,IDI_WINLOGO);
          ListItem:=AView.Items.Add;
          ListItem.Caption:=sr.Name;
          ListItem.ImageIndex:=imagelist_addicon(ImageList.Handle,icon);
        end;
      end;
      FindClose(sr);
    end;
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -