www.pudn.com > bambam004_source.rar > MainFormUnit.cpp


//--------------------------------------------------------------------------- 
// MainFormUnit.cpp 
// bcb shell coded by mouser (9/18/04) using existing samples for delphi+c 
//--------------------------------------------------------------------------- 
 
//--------------------------------------------------------------------------- 
// System includes and C++ Builder Stuff 
#include  
#pragma hdrstop 
//--------------------------------------------------------------------------- 
 
 
//--------------------------------------------------------------------------- 
// System includes 
//#include  
#include  
//--------------------------------------------------------------------------- 
 
//--------------------------------------------------------------------------- 
// Application includes 
#include "MainFormUnit.h" 
 
#include "apacksamplec.h" 
#include "aplib.h" 
//--------------------------------------------------------------------------- 
 
//--------------------------------------------------------------------------- 
// C++ Builder stuff 
#pragma package(smart_init) 
#pragma resource "*.dfm" 
//--------------------------------------------------------------------------- 
 
 
//--------------------------------------------------------------------------- 
// Global Form Instance Pointer 
TMainForm *MainForm; 
//--------------------------------------------------------------------------- 
 
 
 
//--------------------------------------------------------------------------- 
// Compression callback sample 
int STDPREFIX mainformcallback(unsigned int insize, unsigned int inpos, unsigned int outpos, void *cbparam) 
{ 
	char resultstr[255]; 
	unsigned int ratioval=ratio(inpos, insize); 
	sprintf(resultstr,"compressed %u -> %u bytes (%u%% done)", inpos, outpos, ratioval); 
	MainForm->LabelResult->Caption=AnsiString(resultstr); 
	MainForm->ProgressBar->Position=ratioval; 
	// let gui update 
	Application->ProcessMessages(); 
	// return 
	if (MainForm->get_wantscancel()) 
		return 0; 
	return 1; 
} 
 
// result callback 
void STDPREFIX mainformresultcallback(char *resultstr, int errorcode) 
{ 
	MainForm->LabelResult->Caption=AnsiString(resultstr); 
	if (errorcode==0) 
		MainForm->LabelResult->Font->Color=clBlack; 
	else 
		MainForm->LabelResult->Font->Color=clMaroon; 
} 
//--------------------------------------------------------------------------- 
 
 
 
 
 
 
 
 
//--------------------------------------------------------------------------- 
__fastcall TMainForm::TMainForm(TComponent* Owner) 
	: TForm(Owner) 
{ 
	// constructor 
	Initialize(); 
} 
//--------------------------------------------------------------------------- 
 
 
 
 
 
//--------------------------------------------------------------------------- 
void TMainForm::Initialize() 
{ 
	// initialize the library 
	SetStateNotRunning(); 
} 
 
void TMainForm::SetStateRunning() 
{ 
	// change visible state to running 
	ButtonCancel->Enabled=true; 
} 
 
void TMainForm::SetStateNotRunning() 
{ 
	// change visible state to not running 
	ButtonCancel->Enabled=false; 
	wantscancel=false; 
	ProgressBar->Position=0; 
} 
//--------------------------------------------------------------------------- 
 
 
 
 
 
 
 
//--------------------------------------------------------------------------- 
void __fastcall TMainForm::ButtonCompressClick(TObject *Sender) 
{ 
	// ask for file and compress it 
	bool bretv; 
	int retv; 
	OpenDialog->Title="Browse for file to Compress.."; 
	bretv=OpenDialog->Execute(); 
	if (bretv) 
		{ 
		// compress it 
		AnsiString filename=OpenDialog->FileName; 
		AnsiString newfilename=filename+".out"; 
		SetStateRunning(); 
		retv=compress_file(filename.c_str(),newfilename.c_str(),mainformcallback,mainformresultcallback); 
		SetStateNotRunning(); 
		} 
} 
 
 
void __fastcall TMainForm::ButtonDecompressClick(TObject *Sender) 
{ 
	// ask for file and decompress it 
	bool bretv; 
	int retv; 
	OpenDialog->Title="Browse for file to Decompress.."; 
	bretv=OpenDialog->Execute(); 
	if (bretv) 
		{ 
		// decompress it 
		AnsiString filename=OpenDialog->FileName; 
		AnsiString newfilename=filename+".out"; 
		SetStateRunning(); 
		retv=decompress_file(filename.c_str(),newfilename.c_str(),mainformcallback,mainformresultcallback); 
		SetStateNotRunning(); 
		} 
} 
//--------------------------------------------------------------------------- 
 
 
 
 
//--------------------------------------------------------------------------- 
void __fastcall TMainForm::ButtonCancelClick(TObject *Sender) 
{ 
	// user wants to cancel 
	wantscancel=true; 
} 
//---------------------------------------------------------------------------