📄 uconfingtools.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 + -