Files
AppUpgrade/UpgradeUnit.cpp
2026-07-13 10:02:53 +08:00

123 lines
3.0 KiB
C++

//---------------------------------------------------------------------------
#include <vcl.h>
#include <stdio.h>
#pragma hdrstop
#include "UpgradeThread.h"
#include "UpgradeUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TUpgradeForm *UpgradeForm;
//---------------------------------------------------------------------------
__fastcall TUpgradeForm::TUpgradeForm(TComponent* Owner)
: TForm(Owner)
{
m_pThread = NULL;
}
//---------------------------------------------------------------------------
void __fastcall TUpgradeForm::CreateParams(TCreateParams &Params)
{
TForm::CreateParams(Params);
// wcscpy(Params.WinClassName.data, (LPCTSTR)APPNAME);
wcscpy(Params.WinClassName, (LPCTSTR)APPNAME);
}
// ---------------------------------------------------------------------------
void __fastcall TUpgradeForm::FormDestroy(TObject *Sender)
{
if( m_pThread ){
((TUpgradeThread*)m_pThread)->Cancel();
m_pThread->WaitFor();
delete m_pThread;
m_pThread = NULL;
}
}
//---------------------------------------------------------------------------
void __fastcall TUpgradeForm::FormCloseQuery(TObject *Sender, bool &CanClose)
{
if( m_pThread ){
String msg = m_iMode==1 ? L"正在处理中,确认退出程序?"
: L"正在升级中,是否确定中止?";
int mrRet = MessageBox(Handle, msg.c_str(), L"退出",
MB_ICONQUESTION | MB_YESNO);;
if( mrRet==mrNo )
CanClose = false;
}
}
//---------------------------------------------------------------------------
void __fastcall TUpgradeForm::FormShow(TObject *Sender)
{
Caption = m_iMode==0 ? L"自动升级程序"
: L"MD5生成程序";
m_pThread = new TUpgradeThread(true, m_iMode, m_idSoft, m_sVar, Handle );
m_pThread->Start();
}
//---------------------------------------------------------------------------
void __fastcall TUpgradeForm::UMShowText(TMessage &msg)
{
TCHAR* str = (TCHAR*)msg.LParam;
if( msg.WParam==0 )
m_lblTxt->Caption = str;
else if( msg.WParam==1 )
m_lblFileCount->Caption = str;
else
m_lblFileName->Caption = str;
}
//---------------------------------------------------------------------------
void __fastcall TUpgradeForm::UMProgress(TMessage &msg)
{
if( msg.WParam==0 ){
m_progCount->Position = msg.LParam;
m_progCount->Update();
}
else{
m_progFile->Position = msg.LParam;
m_progFile->Update();
}
}
//---------------------------------------------------------------------------
void __fastcall TUpgradeForm::UMComplete(TMessage &msg)
{
if( m_pThread ){
m_pThread->WaitFor();
delete m_pThread;
m_pThread = NULL;
}
if( m_iMode==0 ){
if( msg.WParam!=0 )
ShowMessage( "本次更新未能完成" );
}
else if( m_iMode==1 ){
if( msg.WParam==0 )
ShowMessage( "处理完毕" );
else
ShowMessage( "异常中止" );
}
Close();
}
//---------------------------------------------------------------------------
void __fastcall TUpgradeForm::CancelClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------