Var
Scan: TScan;
StopUp: Boolean;


type
TScan = class(TThread)
private
IdHTTP1: TIdHTTP;
IsUpload: Boolean;
procedure HttpWork(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
protected
procedure Execute; override;
end;


procedure TScan.HttpWork(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
begin
if StopUp then
IdHTTP1.Disconnect;
end;


procedure TScan.Execute;
begin
IdHTTP1 := TIdHTTP.Create(nil);
IdHTTP1.HTTPOptions := [hoKeepOrigProtocol];
IdHTTP1.OnWork := HttpWork;


try
code := IdHTTP1.Post('Address', 'DataStream'); //Upload
except
IdHTTP1.Free;
end;
IdHTTP1.Free;

end;


procedure Form1.StartClick(Sender: TObject);
begin
StopUp := False;
Scan := TScan.Create(False);
Scan.FreeOnTerminate := True;
end;


procedure Form1.StopClick(Sender: TObject);
begin
StopUp := true;
end;