📄 unit1.pas
字号:
N167: TMenuItem;
N168: TMenuItem;
N169: TMenuItem;
N170: TMenuItem;
N171: TMenuItem;
N172: TMenuItem;
N173: TMenuItem;
N174: TMenuItem;
N175: TMenuItem;
N176: TMenuItem;
N177: TMenuItem;
N178: TMenuItem;
N179: TMenuItem;
N180: TMenuItem;
N181: TMenuItem;
N146: TMenuItem;
N182: TMenuItem;
N183: TMenuItem;
N184: TMenuItem;
N185: TMenuItem;
N186: TMenuItem;
Panel28: TPanel;
Panel29: TPanel;
SpeedButton9: TSpeedButton;
SpeedButton10: TSpeedButton;
SpeedButton11: TSpeedButton;
SpeedButton12: TSpeedButton;
SpeedButton13: TSpeedButton;
SpeedButton18: TSpeedButton;
DownCDSStates: TStringField;
UpCDSStates: TStringField;
SpeedButton19: TSpeedButton;
SpeedButton20: TSpeedButton;
SpeedButton14: TSpeedButton;
SpeedButton15: TSpeedButton;
SpeedButton16: TSpeedButton;
SpeedButton17: TSpeedButton;
TabSheet4: TTabSheet;
TabSheet6: TTabSheet;
Timer1: TTimer;
Timer2: TTimer;
N187: TMenuItem;
N188: TMenuItem;
N189: TMenuItem;
N190: TMenuItem;
N191: TMenuItem;
N23: TMenuItem;
N25: TMenuItem;
N26: TMenuItem;
N27: TMenuItem;
N28: TMenuItem;
N41: TMenuItem;
N45: TMenuItem;
ToolButton35: TToolButton;
Image1: TImage;
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure TabSheet2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure ToolButton15Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ToolButton12Click(Sender: TObject);
procedure IdFTCPClientConnected(Sender: TObject);
procedure IdFTCPClientDisconnected(Sender: TObject);
procedure SpeedButton28Click(Sender: TObject);
procedure SpeedButton26Click(Sender: TObject);
procedure N64Click(Sender: TObject);
procedure N98Click(Sender: TObject);
procedure N65Click(Sender: TObject);
procedure N99Click(Sender: TObject);
procedure TreeView2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure TreeView2DblClick(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure SpeedButton38Click(Sender: TObject);
procedure ToolButton14Click(Sender: TObject);
procedure ToolButton18Click(Sender: TObject);
procedure ToolButton20Click(Sender: TObject);
procedure ToolButton9Click(Sender: TObject);
procedure ToolButton8Click(Sender: TObject);
procedure Memo2KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure N14Click(Sender: TObject);
procedure Panel11MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure TreeView1Click(Sender: TObject);
procedure TreeView1DblClick(Sender: TObject);
procedure ListView1ColumnClick(Sender: TObject; Column: TListColumn);
procedure ListView1DblClick(Sender: TObject);
procedure ListView1Compare(Sender: TObject; Item1, Item2: TListItem;
Data: Integer; var Compare: Integer);
procedure ToolButton26Click(Sender: TObject);
procedure ToolButton22Click(Sender: TObject);
procedure ToolButton37Click(Sender: TObject);
procedure ToolButton10Click(Sender: TObject);
procedure IdFTCPClientStatus(axSender: TObject;
const axStatus: TIdStatus; const asStatusText: String);
procedure IdFTCPClientWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
procedure IdFTCPClientWork(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
procedure IdFTCPClientWorkEnd(Sender: TObject; AWorkMode: TWorkMode);
procedure N38Click(Sender: TObject);
procedure ToolButton1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure SpeedButton2Click(Sender: TObject);
procedure ToolButton45Click(Sender: TObject);
procedure ToolButton31Click(Sender: TObject);
procedure ListView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ToolButton28Click(Sender: TObject);
procedure ToolButton27Click(Sender: TObject);
procedure ToolButton30Click(Sender: TObject);
procedure ToolButton29Click(Sender: TObject);
procedure N40Click(Sender: TObject);
procedure TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure N102Click(Sender: TObject);
procedure N111Click(Sender: TObject);
procedure ToolButton33Click(Sender: TObject);
procedure ToolButton34Click(Sender: TObject);
procedure N30Click(Sender: TObject);
procedure N31Click(Sender: TObject);
procedure N32Click(Sender: TObject);
procedure N33Click(Sender: TObject);
procedure ToolButton11Click(Sender: TObject);
procedure N107Click(Sender: TObject);
procedure N108Click(Sender: TObject);
procedure N109Click(Sender: TObject);
procedure N110Click(Sender: TObject);
procedure N22Click(Sender: TObject);
procedure ListView1Edited(Sender: TObject; Item: TListItem;
var S: String);
procedure ToolButton32Click(Sender: TObject);
procedure ToolButton41Click(Sender: TObject);
procedure ToolButton44Click(Sender: TObject);
procedure ToolButton43Click(Sender: TObject);
procedure N43Click(Sender: TObject);
procedure N118Click(Sender: TObject);
procedure N113Click(Sender: TObject);
procedure N114Click(Sender: TObject);
procedure N115Click(Sender: TObject);
procedure N117Click(Sender: TObject);
procedure N121Click(Sender: TObject);
procedure N34Click(Sender: TObject);
procedure N123Click(Sender: TObject);
procedure N35Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure N120Click(Sender: TObject);
procedure ToolButton42Click(Sender: TObject);
procedure N126Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure N124Click(Sender: TObject);
procedure N131Click(Sender: TObject);
procedure N127Click(Sender: TObject);
procedure N128Click(Sender: TObject);
procedure N125Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure ListView2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure ListView1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure SpeedButton8Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure N112Click(Sender: TObject);
procedure N134Click(Sender: TObject);
procedure N135Click(Sender: TObject);
procedure N133Click(Sender: TObject);
procedure ListView3MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ListView4MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure BitBtn8Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure N136Click(Sender: TObject);
procedure N137Click(Sender: TObject);
procedure N140Click(Sender: TObject);
procedure MenuItem1Click(Sender: TObject);
procedure MenuItem10Click(Sender: TObject);
procedure MenuItem9Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure DBGrid2DblClick(Sender: TObject);
procedure UserCDSBeforeClose(DataSet: TDataSet);
procedure DownCDSBeforeClose(DataSet: TDataSet);
procedure DownCDSAfterDelete(DataSet: TDataSet);
procedure N36Click(Sender: TObject);
procedure N42Click(Sender: TObject);
procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure SpeedButton10Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure SpeedButton12Click(Sender: TObject);
procedure SpeedButton13Click(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure SpeedButton15Click(Sender: TObject);
procedure SpeedButton16Click(Sender: TObject);
procedure SpeedButton17Click(Sender: TObject);
procedure UpCDSAfterDelete(DataSet: TDataSet);
procedure SpeedButton14Click(Sender: TObject);
procedure N100Click(Sender: TObject);
procedure TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure ToolButton35Click(Sender: TObject);
procedure ToolButton46Click(Sender: TObject);
procedure N41Click(Sender: TObject);
procedure N25Click(Sender: TObject);
procedure N26Click(Sender: TObject);
procedure N27Click(Sender: TObject);
procedure N45Click(Sender: TObject);
procedure ToolButton48Click(Sender: TObject);
procedure ToolButton13Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton17Click(Sender: TObject);
procedure ListView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
procedure ListView1DragDrop(Sender, Source: TObject; X, Y: Integer);
procedure ListView1StartDrag(Sender: TObject;
var DragObject: TDragObject);
procedure TreeView1StartDrag(Sender: TObject;
var DragObject: TDragObject);
private
{ Private declarations }
CurrentTreeNode:TTreeNode;//目录列表的节点
procedure ShowDisConnectGUI;//显示断开连接界面
procedure ShowConnectGUI;//显示连接界面
Function isRemoteHost(MyTV:TTreeView):boolean;//测试当前主机是否是远程主机
Procedure OpenListDirFiles(MyTV:TTreeView;MyLV:TListView;
TheDirCBX:TComboBox);//打开文件列表的目录
Procedure OpenLocalDirFile(MyTV:TTreeView;MyLV:TListView;
TheDirCBX:TComboBox);//打开本地目录
Procedure LocalDirSet(TvList:TTreeView;SetDir:TComboBox);//本地目录设置
procedure RemoteDirSet(TvList:TTreeView;SetDir:TComboBox);//setRemoteDir
Procedure SetUserInfo(ShowUI:TTreeView;FromData:TClientDataSet); //设置显示用户组信息
Procedure DeleteUser(ShowUI:TTreeView;FromData:TClientDataSet); //删除用户信息
Procedure DeleteGroup(ShowUI:TTreeView;FromData:TClientDataSet); //删除组信息
Procedure ClearAllInfo(FromData:TClientDataSet); //清除所有用户及组信息
Procedure ShowDrives(ShowVL:TTreeView;DrvList:TStringList); //显示驱动目录结构
Procedure ShowFilesList(DirPath:String;ShowFL:TListView;ShowDL:TTreeView);//显示文件目录信息
Procedure ShowMyDrv;
procedure TheDirCopy;
procedure TheDirXCopy;
procedure TheFileCopy;
procedure TheFileXCopy;
procedure TheFilePaste;
procedure TheDirPaste;
procedure TheDirDelete;
procedure TheFileDelete;
procedure TheFileRename;
procedure TheDirRename;
procedure TheFileSearch;
procedure TheFileOpen;
procedure TheFileDownLoad;
procedure TheFileUpLoad;
procedure TheDirCopyTo;
procedure TheDirMoveTo;
procedure TheDirNew;
procedure TheRemoteScreen;
procedure TheDirOrFileAttr;
procedure TheLVFileDrop;
procedure TheLVDirDrop;
procedure TheTVDirDrop;
function GetLocalDir(TheTV: TTreeView): String;
function GetRemoteDir(TheTV: TTreeView): String;//显示自己的磁盘信息;
public
//====================================下载上载循环监控线程的计数
DLThreadCount,DLThreadMax:integer;
ULThreadCount,ULThreadMax:integer;
LMThreadCount,LMThreadMax:integer;
//====================================下载上载循环监控线程的计数
isFileXCopy :boolean; //用于表示复制的操作是针对目录文件的类型
isRemoteStat:boolean; //标识当前的操作是否是远程操作
TheFileConnectRec:TConnectRec;//进行远程文件管理的连接记录信息
CXSourceFile:TOpFile; //用于进行复制 剪切 粘贴的操作记录结构
CXSourceDirName :TOpDir;
isFileDrop : boolean; //区分拖动的对象是文件还是目录或文件夹
DropSourceFile:TOpFile; //用于进行文件目录拖动操作的记录结构
DropSourceDirName :TOpDir;
LocalDir,RemoteDir:String;//当前本地目录--远程目录名
MyConnectOpt:TConnectOpt;//用于进行网络连接的数据记录结构
//连接远程主机
Function ConnectRemoteHost(MyTcp:TidTcpClient;TheConRec:TConnectRec):Boolean;//连接远程主机
//设置连接的选项:代理和加密信息
Procedure SetConnectOpt(TCPClient:TidTCPClient;TheOpt:TConnectOpt);
//初始化上载下载循环监控的记录信息
procedure SetTheSysData(DownLData,UpLData,LoopMData,LoopIPData:TClientDataSet);
end;
const
SHeight=200; //显示任务及共享资源的高度
var
Form1: TForm1;
CurrentDir:String;//执行文件的路径
TheUserInfoFileName:String; //用户信息记录文件名 1
TheDownLoadRecFile :string; //下载列表缓存文件名 2
TheUpLoadRecFile :string; //上载文件列表文件名 3
TheLoopMonitorFile :String; //循环监控的文件名记录 4
TheLoopMHostFile :String; //循环监控主机文件名 5
//=======================================================设置临界对象
LetDLSingle:TCriticalSection; //设置临界对象,用于下载计数
LetULSingle:TCriticalSection; //设置临界对象,用于上载计数
LetLMSingle:TCriticalSection; //设置临界对象,用于屏幕循环计数
LetDrawSingle:TCriticalSection;//用于绘制屏幕和后台缓冲区控制
//=======================================================设置临界对象
implementation
uses UserInfo, GroupInfo, sysUnit, LoopScrUnit,MainProcUnit,
SingleDLoadUnit, UpLoadUnit, RemoteScrUnit, FullSingleScrUnit,
LocalCopyUnit,Unit1UseUnit, FileSearchUnit, SearchDLUnit,TMultiDLUnit,
DLTimeSetUnit, ShowDelUnit,TMultiULUnit, ULTimeSetUnit, RemoteCPCUnit,
ScanIPUnit, RegUnit;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
//=======================================================设置临界对象
LetDLSingle:=TCriticalSection.Create; //设置临界对象,用于下载计数
LetULSingle:=TCriticalSection.Create; //设置临界对象,用于上载计数
LetLMSingle:=TCriticalSection.Create; //设置临界对象,用于屏幕循环计数
LetDrawSingle:=TCriticalSection.Create;//用于绘制屏幕和后台缓冲区控制
//=======================================================设置临界对象
//====================================下载上载循环监控线程的计数
DLThreadCount:=0;DLThreadMax:=8; //
ULThreadCount:=0;ULThreadMax:=8; // 设置多线程工作的上限
LMThreadCount:=0;LMThreadMax:=8; //
//====================================下载上载循环监控线程的计数
Panel4.Width:=1;//隐藏用户组信息
TreeView2.Items.Clear; //清除原有信息
SetUserInfo(TreeView2,UserCDS); //设置管理目录信息
Panel6.Height:=0; //关闭附加的信息
ShowMyDrv;//显示自己的磁盘信息
//下为设置初始的网络连接附加信息,以后要改进... ...
MyConnectOpt.UseNagle:=False;
MyConnectOpt.UseProxy:=False;
MyConnectOpt.UseIntercept:=False;
end;
procedure TForm1.SetTheSysData(DownLData,UpLData,LoopMData,
LoopIPData:TClientDataSet);
var
ThePath :String;
begin
//分析目录,提取文件
ThePath:=ExtractFilePath(Application.ExeName);
if ThePath[Length(ThePath)]='\' then
begin
TheDownLoadRecFile:=ThePath+'data\DLSchem.cds';
TheUpLoadRecFile :=ThePath+'data\ULSchem.cds';
TheLoopMHostFile :=ThePath+'data\LoopScrM.cds';
TheLoopMonitorFile:=ThePath+'data\LoopScrP.cds';
end else
begin
TheDownLoadRecFile:=ThePath+'\data\DLSchem.cds';
TheUpLoadRecFile :=ThePath+'\data\ULSchem.cds';
TheLoopMHostFile :=ThePath+'\data\LoopScrM.cds';
TheLoopMonitorFile:=ThePath+'\data\LoopScrP.cds';
end;
//--------------------------------------------初始化下载文件列表---1
if Not FileExists(TheDownLoadRecFile) then //如果不存在创建目录与文件
begin
if Not DirectoryExists(ExtractFilePath(TheDownLoadRecFile)) Then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -