📄 filesearchunit.~pas
字号:
unit FileSearchUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Buttons, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient,IdGlobal;
type
TFileSearchFm = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Edit3: TEdit;
Animate1: TAnimate;
Label4: TLabel;
Edit2: TEdit;
Label5: TLabel;
SearchTcp: TIdTCPClient;
CheckBox1: TCheckBox;
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FileSearchFm: TFileSearchFm;
implementation
uses Unit1;
{$R *.dfm}
procedure TFileSearchFm.BitBtn3Click(Sender: TObject);
begin
if SearchTcp.Connected=False then Close;
end;
procedure TFileSearchFm.BitBtn1Click(Sender: TObject);
var
iRet,iCount:integer;
SendFSize:integer;
ReadFileName:String;
TheListItem:TListItem;
begin
if Form1.ListView2.Items.Count>1 then
if Application.MessageBox('=====新的搜索将覆盖掉上一次的搜索结果,您是否继续?=====',
'远程搜索信息提示:',MB_OKCANCEL+MB_ICONSTOP)<>IDOK then
exit;
Form1.ListView2.Items.Clear;
SendFSize:=StrToInt(Edit2.text);//自动出错
iCount:=0;
if Form1.ConnectRemoteHost(SearchTcp,Form1.TheFileConnectRec) then
begin
Form1.Panel6.Height:=200;
iRet:=SearchTcp.ReadInteger; //读取连接后的标志
BitBtn1.Enabled:=False;
Animate1.Active:=True;
try
SearchTcp.Write('文件搜索'+EOL); //发送服务器搜索命令--1
SearchTcp.Write(Edit1.Text+EOL); //发送搜索文件类型 --2
SearchTcp.WriteInteger(SendFSize); //发送搜索文件大小 --3
SearchTcp.Write(Edit3.Text+EOL); //发送搜索的根目录 --4
except
Animate1.Active:=False;
Self.Caption:='网络搜索中断,请检查网络线路!';
BitBtn1.Enabled:=True;
exit;
end;
try
ReadFileName:=SearchTcp.Readln(EOL);
while ReadFileName<>'搜索完毕' do
begin
iCount:=iCount+1;
Self.Caption:='已经搜索到'+IntToStr(iCount)+'个文件';
TheListItem:=Form1.ListView2.Items.Insert(0);
TheListItem.Caption:=ReadFileName; //文件名 --返回1
TheListItem.ImageIndex:=9;
TheListItem.SubItems.Add(SearchTcp.Readln(EOL)); //文件大小 --返回2
TheListItem.SubItems.Add(ExtractFileExt(ReadFileName));
TheListItem.SubItems.Add(SearchTcp.Readln(EOL)); //创建时间 --返回3
ReadFileName:=SearchTcp.Readln(EOL);
end;
except
Animate1.Active:=False;
Self.Caption:='网络搜索中断,共搜索到:'+IntToStr(iCount)+'个';
BitBtn1.Enabled:=True;
exit;
end;
Animate1.Active:=False;
Self.Caption:='搜索完毕!共搜索到文件'+IntToStr(iCount)+'个';
BitBtn1.Enabled:=True;
SearchTcp.Disconnect;
if CheckBox1.Checked then close;
end;//连接内的操作
end;
procedure TFileSearchFm.BitBtn2Click(Sender: TObject);
begin
Animate1.Active:=False;
SearchTcp.Disconnect;
BitBtn1.Enabled:=True;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -