//--------------------------------------------------------------------------- #include #pragma hdrstop #include "FrmIcsCamF.h" #include "AppGlobalF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" //TFrmCctvCam *FrmCctvCam; //--------------------------------------------------------------------------- __fastcall TFrmIcsCam::TFrmIcsCam(TComponent* Owner) : TForm(Owner) { PnlBlob->Visible = false; PnlBlob->Align = alClient; FDispBlob = false; FCamUrl = ""; FObj = NULL; FPlay = false; FAutoPlay = true; FConHandle = 0; InitCamera(NULL, FAutoPlay); } //--------------------------------------------------------------------------- void __fastcall TFrmIcsCam::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; if (FObj) { FCamUrl = ExtractFilePath(Application->ExeName) + "VMS\\" + (FObj->VMS_CTLR_NMBR) + ".html"; Caption = (FObj->VMS_CTLR_NMBR) + ": " + FObj->VMS_NM; if (FDispBlob == false) { Connect(); } } } //--------------------------------------------------------------------------- void __fastcall TFrmIcsCam::FormShow(TObject *Sender) { if (FObj) PnlBack->Caption = FObj->ISTL_LCTN_NM; else PnlBack->Caption = ""; RefreshCctv(); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TFrmIcsCam::FormClose(TObject *Sender, TCloseAction &Action) { try { Disconnect(); FObj->FData2 = NULL; } catch(...) {} Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TFrmIcsCam::FormDestroy(TObject *Sender) { try { Disconnect(); FObj->FData2 = NULL; } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TFrmIcsCam::RefreshCctv() { FDispBlob = false; PnlBlob->Visible = false; #if 0 String sQry; if (!FObj) { return; } sQry = "SELECT CCTV_SBST_DSPL_YN, CCTV_SBST_IMGN \r\n" " FROM TB_CCTV_CTLR \r\n" " WHERE CCTV_CTLR_ID = :p01 \r\n"; try { pADO->Close(); pADO->SQL->Clear(); pADO->Connection = ITSDb_GetConnection(); pADO->SQL->Text = sQry; pADO->Parameters->ParamByName("p01")->Value = FObj->CCTV_CTLR_ID; pADO->Open(); } catch(EDatabaseError &E) { PnlBlob->Caption = "´ëü¿µ»ó À̹ÌÁö Á¤º¸ ÀÐ±â ½ÇÆÐ"; ShowMessage(String(E.ClassName()) + E.Message); return; } if (pADO->RecordCount == 0) { pADO->Close(); return; } ForceDirectories(g_sTempDir); TADOBlobStream *BS; int nFileSize = 0; String sImgFile = g_sTempDir + "CCTVB_" + FObj->CCTV_CTLR_ID + ".bmp"; try { DeleteFile(sImgFile); } catch(...) {} String sDispBlob; try { sDispBlob = pADO->FieldByName("CCTV_SBST_DSPL_YN")->AsString; if (sDispBlob == "Y") { BS = (TADOBlobStream *)pADO->CreateBlobStream(pADO->FieldByName("CCTV_SBST_IMGN"), bmRead); //ImgBlob->Picture->Graphic->LoadFromStream(BS); BS->SaveToFile(sImgFile); nFileSize = BS->Size; delete BS; } pADO->Close(); } catch(Exception &e) { delete BS; PnlBlob->Caption = "´ëü¿µ»ó À̹ÌÁö ½ºÆ®¸² ·Îµù ½ÇÆÐ"; return; } if (sDispBlob == "Y") { FDispBlob = true; PnlBlob->Visible = true; PnlBack->Visible = false; if (nFileSize) { try { ImgBlob->Picture->LoadFromFile(sImgFile); return; } catch(...) { ImgBlob->Visible = false; PnlBlob->Caption = "´ëü¿µ»ó À̹ÌÁö ÆÄÀÏ ·Îµù ½ÇÆÐ"; return; } } else { ImgBlob->Visible = false; PnlBlob->Caption = "´ëü¿µ»ó À̹ÌÁö »çÀÌÁî ¿À·ù"; } } else { FDispBlob = false; PnlBlob->Visible = false; PnlBack->Visible = true; } #endif } //--------------------------------------------------------------------------- void __fastcall TFrmIcsCam::MnuConnectClick(TObject *Sender) { FAutoPlay = true; Connect(); } //--------------------------------------------------------------------------- void __fastcall TFrmIcsCam::MnuDisconnectClick(TObject *Sender) { FAutoPlay = false; Disconnect(); } //--------------------------------------------------------------------------- void __fastcall TFrmIcsCam::Connect() { Disconnect(); PnlBack->Caption = "¿¬°áÁß..."; try { OpenUrl(true); } catch(...) { } FPlay = true; } //--------------------------------------------------------------------------- void __fastcall TFrmIcsCam::Disconnect() { if (!FPlay) return; try { //if (FConHandle) { OpenUrl(false); } FConHandle = 0; } catch(...) { } PnlBack->Caption = "Disconnected"; FConHandle = 0; FPlay = false; } //--------------------------------------------------------------------------- void __fastcall TFrmIcsCam::InitCamera(void *ACctv, bool AAutoPlay/*=true*/) { FAutoPlay = AAutoPlay; } //--------------------------------------------------------------------------- void __fastcall TFrmIcsCam::OpenUrl(bool AOpen) { bool bShow = AOpen; try { String sUrlName = "About:Blank"; WebBrowser1->Stop(); if (AOpen) { if (FCamUrl != "") { sUrlName = FCamUrl; } else bShow = false; } WebBrowser1->Navigate(sUrlName.c_str()); if (bShow) { //if (WebBrowser1->Visible == false) WebBrowser1->Visible = true; //BrowserShow(true); } else { //if (WebBrowser1->Visible == true) WebBrowser1->Visible = false; //BrowserShow(false); } } catch(Exception &exception) { } } //---------------------------------------------------------------------------