uploadunit.~pas

来自「DELPHI 下远程控制源码」· ~PAS 代码 · 共 80 行

~PAS
80
字号
unit UpLoadUnit;

interface

uses
  Classes, IdTCPServer,IdGlobal,ComCtrls,SysUtils;

type
  TUpLoadThread = class(TThread)
  private
    TheFileName:String;
    TheFileSize:integer;
    TheUserName:String;
    SysThread:TIdPeerThread;
    Procedure RegisteLog;
  protected
    procedure Execute; override;
  Public
    constructor Create(TFN,TUN:String;TheLen:integer;AThread:TIdPeerThread);
    destructor Destroy; override;
  end;

implementation 
uses APFUnit,Unit2;

constructor TUpLoadThread.Create(TFN,TUN:String;TheLen:integer;AThread:TIdPeerThread);
begin
   inherited Create(True);
   TheFileName:=TFN;
   TheUserName:=TUN;
   TheFileSize:=TheLen;
   SysThread:=AThread;
   FreeOnTerminate:=True;
   Suspended := false;
   Priority:=tpTimeCritical;
end;
procedure TUpLoadThread.RegisteLog;
var
  TheListItem:TListItem;
begin
  if Form2.LogCheckBox.Checked=false then exit;
  TheListItem:=Form2.ListView5.Items.Insert(0);
  TheListItem.Caption:=SysThread.Connection.Binding.PeerIP;
  TheListItem.StateIndex:=9;
  TheListItem.SubItems.Add(TheUserName);
  TheListItem.SubItems.Add('文件上传');
  TheListItem.SubItems.Add(TheFileName);
  TheListItem.SubItems.Add(DateTimeToStr(now));
end;
procedure TUpLoadThread.Execute;
var
   SaveFStream:TFileStream; 
begin
   Synchronize(RegisteLog);
   try
    SaveFStream:=TFileStream.Create(TheFileName,fmCreate);     
   except
    SysThread.Terminate;
    self.Terminate;
    exit;
   end;    
  SaveFStream.Size:=0;
   try      
      SysThread.Connection.ReadStream(SaveFStream,TheFileSize,False); 
   except
     SaveFStream.Free;
     SysThread.Terminate;
     self.Terminate;
     exit;
   end; 
   SaveFStream.Free; 
   SysThread.Terminate;
   self.Terminate;
end;
destructor TUpLoadThread.Destroy;
begin
  inherited destroy;
end;
end.

⌨️ 快捷键说明

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