//--------------------------------------------------------------------------- #include #pragma hdrstop #include "MainForm.h" #include "LEADTemplateDialog.h" #include "AboutForm.h" #include "SupportedCapsDialog.h" #include "ErrorsDialog.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "LEADDlgFile" #pragma link "LEADDlgService" #pragma link "LEADMain" #pragma link "LEADTwain" #pragma resource "*.dfm" TMainFrm *MainFrm; //--------------------------------------------------------------------------- __fastcall TMainFrm::TMainFrm(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void TMainFrm::UnlockSupport ( ) { _LEADImage->UnlockSupport ( L_SUPPORT_DOCUMENT, L_KEY_DOCUMENT ); _LEADImage->UnlockSupport ( L_SUPPORT_GIFLZW, L_KEY_GIFLZW ); _LEADImage->UnlockSupport ( L_SUPPORT_TIFLZW, L_KEY_TIFLZW ); _LEADImage->UnlockSupport ( L_SUPPORT_OCR, L_KEY_OCR ); _LEADImage->UnlockSupport ( L_SUPPORT_MEDICAL, L_KEY_MEDICAL ); _LEADImage->UnlockSupport ( L_SUPPORT_VECTOR, L_KEY_VECTOR ); _LEADImage->UnlockSupport ( L_SUPPORT_MEDICAL_NET, L_KEY_MEDICAL_NET ); _LEADImage->UnlockSupport ( L_SUPPORT_BARCODES_1D, L_KEY_BARCODES_1D ); _LEADImage->UnlockSupport ( L_SUPPORT_BARCODES_2D_READ, L_KEY_BARCODES_2D_READ ); _LEADImage->UnlockSupport ( L_SUPPORT_BARCODES_2D_WRITE, L_KEY_BARCODES_2D_WRITE ); _LEADImage->UnlockSupport ( L_SUPPORT_BARCODES_PDF_READ, L_KEY_BARCODES_PDF_READ ); _LEADImage->UnlockSupport ( L_SUPPORT_BARCODES_PDF_WRITE, L_KEY_BARCODES_PDF_WRITE ); _LEADImage->UnlockSupport ( L_SUPPORT_PDF, L_KEY_PDF ); _LEADImage->UnlockSupport ( L_SUPPORT_J2K, L_KEY_J2K ); _LEADImage->UnlockSupport ( L_SUPPORT_CMW, L_KEY_CMW ); _LEADImage->UnlockSupport ( L_SUPPORT_DICOM, L_KEY_DICOM ); _LEADImage->UnlockSupport ( L_SUPPORT_EXTGRAY, L_KEY_EXTGRAY ); _LEADImage->UnlockSupport ( L_SUPPORT_BITONAL, L_KEY_BITONAL ); _LEADImage->UnlockSupport ( L_SUPPORT_PDF_SAVE, L_KEY_PDF_SAVE ); _LEADImage->UnlockSupport ( L_SUPPORT_OCR_PDF_OUTPUT, L_KEY_OCR_PDF_OUTPUT ); _LEADImage->UnlockSupport ( L_SUPPORT_BARCODES_DATAMATRIX_READ, L_KEY_BARCODES_DATAMATRIX_READ ); _LEADImage->UnlockSupport ( L_SUPPORT_BARCODES_DATAMATRIX_WRITE, L_KEY_BARCODES_DATAMATRIX_WRITE ); _LEADImage->UnlockSupport ( L_SUPPORT_LTPRO, L_KEY_LTPRO ); _LEADImage->UnlockSupport ( L_SUPPORT_ABC, L_KEY_ABC ); _LEADImage->UnlockSupport ( L_SUPPORT_JBIG2, L_KEY_JBIG2 ); _LEADImage->UnlockSupport ( L_SUPPORT_ABIC_READ, L_KEY_ABIC_READ ); _LEADImage->UnlockSupport ( L_SUPPORT_ABIC_SAVE, L_KEY_ABIC_SAVE ); _LEADImage->UnlockSupport ( L_SUPPORT_PDF_READ, L_KEY_PDF_READ ); _LEADImage->UnlockSupport ( L_SUPPORT_PDF_ADVANCED, L_KEY_PDF_ADVANCED ); } //--------------------------------------------------------------------------- void TMainFrm::UpdateMenu ( ) { L_INT nCount; L_INT nIndex; if ( _LEADImage->Bitmap != NULL ) { nCount= _LEADImage->BitmapListCount; nIndex= _LEADImage->BitmapListIndex; _miFileSaveAs->Enabled= true; _miViewNext->Enabled= ( nIndex < (nCount - 1) ); _miViewPrevious->Enabled= ( nIndex > 0 ); } else { _miFileSaveAs->Enabled= false; _miViewNext->Enabled= false; _miViewPrevious->Enabled= false; } } //--------------------------------------------------------------------------- L_INT TMainFrm::SaveToFile(char* pszFile, L_INT nFormat, L_INT nBitsPerPixel, L_INT nQFactor, L_UINT uSaveOperation, bool bSaveWithStamp, L_INT nStampWidth, L_INT nStampHeight, L_INT nStampBitsPerPixel) { L_INT nRet; _LEADImage->EnableMethodErrors= true; if ( _LEADImage->Bitmap != NULL ) { if(bSaveWithStamp) nRet= _LEADImage->SaveWithStamp(pszFile, nFormat, nBitsPerPixel, nQFactor, nStampWidth, nStampHeight, nStampBitsPerPixel); else nRet= _LEADImage->Save(pszFile, nFormat, nBitsPerPixel, nQFactor, uSaveOperation); } else { nRet= ERROR_NO_BITMAP; } return nRet; } //--------------------------------------------------------------------------- void __fastcall TMainFrm::FormCreate(TObject *Sender) { L_INT nRet; UnlockSupport ( ); _LEADTwain->EnableMethodErrors= false; nRet= _LEADTwain->InitSession ( (int)Application->Handle ); if ( nRet != SUCCESS ) { ShowMessage ( "Error Initializing Twain" ); return; } UpdateMenu ( ); nRet= _LEADDlgService->InitDialogs ( 0 ); if ( nRet != SUCCESS ) { ShowMessage ( "Error Initializing Dialogs" ); Application->Terminate ( ); } } //--------------------------------------------------------------------------- void __fastcall TMainFrm::_miFileOpenClick(TObject *Sender) { L_INT nRet; AnsiString strName; L_INT nPage; AnsiString Msg; _LEADDlgFile->EnableMethodErrors= True; _LEADDlgFile->DlgFileFlags= 0; _LEADDlgFile->DialogTitle= "Open File"; _LEADDlgFile->FileName= ""; _LEADDlgFile->DlgFlags= DLG_OPEN_SHOW_MULTIPAGE + DLG_OPEN_SHOW_FILEINFO + DLG_OPEN_SHOW_PREVIEW + DLG_OPEN_USEFILESTAMP; nRet= _LEADDlgFile->ShowOpenDlg ( this ); if ( nRet == SUCCESS_DLG_OK ) { strName= _LEADDlgFile->FileName; nPage= _LEADDlgFile->PageNumber; nRet= _LEADImage->Load ( strName, 0, nPage, -1 ); if ( nRet == SUCCESS ) { _LEADImage->BackErase= False; } else { Msg= "Error Loading File :"+ strName + "\nError " + IntToStr(_LEADImage->Error); ShowMessage ( Msg ) ; } } UpdateMenu ( ); } //--------------------------------------------------------------------------- void __fastcall TMainFrm::_miFileSaveAsClick(TObject *Sender) { L_INT nRet; _LEADDlgFile->EnableMethodErrors= True; _LEADDlgFile->DlgFileFlags= 0; _LEADDlgFile->DialogTitle= "Save A File"; _LEADDlgFile->FileName= ""; _LEADDlgFile->DlgFlags= DLG_SAVE_ENABLESIZING | DLG_SAVE_SHOW_FILEOPTIONS_MULTIPAGE | DLG_SAVE_SHOW_FILEOPTIONS_PROGRESSIVE | DLG_SAVE_SHOW_FILEOPTIONS_QFACTOR | DLG_SAVE_SHOW_FILEOPTIONS_STAMP | DLG_SAVE_SHOW_FILEOPTIONS_BASICJ2KOPTIONS | DLG_SAVE_SHOW_FILEOPTIONS_J2KOPTIONS; nRet= _LEADDlgFile->ShowSaveDlg ( this ); if ( nRet < SUCCESS_DLG_OK ) { ShowMessage("Error Saving File!"); } if(nRet == SUCCESS_DLG_OK) { SetJ2KOptions(); SaveToFile(_LEADDlgFile->FileName.c_str(), _LEADDlgFile->SaveFormat, _LEADDlgFile->SaveBitsPerPixel, _LEADDlgFile->SaveQFactor, _LEADDlgFile->SaveMulti, _LEADDlgFile->SaveWithStamp, _LEADDlgFile->SaveStampWidth, _LEADDlgFile->SaveStampHeight, _LEADDlgFile->SaveStampBits); } } //--------------------------------------------------------------------------- void __fastcall TMainFrm::_miFileExitClick(TObject *Sender) { Close ( ); } //--------------------------------------------------------------------------- void __fastcall TMainFrm::_miTwainSelectSourceClick(TObject *Sender) { _LEADTwain->SelectSource ( ); SetFocus ( ); } //--------------------------------------------------------------------------- void __fastcall TMainFrm::_miTwainAcquireClick(TObject *Sender) { L_INT nRet; _miViewNext->Enabled= false; _miViewPrevious->Enabled= false; nRet= _LEADTwain->Acquire ( LTWAIN_SHOW_USER_INTERFACE ); if(nRet == SUCCESS) { if(_twXferMech == TWSX_FILE) Application->MessageBox("Acquired page(s) is saved to file(s)", "Acquire to File", MB_OK); } else { AnsiString strError= "An error occurred in TWAIN Acquire..., Error No: " + IntToStr(nRet); AddErrorToErrorList(strError); ShowMessage(strError); } SetFocus ( ); } //--------------------------------------------------------------------------- void __fastcall TMainFrm::_miViewNextClick(TObject *Sender) { L_INT nIndex; L_INT nCount; nCount= _LEADImage->BitmapListCount; nIndex= _LEADImage->BitmapListIndex; if ( nIndex < (nCount - 1) ) { _LEADImage->BitmapListIndex ++; } UpdateMenu ( ); } //--------------------------------------------------------------------------- void __fastcall TMainFrm::_miViewPreviousClick(TObject *Sender) { L_INT nIndex; nIndex= _LEADImage->BitmapListIndex; if ( nIndex > 0 ) { _LEADImage->BitmapListIndex --; } UpdateMenu ( ); } //--------------------------------------------------------------------------- int __fastcall TMainFrm::_LEADTwainAcquirePageEvent(TBitmapHandle Bitmap) { if(_twXferMech != TWSX_FILE) _LEADImage->InsertBitmapListItem(LST_APPEND, Bitmap); UpdateMenu(); return SUCCESS; } //--------------------------------------------------------------------------- void __fastcall TMainFrm::_miHelpAboutClick(TObject *Sender) { TAboutFrm * dlg = new TAboutFrm(this); dlg->ShowModal(); dlg->Free(); } //--------------------------------------------------------------------------- void TMainFrm::SetJ2KOptions() { _LEADImage->J2KCompressionControl= _LEADDlgFile->SaveJ2KCompressionControl; _LEADImage->J2KUseColorTransform = _LEADDlgFile->SaveJ2KUseColorTransform; _LEADImage->J2KDerivedQuantization= _LEADDlgFile->SaveJ2KDerivedQuantization; _LEADImage->J2KCompressionControl= _LEADDlgFile->SaveJ2KCompressionControl; if(_LEADDlgFile->SaveJ2KCompressionControl == J2K_COMPRESSION_RATIO) _LEADImage->J2KCompressionRatio= _LEADDlgFile->SaveJ2KCompressionRatio; else if(_LEADDlgFile->SaveJ2KCompressionControl == J2K_COMPRESSION_TARGETSIZE) _LEADImage->J2KTargetFileSize= _LEADDlgFile->SaveJ2KTargetFileSize; _LEADImage->J2KXOsiz= _LEADDlgFile->SaveJ2KXOsiz; _LEADImage->J2KYOsiz= _LEADDlgFile->SaveJ2KYOsiz; _LEADImage->J2KXTsiz= _LEADDlgFile->SaveJ2KXTsiz; _LEADImage->J2KYTsiz= _LEADDlgFile->SaveJ2KYTsiz; _LEADImage->J2KXTOsiz= _LEADDlgFile->SaveJ2KXTOsiz; _LEADImage->J2KYTOsiz= _LEADDlgFile->SaveJ2KYTOsiz; _LEADImage->J2KDecompLevel= _LEADDlgFile->SaveJ2KDecompLevel; _LEADImage->J2KProgressOrder= _LEADDlgFile->SaveJ2KProgressOrder; _LEADImage->J2KCodBlockWidth= _LEADDlgFile->SaveJ2KCodBlockWidth; _LEADImage->J2KCodBlockHeight= _LEADDlgFile->SaveJ2KCodBlockHeight; _LEADImage->J2KCBS_SelectiveACBypass= _LEADDlgFile->SaveJ2KCBS_SelectiveACBypass; _LEADImage->J2KCBS_ResetContextOnBoundaries= _LEADDlgFile->SaveJ2KCBS_ResetContextOnBoundaries; _LEADImage->J2KCBS_TerminationOnEachPass= _LEADDlgFile->SaveJ2KCBS_TerminationOnEachPass; _LEADImage->J2KCBS_VerticallyCausalContext= _LEADDlgFile->SaveJ2KCBS_VerticallyCausalContext; _LEADImage->J2KCBS_PredictableTermination= _LEADDlgFile->SaveJ2KCBS_PredictableTermination; _LEADImage->J2KCBS_ErrorResilienceSymbol= _LEADDlgFile->SaveJ2KCBS_ErrorResilienceSymbol; _LEADImage->J2KGuardBits= _LEADDlgFile->SaveJ2KGuardBits; _LEADImage->J2KDerivedBaseMantissa= _LEADDlgFile->SaveJ2KDerivedBaseMantissa; _LEADImage->J2KDerivedBaseExponent= _LEADDlgFile->SaveJ2KDerivedBaseExponent; _LEADImage->J2KUseSOPMarker= _LEADDlgFile->SaveJ2KUseSOPMarker; _LEADImage->J2KUseEPHMarker= _LEADDlgFile->SaveJ2KUseEPHMarker; } //--------------------------------------------------------------------------- void __fastcall TMainFrm::_miTemplateLEADTemplateClick(TObject *Sender) { TLEADTemplateDlg * dlg = new TLEADTemplateDlg(this); dlg->ShowModal(); dlg->Free(); } //--------------------------------------------------------------------------- void __fastcall TMainFrm::_miTemplateShowSupportedCapabilitiesClick( TObject *Sender) { TSupportedCapsDlg * dlg = new TSupportedCapsDlg(this); dlg->ShowModal(); dlg->Free(); } //--------------------------------------------------------------------------- void TMainFrm::AddErrorToErrorList(AnsiString strError) { _arrErrors.Length = _arrErrors.Length + 1; _arrErrors[_arrErrors.High]= strError; } //--------------------------------------------------------------------------- DynamicArray TMainFrm::GetErrorsList() { return _arrErrors; } //--------------------------------------------------------------------------- void TMainFrm::ClearErrorList() { _arrErrors.Length= 0; } //--------------------------------------------------------------------------- void __fastcall TMainFrm::_miTemplateShowErrorCodesClick(TObject *Sender) { TErrorsDlg * dlg = new TErrorsDlg(this); dlg->ShowModal(); dlg->Free(); } //---------------------------------------------------------------------------