fmain.cpp
来自「一个C++的断点续传和多线程下载代码,类似于网络蚂蚁 网际快车的原理」· C++ 代码 · 共 127 行
CPP
127 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "fMain.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfmMain *fmMain;
//---------------------------------------------------------------------------
__fastcall TfmMain::TfmMain(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfmMain::ButtonCloseClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfmMain::ButtonBrowseClick(TObject *Sender)
{
if(SaveDialog1->Execute())
{
EditSaveFile->Text=SaveDialog1->FileName;
}
}
//---------------------------------------------------------------------------
void __fastcall TfmMain::ButtonStartClick(TObject *Sender)
{
HttpGetEx1->URL=EditURL->Text;
HttpGetEx1->FileName=EditSaveFile->Text;
Memo0->Lines->Add("下载线程数");
Memo0->Lines->Add(IntToStr(HttpGetEx1->ThreadCount));
HttpGetEx1->StartGet();
}
//---------------------------------------------------------------------------
void __fastcall TfmMain::HttpGetEx1GetFileSize(TObject *Sender, int FileSize)
{
AnsiString Msg = "文件大小:";
Msg = Msg + IntToStr(FileSize);
Memo0->Lines->Add(Msg);
}
//---------------------------------------------------------------------------
void __fastcall TfmMain::HttpGetEx1Progress(TObject *Sender, int Position,
int Max, int Index)
{
switch(Index)
{
case 0:
{
ProgressBar0->Position=Position;
ProgressBar0->Max=Max;
LabelPosition0->Caption=IntToStr(Position);
LabelTotal0->Caption=IntToStr(Max);
break;
}
case 1:
{
ProgressBar1->Position=Position;
ProgressBar1->Max=Max;
LabelPosition1->Caption=IntToStr(Position);
LabelTotal1->Caption=IntToStr(Max);
break;
}
case 2:
{
ProgressBar2->Position=Position;
ProgressBar2->Max=Max;
LabelPosition2->Caption=IntToStr(Position);
LabelTotal2->Caption=IntToStr(Max);
break;
}
case 3:
{
ProgressBar3->Position=Position;
ProgressBar3->Max=Max;
LabelPosition3->Caption=IntToStr(Position);
LabelTotal3->Caption=IntToStr(Max);
break;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfmMain::HttpGetEx1StatusText(TObject *Sender,
AnsiString Msg, int Index)
{
switch(Index)
{
case 0:
{
Memo0->Lines->Add(Msg);
break;
}
case 1:
{
Memo1->Lines->Add(Msg);
break;
}
case 2:
{
Memo2->Lines->Add(Msg);
break;
}
case 3:
{
Memo3->Lines->Add(Msg);
break;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfmMain::HttpGetEx1Complete(TObject *Sender)
{
Memo0->Lines->Add("下载完成");
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?