📄 umain.pas
字号:
unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TB2Item, TBX, SpTBXItem, TB2Dock, TB2Toolbar, Menus, TBXDkPanels,
TBXStatusBars, TBXThemes, SpTBXDkPanels, ImgList, TBXToolPals, TBXExtItems,
StdCtrls, ComCtrls, RzEdit, SpTBXTabs, uSECData,DBTables,uDllfrmList,
DB, ABSMain, Shellapi,TBXAluminumTheme,TBXMDI,uHintImp,uIHintInf,clipbrd,
ExtCtrls, RzGroupBar, Commctrl, Mask, uFunction, uSecPlugInf, ufrmFavoriteCfg;
type
Tmainfrm = class(TForm)
TBXStatusBar1: TSpTBXStatusBar;
SpTBXDock1: TSpTBXDock;
Toolbar1: TTBXToolbar;
MenuFile: TSpTBXSubmenuItem;
itFileOpen: TSpTBXItem;
SpTBXItem2: TSpTBXItem;
SpTBXSeparatorItem1: TSpTBXSeparatorItem;
SpTBXItem4: TSpTBXItem;
SpTBXSubmenuItem2: TSpTBXSubmenuItem;
SpTBXItem3: TSpTBXItem;
SpTBXDock2: TTBXMultiDock;
ImageList1: TImageList;
SpTBXToolbar1: TSpTBXToolbar;
TBXDockablePanel1: TTBXDockablePanel;
ImageList2: TImageList;
MenuView: TSpTBXSubmenuItem;
SpTBXItem5: TSpTBXItem;
SpTBXSeparatorItem2: TSpTBXSeparatorItem;
SpTBXSubmenuItem4: TSpTBXSubmenuItem;
SpTBXItem8: TSpTBXItem;
SpTBXItem9: TSpTBXItem;
SpTBXItem11: TSpTBXItem;
SpTBXItem12: TSpTBXItem;
SpTBXSeparatorItem3: TSpTBXSeparatorItem;
SpTBXItem10: TSpTBXItem;
SpTBXItem13: TSpTBXItem;
SpTBXItem14: TSpTBXItem;
SpTBXSeparatorItem4: TSpTBXSeparatorItem;
SpTBXItem15: TSpTBXItem;
SpTBXToolbar2: TSpTBXToolbar;
SpTBXItem16: TSpTBXItem;
SpTBXItem17: TSpTBXItem;
SpTBXItem18: TSpTBXItem;
SpTBXSubmenuItem1: TSpTBXSubmenuItem;
SpTBXSeparatorItem5: TSpTBXSeparatorItem;
SpTBXItem20: TSpTBXItem;
SpTBXItem21: TSpTBXItem;
SpTBXItem22: TSpTBXItem;
SpTBXToolbar3: TSpTBXToolbar;
SpTBXItem31: TSpTBXItem;
SpTBXItem27: TSpTBXItem;
SpTBXItem28: TSpTBXItem;
SpTBXSeparatorItem8: TSpTBXSeparatorItem;
SpTBXItem29: TSpTBXItem;
SpTBXTabControl1: TSpTBXTabControl;
SpTBXTabItem1: TSpTBXTabItem;
SpTBXTabSheet1: TSpTBXTabSheet;
SpTBXTabItem2: TSpTBXTabItem;
SpTBXTabSheet2: TSpTBXTabSheet;
FolderTree: TTreeView;
SpTBXSubmenuItem3: TSpTBXSubmenuItem;
SpTBXItem30: TSpTBXItem;
SpTBXItem35: TSpTBXItem;
SpTBXSeparatorItem9: TSpTBXSeparatorItem;
SpTBXItem36: TSpTBXItem;
SpTBXSeparatorItem11: TSpTBXSeparatorItem;
SpTBXItem37: TSpTBXItem;
SpTBXItem38: TSpTBXItem;
MenuOther: TSpTBXSubmenuItem;
ibAddFriend: TSpTBXItem;
SpTBXSeparatorItem12: TSpTBXSeparatorItem;
SpTBXItem40: TSpTBXItem;
TBSeparatorItem1: TTBSeparatorItem;
SpTBXLabelItem2: TSpTBXLabelItem;
btnStatus: TSpTBXSubmenuItem;
SpTBXItem42: TSpTBXItem;
SpTBXItem43: TSpTBXItem;
ibAddTask: TSpTBXItem;
SpTBXLabelItem3: TSpTBXLabelItem;
TBSeparatorItem2: TTBSeparatorItem;
SpTBXLabelItem4: TSpTBXLabelItem;
SpTBXItem45: TSpTBXItem;
SpTBXItem46: TSpTBXItem;
SpTBXItem47: TSpTBXItem;
TBXPopupMenu2: TTBXPopupMenu;
SpTBXItem48: TSpTBXItem;
SpTBXSeparatorItem13: TSpTBXSeparatorItem;
SpTBXSubmenuItem5: TSpTBXSubmenuItem;
NEW2: TSpTBXItem;
NEW1: TSpTBXItem;
imDelNode: TSpTBXItem;
SpTBXItem50: TSpTBXItem;
SpTBXItem51: TSpTBXItem;
SpTBXItem52: TSpTBXItem;
SpTBXSeparatorItem15: TSpTBXSeparatorItem;
SpTBXItem53: TSpTBXItem;
TBXMDIHandler1: TTBXMDIHandler;
Timer1: TTimer;
RzGroupBar1: TRzGroupBar;
RzGroup1: TRzGroup;
RzGroup2: TRzGroup;
SpTBXItem54: TSpTBXItem;
mWindow: TSpTBXSubmenuItem;
SpTBXItem55: TSpTBXItem;
SpTBXItem56: TSpTBXItem;
SpTBXItem57: TSpTBXItem;
SpTBXItem6: TSpTBXItem;
SpTBXItem7: TSpTBXItem;
SpTBXItem23: TSpTBXItem;
TBXSeparatorItem1: TTBXSeparatorItem;
TBXSeparatorItem2: TTBXSeparatorItem;
SpTBXItem24: TSpTBXItem;
SpTBXItem25: TSpTBXItem;
TBXSeparatorItem3: TTBXSeparatorItem;
SpTBXItem26: TSpTBXItem;
SpTBXItem32: TSpTBXItem;
TBXSeparatorItem4: TTBXSeparatorItem;
SpTBXItem33: TSpTBXItem;
SpTBXItem34: TSpTBXItem;
SpTBXItem58: TSpTBXItem;
TBXSeparatorItem5: TTBXSeparatorItem;
SpTBXItem59: TSpTBXItem;
SpTBXItem19: TSpTBXItem;
SpTBXItem60: TSpTBXItem;
SpTBXItem61: TSpTBXItem;
SpTBXSeparatorItem6: TSpTBXSeparatorItem;
SpTBXItem62: TSpTBXItem;
ibSaveAs: TSpTBXItem;
SpTBXItem64: TSpTBXItem;
SpTBXItem65: TSpTBXItem;
TBXSeparatorItem6: TTBXSeparatorItem;
SpTBXItem66: TSpTBXItem;
SpTBXItem67: TSpTBXItem;
SpTBXItem68: TSpTBXItem;
ImageList4: TImageList;
New3: TSpTBXItem;
New4: TSpTBXItem;
SpTBXSeparatorItem7: TSpTBXSeparatorItem;
ImageList5: TImageList;
TBXMultiDock1: TTBXMultiDock;
PLSearch: TTBXDockablePanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Panel6: TPanel;
Label3: TLabel;
Image2: TImage;
Panel7: TPanel;
Panel8: TPanel;
Label4: TLabel;
Panel9: TPanel;
LvFile: TListView;
Panel10: TPanel;
Panel11: TPanel;
Panel12: TPanel;
Image1: TImage;
Label1: TLabel;
Panel13: TPanel;
Label2: TLabel;
Panel14: TPanel;
edName: TRzEdit;
Panel1: TPanel;
btnOK: TTBXButton;
SpTBXSeparatorItem10: TSpTBXSeparatorItem;
SpTBXItem1: TSpTBXItem;
SpTBXSeparatorItem14: TSpTBXSeparatorItem;
itFavorite: TSpTBXSubmenuItem;
SpTBXItem39: TSpTBXItem;
SpTBXSeparatorItem16: TSpTBXSeparatorItem;
procedure SpTBXItem4Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure SpTBXItem43Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SpTBXItem40Click(Sender: TObject);
procedure SpTBXItem38Click(Sender: TObject);
procedure FolderTreeEdited(Sender: TObject; Node: TTreeNode;
var S: String);
procedure SpTBXItem48Click(Sender: TObject);
procedure FolderTreeMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure SpTBXItem50Click(Sender: TObject);
procedure imDelNodeClick(Sender: TObject);
procedure NEW2Click(Sender: TObject);
procedure NEW1Click(Sender: TObject);
procedure FolderTreeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure SpTBXItem51Click(Sender: TObject);
procedure myException(Sender: TObject; E: Exception);
procedure TBXPopupMenu2Popup(Sender: TObject);
procedure FolderTreeExpanding(Sender: TObject; Node: TTreeNode;
var AllowExpansion: Boolean);
procedure SpTBXItem52Click(Sender: TObject);
procedure SpTBXItem53Click(Sender: TObject);
procedure ibAddTaskClick(Sender: TObject);
procedure itFileOpenClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure HintPopURLClick(Sender: TObject; URL: String);
procedure ibAddFriendClick(Sender: TObject);
procedure RzGroup1Items0Click(Sender: TObject);
procedure SpTBXItem54Click(Sender: TObject);
procedure FolderTreeDblClick(Sender: TObject);
procedure SpTBXItem47Click(Sender: TObject);
procedure SpTBXItem55Click(Sender: TObject);
procedure SpTBXItem56Click(Sender: TObject);
procedure SpTBXItem57Click(Sender: TObject);
procedure SpTBXItem28Click(Sender: TObject);
procedure SpTBXItem6Click(Sender: TObject);
procedure SpTBXItem3Click(Sender: TObject);
procedure SpTBXItem12Click(Sender: TObject);
procedure SpTBXItem11Click(Sender: TObject);
procedure SpTBXItem26Click(Sender: TObject);
procedure SpTBXItem23Click(Sender: TObject);
procedure SpTBXItem7Click(Sender: TObject);
procedure SpTBXItem32Click(Sender: TObject);
procedure SpTBXItem61Click(Sender: TObject);
procedure SpTBXItem60Click(Sender: TObject);
procedure SpTBXItem20Click(Sender: TObject);
procedure SpTBXItem21Click(Sender: TObject);
procedure SpTBXItem22Click(Sender: TObject);
procedure FolderTreeDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure FolderTreeDragDrop(Sender, Source: TObject; X, Y: Integer);
procedure FolderTreeEditing(Sender: TObject; Node: TTreeNode;
var AllowEdit: Boolean);
procedure SpTBXItem66Click(Sender: TObject);
procedure SpTBXItem62Click(Sender: TObject);
procedure SpTBXItem15Click(Sender: TObject);
procedure SpTBXItem68Click(Sender: TObject);
procedure New3Click(Sender: TObject);
procedure New4Click(Sender: TObject);
procedure ibSaveAsClick(Sender: TObject);
procedure SpTBXItem64Click(Sender: TObject);
procedure SpTBXItem2Click(Sender: TObject);
procedure SpTBXItem10Click(Sender: TObject);
procedure btnOKClick(Sender: TObject);
procedure LvFileDblClick(Sender: TObject);
procedure SpTBXItem29Click(Sender: TObject);
procedure FolderTreeCompare(Sender: TObject; Node1, Node2: TTreeNode;
Data: Integer; var Compare: Integer);
procedure SpTBXItem19Click(Sender: TObject);
procedure RzGroup1Items4Click(Sender: TObject);
procedure FolderTreeStartDrag(Sender: TObject;
var DragObject: TDragObject);
procedure FormDestroy(Sender: TObject);
procedure SpTBXItem1Click(Sender: TObject);
procedure itFavoritePopup(Sender: TTBCustomItem;
FromLink: Boolean);
procedure SpTBXItem39Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
aatom:atom;
procedure FreeListDLL(var msg:TMessage);message WM_FreeListDll;
procedure FreeTxtDLL(var msg:TMessage);message WM_FreeTxtDll;
function CopySingleNode(AParentNode,ANode:TTreeNode;CopyMode:Boolean):TTreeNode;
procedure hotkey(var msg:tmessage);message wm_hotkey;
public
{ Public declarations }
OprList:TOprList;
TheOprList:IOprList;
procedure Add3thToolsItem(Caption,Path,ID:string);
procedure On3thToolsClick(Sender: TObject);
procedure CreateFolderTree(Node:TTreeNode);
function AddNode(IsFile:byte;IsChild:Boolean):TTreeNode;
function CheckName(Level:integer;AName:string):Boolean;
function DeleteNodeSQL:string;
procedure RefreshNEWMenu;
procedure RefreshTree;
function ReNameNode(ANode:TTreeNode;var s:string):Boolean;
procedure CreateMsg(Title,Msg:string;Idx:integer);
procedure RefreshTaskList;
procedure ExecTask(TaskData:PTaskData);
procedure RefreshItemInDllfrm(AfrmType:integer;ACaption:Pchar;UpDateCaption:Boolean;index,ParentIndex:integer);
procedure Closefrm(IDs:array of integer);
procedure DoOnMenuDllItemClick(sender:TObject);
procedure DoOnFavoriteItemClick(sender:TObject);
end;
TSecDragControlObject=class(TDragControlObject)
protected
function GetDragCursor(Accepted: Boolean; X, Y: Integer): TCursor; override;
end;
var
mainfrm: Tmainfrm;
type
TRefreshfrm=procedure(AfrmType:integer;ACaption:Pchar;UpDateCaption:Boolean;index,ParentIndex:integer);stdcall;
TShowException=procedure(App:TApplication;Scr:TScreen;ErrMsg,Title:Pchar;ImageIndex:integer;Theme:TTBXTheme);stdcall;
TShowAbout=procedure(App:TApplication;Scr:TScreen;Theme:TTBXTheme);stdcall;
TClosefrm=procedure(IDs:array of integer);stdcall;
implementation
uses uConfingTools,uProperty, uOpenfrm;
{$R *.dfm}
procedure Tmainfrm.SpTBXItem4Click(Sender: TObject);
begin
close;
end;
procedure Tmainfrm.FormShow(Sender: TObject);
begin
TBXSetTheme('Aluminum');
RefreshTree;
end;
procedure Tmainfrm.SpTBXItem43Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to mainfrm.MDIChildCount-1 do
mainfrm.MDIChildren[i].Enabled:=(TSpTBXItem(Sender).Tag=19);
btnStatus.Caption :=TSpTBXItem(Sender).Hint;
btnStatus.ImageIndex :=TSpTBXItem(Sender).Tag;
SpTBXDock1.Enabled :=(TSpTBXItem(Sender).Tag=19);
SpTBXDock2.Enabled :=(TSpTBXItem(Sender).Tag=19);
AlphaBlend :=(TSpTBXItem(Sender).Tag=23);
end;
procedure Tmainfrm.On3thToolsClick(Sender: TObject);
var
Path:string;
begin
Path:=TSpTBXItem(Sender).Hint;
Shellexecute(0,'open',Pchar(Path),'','',1);
end;
procedure Tmainfrm.Add3thToolsItem(Caption, Path, ID: string);
var
x:TSpTBXItem;
begin
x:=TSpTBXItem.Create(MenuOther);
x.Caption :=Caption;
x.Hint :=Path;
x.Tag :=strtoint(ID);
x.OnClick :=On3thToolsClick;
MenuOther.Add(x);
end;
procedure Tmainfrm.FormCreate(Sender: TObject);
begin
SECData.ABSDatabase1.DatabaseFileName:=ExtractFilePath(paramstr(0))+'\Sec.ABS';
SECData.ABSDatabase1.Password:='password';
try
SECData.ABSDatabase1.Connected :=true;
Application.OnException:=myException;
DllfrmList:=TDllfrmList.Create;
OprList:=TOprList.Create;
OprList.Ownerfrm:=self;
OprList.FolderProperty.FolderTree:=FolderTree;
OprList.Application:=Application;
OprList.Screen:=Screen;
OprList.DllfrmList:=DllfrmList;
OprList.HintWindow:=HintWindowClass;
TheOprList:=OprList;
RefreshTaskList;
aatom:=globaladdatom('hot key');
RegisterHotKey(handle,aatom,MOD_Shift or MOD_CONTROL,78);
except
Application.Terminate;
end;
end;
procedure Tmainfrm.SpTBXItem40Click(Sender: TObject);
var
frm:TToolsFrm;
begin
frm:=TToolsFrm.Create(self);
frm.ShowModal;
frm.Free;
end;
procedure Tmainfrm.SpTBXItem38Click(Sender: TObject);
var
DllHandle:THandle;
ShowAbout:TShowAbout;
begin
{DllHandle:=LoadLibrary('Secfrm.dll');
try
if DllHandle<>0 then
begin
@ShowAbout:=GetProcAddress(DllHandle,'ShowAbout');
if @ShowAbout<>nil then
ShowAbout(Application,Screen,CurrentTheme);
end;
finally
FreeLibrary(DllHandle);
end; }
end;
procedure Tmainfrm.CreateFolderTree(Node: TTreeNode);
var
i,j,idx,ID,UPID:integer;
Locked:Byte;
folderName:string;
IsChild:Boolean;
IsFile:Byte;
begin
Node:=nil;
i:=FolderTree.Items.Count;
idx:=-1;
ISChild:=false;
ID:=SECData.qryTree.fieldbyname('ID').AsInteger;
UPID:=SECData.qryTree.fieldbyname('UPID').AsInteger;
folderName:=SECData.qryTree.fieldbyname('Text').AsString;
Locked:=SECData.qryTree.fieldbyname('Locked').AsInteger;
IsFile:=SECData.qryTree.fieldbyname('IsFile').AsInteger;
for j:=0 to i-1 do
begin
inc(idx);
if UPID=FolderTree.Items[j].StateIndex then
begin
IsChild:=true;
break;
end;
end;
if IsChild then
Node:=FolderTree.Items[idx];
with FolderTree.Items.AddChild(Node,folderName) do
begin
StateIndex:=ID;
ImageIndex:=2*IsFile+Locked;
SelectedIndex:=2*IsFile+Locked;
end;
SECData.qryTree.Next;
if i<SECData.qryTree.RecordCount-1 then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -