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

📄 unitsearch.pas

📁 不错的远程控制程序
💻 PAS
字号:
unit UnitSearch;

interface

uses
  Windows,
  Messages,
  SysUtils,
  Variants,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs,
  ComCtrls,
  StdCtrls,
  ExtCtrls,
  Sockets,
  CompressionStreamUnitForms,
  Menus;

type
  TSearch = class(TForm)
    Panel1: TPanel;
    ListView1: TListView;
    Label1: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Label2: TLabel;
    Button1: TButton;
    PopupMenu1: TPopupMenu;
    Download1: TMenuItem;
    Button2: TButton;
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure Download1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure PopupMenu1Popup(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    DataSocket: TCustomWinSocket;
    Searching: Boolean;
  end;

implementation

{$R *.dfm}

uses
  UnitMain;

const
  F_DOWNLOAD = 10;
  F_SEARCH = 11;

procedure TSearch.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose := False;
  if not Button1.Enabled then Exit;
  Searching := False;
  Hide;
end;

procedure TSearch.Download1Click(Sender: TObject);
var
  CommandFrame: TCommandFrame;
  ReplyStream: TMemoryStream;
  Data: string;
begin
  if not Assigned(ListView1.Selected) then Exit;
  if not Assigned(DataSocket) then Exit;
  if not DataSocket.Connected then Exit;
  Data := ListView1.Selected.Caption;
  CommandFrame.len := Length(Data) + 1;
  CommandFrame.Command := F_DOWNLOAD;
  CommandFrame.ID := FRAME_ID;
  ReplyStream := TMemoryStream.Create;
  ReplyStream.WriteBuffer(CommandFrame, SizeOf(TCommandFrame));
  ReplyStream.WriteBuffer(Pointer(Data)^, CommandFrame.len);
  Main.SendStream(DataSocket, ReplyStream);
end;

procedure TSearch.Button1Click(Sender: TObject);
var
  CommandFrame: TCommandFrame;
  ReplyStream: TMemoryStream;
  Data: string;
begin
  if not Assigned(DataSocket) then Exit;
  if not DataSocket.Connected then Exit;
  Data := Edit2.Text + '|' + Edit1.Text;
  CommandFrame.len := Length(Data) + 1;
  CommandFrame.Command := F_SEARCH;
  CommandFrame.ID := FRAME_ID;
  ReplyStream := TMemoryStream.Create;
  ReplyStream.WriteBuffer(CommandFrame, SizeOf(TCommandFrame));
  ReplyStream.WriteBuffer(Pointer(Data)^, CommandFrame.len);
  Main.SendStream(DataSocket, ReplyStream);
  ListView1.Clear;
  Button1.Enabled := False;
  Button2.Enabled := False;
end;

procedure TSearch.Button2Click(Sender: TObject);
begin
  ListView1.Clear;
end;

procedure TSearch.PopupMenu1Popup(Sender: TObject);
begin
  Download1.Visible := False;
  if not Assigned(ListView1.Selected) then Exit;
  Download1.Visible := (Pos('D', ListView1.Selected.SubItems.Strings[1]) = 0);
end;

procedure TSearch.FormShow(Sender: TObject);
begin
SetWindowLong(Button1.Handle, GWL_STYLE, WS_CHILD or WS_VISIBLE or BS_FLAT);
SetWindowLong(Button2.Handle, GWL_STYLE, WS_CHILD or WS_VISIBLE or BS_FLAT);
end;

end.

⌨️ 快捷键说明

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