📄 upload.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Upload.h"
#include "Main.h"
#include "_SFT.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmUpload *frmUpload;
extern char MachineName[128];
extern int FileCount;
extern long TotalSize;
extern int TotalProgress;
extern char CurrentFile[128];
extern char CurrentFileSaveAs[128];
extern long CurrentSize;
extern int CurrentProgress;
extern int Stop;
extern int SendResult;
extern char SendResultMsg[128];
extern char UploadFileNames[30][128];
extern char UploadShortFileNames[30][128];
extern int UploadFileCount;
bool Uploading;
bool UploadStop;
extern bool Downloading;
extern bool DownloadStop;
bool UploadManualCancel;
DWORD UploadThreadID;
HANDLE UploadThread;
DWORD WINAPI Upload( LPVOID param)
{
int i;
char *filenames[128];
for( i=0;i<UploadFileCount;i++ )
{
strcpy( UploadShortFileNames[i],ExtractFileName(UploadFileNames[i]).c_str());
filenames[i]=UploadFileNames[i];
}
Downloading=false;
Uploading=true;
UploadStop=false;
UploadManualCancel=false;
SFT_SendFiles(MachineName,UploadFileCount,filenames);
return 0;
}
//---------------------------------------------------------------------------
__fastcall TfrmUpload::TfrmUpload(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void TfrmUpload::RefreshDisplay(void)
{
LabelMachineName->Caption = MachineName;
LabelFileCount->Caption = FileCount;
LabelTotalSize->Caption = TotalSize;
LabelTotalProgress->Caption= TotalProgress;
if( TotalSize==0 )ProgressTotalProgress->Position = 0;
else ProgressTotalProgress->Position = TotalProgress*100L/TotalSize;
LabelCurrentFile->Caption = CurrentFile;
LabelCurrentSize->Caption = CurrentSize;
LabelCurrentProgress->Caption = CurrentProgress;
if( CurrentSize==0 )ProgressCurrentProgress->Position = 0;
else ProgressCurrentProgress->Position = CurrentProgress*100L/CurrentSize;
}
void __fastcall TfrmUpload::FormShow(TObject *Sender)
{
FileCount=0;
TotalSize=0;
TotalProgress=0;
strcpy(CurrentFile,"");
CurrentSize=0;
CurrentProgress=0;
Timer1->Enabled = true;
UploadThread=CreateThread(NULL,0,Upload,NULL,0,&UploadThreadID);
}
//---------------------------------------------------------------------------
void __fastcall TfrmUpload::Timer1Timer(TObject *Sender)
{
unsigned long code;
RefreshDisplay();
if( Uploading==true && GetExitCodeThread(UploadThread,&code) )
{
if( code != STILL_ACTIVE ){ Close(); };
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmUpload::FormClose(TObject *Sender,
TCloseAction &Action)
{
unsigned long code;
UploadStop=true;
if( GetExitCodeThread(UploadThread,&code) )
{
if( code == STILL_ACTIVE ){ Action = caNone;return; };
}
Uploading=false;
if( UploadManualCancel==true ){ frmMain->CheckBoxAlwaysSend->Checked = false; }
if( SendResult&&UploadManualCancel==false ){ SendResult=0;Application->MessageBox(SendResultMsg,"错误",MB_ICONERROR|MB_OK); };
Timer1->Enabled = false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmUpload::SpeedButton1Click(TObject *Sender)
{
UploadManualCancel=true;
Close();
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -