/**************************************************************************** * @source : FrmVmsOpMainF.cpp * @description : ¾îÇø®ÄÉÀÌ¼Ç ¸ÞÀÎÆû **************************************************************************** * DATE AUTHOR DESCRIPTION * -------------------------------------------------------------------------- * 2011/11/22 Á¤½ÂÈ£ ÃÖÃÊÀÛ¼º * ****************************************************************************/ //--------------------------------------------------------------------------- #include #include "ITSSkinF.h" #pragma hdrstop #include "FrmVmsCamViewerF.h" #include "FrmCameraViewF.h" #include "CDSCctvF.h" #include "CDSVmsCtlrF.h" #include "VMSVIEWMF.h" #include "DMDbF.h" //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "cxButtons" #pragma link "cxContainer" #pragma link "cxControls" #pragma link "cxEdit" #pragma link "cxGraphics" #pragma link "cxLookAndFeelPainters" #pragma link "cxLookAndFeels" #pragma link "cxPC" #pragma link "cxPCdxBarPopupMenu" #pragma link "cxProgressBar" #pragma link "dxSkinsCore" #pragma link "dxSkinscxPCPainter" #pragma link "dxSkinBlue" #pragma link "dxSkinsForm" #pragma link "dxSkinBlack" #pragma resource "*.dfm" TFrmVmsCamViewer *FrmVmsCamViewer = NULL; //--------------------------------------------------------------------------- __fastcall TFrmVmsCamViewer::TFrmVmsCamViewer(TComponent* Owner) : TForm(Owner)//TdxCustomRibbonForm(Owner)//TForm(Owner) { //DoubleBuffered = true; g_AppCfg.lMainWinHandle = (long)Handle; ITSSkin_Initialize(Application); ITSSkin_Load(this); CMM_LoadForm(g_sFormsDir, this); SetColorScheme(g_AppCfg.sSkinName); TsList01->Visible = false; TsList01->TabVisible = false; PnlBack->ParentColor = false; PnlBack->Color = clBlack; PnlBack->Font->Color = clWhite; FMonitoringType = enMonitoringCamera; IsFormResizing = false; FOldWidth = Width; FOldHeight= Height; FCurrPage = NULL; PgCamera->OnPageChanging = NULL; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsCamViewer::FormCreate(TObject *Sender) { Application->ShowMainForm = false; try { Application->Icon->LoadFromResourceName(((unsigned int)HInstance), "MAINICON"); } catch(...) { ShowMessage("LoadFromResourceName failed"); } Application->ShowMainForm = true; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsCamViewer::FormShow(TObject *Sender) { Application->ProcessMessages(); FormInit(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsCamViewer::FormClose(TObject *Sender, TCloseAction &Action) { CommClose(); Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsCamViewer::CommClose() { try { ITSSkin_Term(); CMM_SaveForm(g_sFormsDir, this); } catch(Exception &e) { } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsCamViewer::SetColorScheme(String ASkinName) { dxSkinController1->SkinName = ASkinName; dxSkinController1->Refresh(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsCamViewer::FormInit() { PnlProgress->Left = (this->Width - PnlProgress->Width) / 2; PnlProgress->Top = (this->Height - PnlProgress->Height) / 2; PnlProgress->Top -= 50; PnlProgress->Visible = true; PgCamera->Visible = true; Application->ShowMainForm = false; PgCamera->Visible = false; DMDb->SetConnectString(g_AppCfg.itsdb.sProvider, g_AppCfg.itsdb.sServerName, g_AppCfg.itsdb.sUserName, g_AppCfg.itsdb.sPassword); if (!DMDb->Connect()) { Application->MessageBox(L"µ¥ÀÌÅͺ£À̽º ¿¬°á¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù.\r\n\r\nÇÁ·Î±×·¥À» ´Ù½Ã ½ÃÀÛÇϽʽÿä.", L"µ¥ÀÌÅͺ£À̽º ¿¬°á ¿À·ù!!!", MB_OK|MB_ICONERROR); PnlProgress->Visible = false; return; } PbLoadMap->Properties->Text = "±âº» Á¤º¸ ·Îµù Áß..."; Application->ProcessMessages(); PbLoadMap->Position = 20; XCctvManager = new TXCctvManager(); XViewManager = new TXViewManager(); ItsCodeManager = new TItsCodeManager(); ItsCodeManager->LoadFromDb(DMDb->GetConnection()); VmsManager = new TVmsCtlrManager(); VmsManager->LoadVmsSize(DMDb->GetConnection()); VmsManager->LoadFromDb(DMDb->GetConnection()); PbLoadMap->Properties->Text = "±âº» ¸ð´ÏÅ͸µ È­¸é ÃʱâÈ­..."; Application->ProcessMessages(); PbLoadMap->Position = 40; InitMonitoringForm(); PbLoadMap->Properties->Text = "¸ð´ÏÅ͸µ È­¸é Á¶È¸Áß..."; Application->ProcessMessages(); PbLoadMap->Position = 60; XCctvManager->LoadFromDb(DMDb->GetConnection()); XViewManager->LoadFromDb(DMDb->GetConnection()); PbLoadMap->Properties->Text = "¸ð´ÏÅ͸µ È­¸é ±¸¼ºÁß..."; Application->ProcessMessages(); PbLoadMap->Position = 100; CreateMonitoringScreen(); DMDb->Close();; PnlBack->ParentColor = true; PgCamera->Visible = true; BtnMonitoringMngr->Visible = true; PnlProgress->Visible = false; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsCamViewer::InitMonitoringForm() { String sQry; TADOQuery *pADO = NULL; sQry = "SELECT COUNT(1) AS CNT \r\n" " FROM TB_VMS_MONITORING \r\n" " WHERE MONITORING_TYPE = :p01 \r\n"; try { int nString(0), nFigure(0), nFormSeq(0); VmsManager->FLists.Lock(); try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = DMDb->GetConnection(); DMDb->SQLText(pADO, sQry); DMDb->SQLBind(pADO, "p01", String(FMonitoringType)); DMDb->SQLOpen(pADO); int nFormCnt = pADO->FieldByName("CNT")->AsInteger; if (nFormCnt > 0) return; sQry = "INSERT INTO TB_VMS_MONITORING ( \r\n" " MONITORING_TYPE, \r\n" " MONITORING_NM, \r\n" " MONITORING_SEQ, \r\n" " VMS_CTLR_NMBR \r\n" " ) \r\n" " VALUES ( \r\n" " :p01, \r\n" " :p02, \r\n" " :p03, \r\n" " :p04 \r\n" " ) \r\n"; DMDb->SQLText(pADO, sQry); FOR_STL(TVmsCtlr*, pObj, VmsManager->FLists) { if (pObj->DEL_YN == "Y") continue; String sFormName = "VMS ¹®ÀÚ½Ä"; if (pObj->VMS_USAG_TYPE_CD == "VUTN") //¹®ÀÚ½Ä { nFormSeq = ++nString; } else if (pObj->VMS_USAG_TYPE_CD == "VUTP") //µµÇü½Ä { sFormName = "VMS µµÇü½Ä"; nFormSeq = ++nFigure; } else continue; DMDb->SQLBind(pADO, "p01", String(FMonitoringType)); DMDb->SQLBind(pADO, "p02", sFormName); DMDb->SQLBind(pADO, "p03", String(nFormSeq)); DMDb->SQLBind(pADO, "p04", String(pObj->VMS_CTLR_NMBR)); DMDb->SQLExec(pADO); } } catch(EDatabaseError &E) { throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } VmsManager->FLists.UnLock(); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsCamViewer::ApplicationEvents1Minimize(TObject *Sender) { //¿µ»óÇ¥ÃâÀ» Á¤ÁöÇÑ´Ù. } //--------------------------------------------------------------------------- void __fastcall TFrmVmsCamViewer::ApplicationEvents1Restore(TObject *Sender) { //¿µ»óÇ¥ÃâÀ» Àç»ó¿µÇÑ´Ù. RecalFormSize(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsCamViewer::FormResize(TObject *Sender) { if (IsFormResizing == false) { RecalFormSize(); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsCamViewer::WMEnterSizeMove(TMessage &Msg) { IsFormResizing = true; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsCamViewer::WMExitSizeMove(TMessage &Msg) { IsFormResizing = false; RecalFormSize(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsCamViewer::RecalFormSize() { #if 0 int nNewW = PgCamera->Width; int nNewH = PgCamera->Height; #else int nNewW = Width; int nNewH = Height; #endif if (nNewW == FOldWidth && nNewH == FOldHeight) { return; } Application->ProcessMessages(); FOldWidth = nNewW; FOldHeight= nNewH; try { for (int ii = 0 ; ii < PgCamera->PageCount; ii++) { TcxTabSheet *pSheet = PgCamera->Pages[ii]; if (!pSheet) continue; TXView *pObj = (TXView*)pSheet->Tag; if (pObj) { pObj->FForm->Left = 0; pObj->FForm->Top = 0; pObj->FForm->Width = pSheet->Width; pObj->FForm->Height= pSheet->Height; pObj->FForm->RecalFormSize(); } } } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsCamViewer::CreateMonitoringScreen() { try { LockWindowUpdate(Handle); PgCamera->OnPageChanging = NULL; for (int ii = PgCamera->PageCount-1; ii >= 1 ; ii--) { TcxTabSheet *pSheet = PgCamera->Pages[ii]; if (pSheet) { //TXView *pObj = (TXView*)pSheet->Tag; //if (pObj) pObj->FForm->Stop(); delete pSheet; } } if (XViewManager->FLists.Size() == 0) { TXView *pObj = new TXView(); pObj->Id = 0; pObj->Name = " -Empty- "; pObj->Layout = 1; pObj->Selected = 0; XViewManager->FLists.Push(pObj->Id, pObj); } int nActivePage = 1; TcxTabSheet *pActiveSheet = NULL; FOR_STL(TXView*, pObj, XViewManager->FLists) { TcxTabSheet *pSheet = new TcxTabSheet(PgCamera); pSheet->PageControl = PgCamera; pSheet->Caption = " " + pObj->Name + " "; #if 0 if (pObj->Selected >= 0) nActivePage = pObj->Selected; #endif if (!pActiveSheet) { pActiveSheet = pSheet; } pSheet->Tag = (int)pObj; pObj->FForm = new TFrmCameraView(this, pSheet, pObj); pObj->FForm->FView = pObj; pObj->FForm->Parent = pSheet; pObj->FForm->FSheet = pSheet; pObj->FForm->Left = 0; pObj->FForm->Top = 0; pObj->FForm->Width = pSheet->Width; pObj->FForm->Height= pSheet->Height; pObj->FForm->Show(); pObj->FForm->Layout = pObj->Layout; } //PgCamera->ActivePageIndex = nActivePage; if (pActiveSheet) { PgCamera->ActivePage = pActiveSheet; } FCurrPage = PgCamera->ActivePage; if (FCurrPage) { TXView *pObj = (TXView*)FCurrPage->Tag; if (pObj) pObj->FForm->Play(); } PgCamera->OnPageChanging = PgCameraPageChanging; } __finally { LockWindowUpdate(0); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsCamViewer::BtnMonitoringMngrClick(TObject *Sender) { if (!DMDb->Connect()) { Application->MessageBox(L"µ¥ÀÌÅͺ£À̽º ¿¬°á¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù.\r\n\r\nÇÁ·Î±×·¥À» ´Ù½Ã ½ÃÀÛÇϽʽÿä.", L"µ¥ÀÌÅͺ£À̽º ¿¬°á ¿À·ù!!!", MB_OK|MB_ICONERROR); return; } TVMSVIEWM *pForm = new TVMSVIEWM(this); pForm->FMonitoringType = FMonitoringType; pForm->ShowModal(); bool bUpdate = pForm->FUpdate; if(pForm) { delete pForm; pForm = NULL; } if (bUpdate) { XViewManager->LoadFromDb(DMDb->GetConnection()); CreateMonitoringScreen(); } DMDb->Close(); EdFocus->SetFocus(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsCamViewer::PgCameraPageChanging(TObject *Sender, TcxTabSheet *NewPage, bool &AllowChange) { if (FCurrPage) { TXView *pObj = (TXView*)FCurrPage->Tag; if (pObj) pObj->FForm->Stop(); } FCurrPage = NewPage; TXView *pObj = (TXView*)FCurrPage->Tag; if (pObj) pObj->FForm->Play(); } //---------------------------------------------------------------------------