Example #1
0
//---------------------------------------------------------------------------
// 印刷の実行
int __fastcall TPrintDlgBox::Execute(void)
{
	if( (!mColCount) || (!mRowCount) ) return FALSE;
	int r = FALSE;
	if( PrintDialog->Execute() == TRUE ){
		TForm *pActive = Screen->ActiveForm;
        if( pActive != NULL ) pActive->Enabled = FALSE;
		mAbort = 0;
		CWaitCursor	tw;
        Printer()->Title = "MMANA";
		Printer()->BeginDoc();
		Printer()->Canvas->Font->Name = "MS ゴシック";
		mRC = Printer()->Canvas->ClipRect;
		if( InitSetup(Printer()->Canvas) == FALSE ){
			mAbort = 1;
        }
		tw.Delete();
		if( !mAbort ){
			Show();
			for( mPage = 0; mPage < mPageMax; mPage++ ){	// 印刷ループ
				if( mPage ) Printer()->NewPage();
				DispPageStat();
				Application->ProcessMessages();
				if( mAbort ) break;
				DrawRect();
				Application->ProcessMessages();
				if( mAbort ) break;
				DrawPage();
				Application->ProcessMessages();
				if( mAbort ) break;
	        }
		}
		tw.Wait();
        if( mAbort ){
			Printer()->Abort();
        }
        else {
			Printer()->EndDoc();
            r = TRUE;
        }
        if( pActive != NULL ) pActive->Enabled = TRUE;
		Visible = FALSE;
    }
    return r;
}