123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271 |
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #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)
- {
- }
- }
- //---------------------------------------------------------------------------
|