//--------------------------------------------------------------------------- #include #include "AppGlobalF.h" #include "ITSSkinF.h" #include "ITSUtilF.h" #include "CenterCommF.h" #pragma hdrstop #include "FrmVmsRemoteCtrlF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "cxContainer" #pragma link "cxControls" #pragma link "cxEdit" #pragma link "cxGraphics" #pragma link "cxGroupBox" #pragma link "cxLabel" #pragma link "cxLookAndFeelPainters" #pragma link "cxLookAndFeels" #pragma link "cxPC" #pragma link "cxPCdxBarPopupMenu" #pragma link "cxSplitter" #pragma link "dxSkinBlack" #pragma link "dxSkinBlue" #pragma link "dxSkinCaramel" #pragma link "dxSkinCoffee" #pragma link "dxSkinDarkRoom" #pragma link "dxSkinDarkSide" #pragma link "dxSkinFoggy" #pragma link "dxSkinGlassOceans" #pragma link "dxSkiniMaginary" #pragma link "dxSkinLilian" #pragma link "dxSkinLiquidSky" #pragma link "dxSkinLondonLiquidSky" #pragma link "dxSkinMcSkin" #pragma link "dxSkinMoneyTwins" #pragma link "dxSkinOffice2007Black" #pragma link "dxSkinOffice2007Blue" #pragma link "dxSkinOffice2007Green" #pragma link "dxSkinOffice2007Pink" #pragma link "dxSkinOffice2007Silver" #pragma link "dxSkinOffice2010Black" #pragma link "dxSkinOffice2010Blue" #pragma link "dxSkinOffice2010Silver" #pragma link "dxSkinsCore" #pragma link "dxSkinscxPCPainter" #pragma link "dxSkinSeven" #pragma link "dxSkinSharp" #pragma link "dxSkinSilver" #pragma link "dxSkinStardust" #pragma link "cxClasses" #pragma link "cxCustomData" #pragma link "cxData" #pragma link "cxDataStorage" #pragma link "cxFilter" #pragma link "cxGrid" #pragma link "cxGridCustomTableView" #pragma link "cxGridCustomView" #pragma link "cxGridLevel" #pragma link "cxGridTableView" #pragma link "cxStyles" #pragma link "cxTextEdit" #pragma link "cxGridCardView" #pragma link "cxGridCustomLayoutView" #pragma link "cxCheckBox" #pragma link "cxDropDownEdit" #pragma link "cxImage" #pragma link "cxButtons" #pragma link "cxCalc" #pragma link "cxGridBandedTableView" #pragma link "FRAME_VmsStateF" #pragma link "FRAME_VmsStateF" #pragma link "FRAME_VmsMsgListF" #pragma link "ImageBtn" #pragma link "cxMaskEdit" #pragma link "cxRadioGroup" #pragma link "cxSpinEdit" #pragma link "cxTimeEdit" #pragma link "IdBaseComponent" #pragma link "IdComponent" #pragma link "IdIcmpClient" #pragma link "IdRawBase" #pragma link "IdRawClient" #pragma link "FFBaseComponent" #pragma link "FFBasePlay" #pragma link "FFPlay" #pragma link "IdHTTP" #pragma link "IdTCPClient" #pragma link "IdTCPConnection" #pragma link "cxHint" #pragma link "dxCustomHint" #pragma link "dxScreenTip" #pragma link "dxSkinsForm" #pragma link "dxGDIPlusClasses" #pragma resource "*.dfm" TFrmVmsRemoteCtrl *FrmVmsRemoteCtrl = NULL; #define LICENSE_KEY "FSXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX" //--------------------------------------------------------------------------- __fastcall TFrmVmsRemoteCtrl::TFrmVmsRemoteCtrl(TComponent* Owner) : TForm(Owner) { //CMM_SetFormPosition(g_AppCfg.bSaveForm); ITSSkin_Initialize(Application, g_AppCfg.sLang); ITSSkin_Caption(false); ITSSkin_Load(this); //CMM_LoadForm(g_sFormsDir, this); SetColorScheme(g_AppCfg.sSkinName); LoadLocalSkin(); //if (FormStyle != fsMDIChild) CMM_LoadForm(g_sFormsDir, this); FPalyerForm = NULL; FSelVmsObj = NULL; TvList->OptionsView->GroupByBox = false; TvList->OptionsView->Footer = false; ColumnSel->Visible = true; TsOperMode->TabVisible = false; PgControl->ActivePage = TsControl; #if 0 cxTabSheet5->TabVisible = false; cxTabSheet5->Visible = false; cxTabSheet1->TabVisible = false; cxTabSheet1->Visible = false; cxTabSheet6->TabVisible = false; cxTabSheet6->Visible = false; #endif FVmsIds = new TStringList(); FTitle = Caption;//"VMS Á¦¾î"; FCtrlTab = NULL; FStrmPlay = false; reMsg->Lines->Clear(); String sAVILibDir = g_sAppDir + "LibAV"; FFPlayer1->SetLicenseKey(LICENSE_KEY); FFPlayer1->DisableFPUExceptions(); if (!FFPlayer1->LoadAVLib(sAVILibDir)) { reMsg->Lines->Add("¿µ»óÇ¥Ãâ ¶óÀ̺귯¸® ÃʱâÈ­ ½ÇÆÐ."); #if 0 if (g_AppCfg.sLang != "kr") Application->MessageBox(L"Stream display library load failed.", L"Stream display fail", MB_OK|MB_ICONERROR|MB_APPLMODAL); else Application->MessageBox(L"¿µ»óÇ¥Ãâ ¶óÀ̺귯¸®¸¦ ·ÎµåÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.", L"¿µ»óÇ¥Ãâ ¿À·ù", MB_OK|MB_ICONERROR|MB_APPLMODAL); #endif } reMsg->Lines->Clear(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::SetColorScheme(String ASkinName) { dxSkinController1->SkinName = ASkinName; dxSkinController1->Refresh(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::CommClose() { try { WebCamStop(); SAFE_DELETE(FVmsIds); //if (FormStyle != fsMDIChild) CMM_SaveForm(g_sFormsDir, this); FStrmPlay = false; CComm_Terminate(); ITSSkin_Term(); //CMM_SaveForm(g_sFormsDir, this); } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::FormShow(TObject *Sender) { Refresh(); #if 0 InitDbLoading(); UpdateList(); TvList->ApplyBestFit(NULL, true, false); #endif CxList->Enabled = false; TmrShow->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::InitDbLoading() { Application->ProcessMessages(); if (SysCodeManager == NULL) { SysCodeManager = new TSysCodeManager(); } SysCodeManager->LoadFromDb(); if (!VmsCtlrManager) { VmsCtlrManager = new TVmsCtlrManager(); } VmsCtlrManager->LoadVmsModlSize(); VmsCtlrManager->LoadFromDb(); VmsCtlrManager->LoadStatusFromDb(); VmsCtlrManager->LoadParaFromDb(); if (!CenterCommManager) { CenterCommManager = new TCenterCommManager(); } CenterCommManager->LoadFromDb(g_AppCfg.PRCS_ID); FCommCtrlTarget = CenterCommManager->FLists.Find("71"); // VMS Á¦¾î APP_FillCode(CbOPER_MODE, "VMS_OPER_MODE_CD"); //VMS¿î¿µ¸ðµå APP_FillCode(CbRPRS_STTS, "RPRSV_STTS_CD"); //´ëÇ¥»óÅ (Äڵ屸ºÐ=RPRSV_STTS_CD) APP_FillCode(CbCMNC_STTS, "CMNC_STTS_CD"); //Åë½Å»óÅ (Äڵ屸ºÐ=CMNC_STTS_CD) APP_FillCode(CbPS_STTS, "PS_STTS_CD"); //Àü¿ø»óÅ (Äڵ屸ºÐ=PS_STTS_CD) APP_FillCode(CbFAN_STTS, "FAN_STTS_CD"); //ÆÒ»óÅ (Äڵ屸ºÐ=FAN_STTS_CD) APP_FillCode(CbHTER_STTS, "HTER_STTS_CD"); //È÷ÅÍ»óÅ (Äڵ屸ºÐ=HTER_STTS_CD) APP_FillCode(CbDOOR_STTS, "DOOR_OPEN_STTS_CD"); //¹®»óÅÂ(Äڵ屸ºÐ=DOOR_OPEN_STTS_CD) APP_FillCode(CbLUMI_MODE, "LUMI_MODE_CD"); //ÈÖµµ¸ðµå(Äڵ屸ºÐ=LUMI_MODE_CD) APP_FillCode(CbFAN_MODE, "FAN_MODE_CD"); //ÆÒ¸ðµå(Äڵ屸ºÐ=FAN_MODE_CD) } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::UpdateList() { CMM_ClearGridTableView(TvList); int ii, jj; int nCols = 0; TcxDataController *pGDC = TvList->DataController; TvList->BeginUpdate(); pGDC->BeginUpdate(); VmsCtlrManager->FLists.Lock(); try { int nRow; FOR_STL(TVmsCtlr*, pObj, VmsCtlrManager->FLists) { if (pObj->USE_YN != "Y") continue; nRow = pGDC->AppendRecord(); pGDC->Values[nRow][ColumnSel->Index] = false; pGDC->Values[nRow][ColVMS_CTLR_ID->Index] = pObj->VMS_CTLR_ID; pGDC->Values[nRow][ColVMS_NM->Index] = pObj->VMS_NM; pGDC->Values[nRow][ColVMS_MODL_KIND_NM->Index] = pObj->VMS_MODL_KIND_NM; pGDC->Values[nRow][ColOPER_MODE->Index] = APP_GetCodeName(CbOPER_MODE, pObj->OPER_MODE); pGDC->Values[nRow][ColLAST_DT_FMT->Index] = pObj->Stts->LAST_DT_FMT; pGDC->Values[nRow][ColRPRS_STTS->Index] = APP_GetCodeName(CbRPRS_STTS, pObj->Stts->RPRS_STTS); pGDC->Values[nRow][ColCMNC_STTS->Index] = APP_GetCodeName(CbCMNC_STTS, pObj->Stts->CMNC_STTS); pGDC->Values[nRow][ColPS_STTS->Index] = APP_GetCodeName(CbPS_STTS, pObj->Stts->PS_STTS); pGDC->Values[nRow][ColFAN_STTS->Index] = APP_GetCodeName(CbFAN_STTS, pObj->Stts->FAN_STTS); pGDC->Values[nRow][ColHTER_STTS->Index] = APP_GetCodeName(CbHTER_STTS, pObj->Stts->HTER_STTS); pGDC->Values[nRow][ColDOOR_STTS->Index] = APP_GetCodeName(CbDOOR_STTS, pObj->Stts->DOOR_STTS); pGDC->Values[nRow][ColRSET_YN->Index] = pObj->Stts->RSET_YN; pGDC->Values[nRow][ColTEMP->Index] = pObj->Stts->TEMP; pGDC->Values[nRow][ColHUM->Index] = pObj->Stts->HUM; pGDC->Values[nRow][ColBOX_TEMP->Index] = pObj->Stts->BOX_TEMP; pGDC->Values[nRow][Col99->Index] = (int)pObj; } } __finally { VmsCtlrManager->FLists.UnLock(); pGDC->EndUpdate(); TvList->EndUpdate(); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::RefreshStatusInfo() { TcxDataController *pGDC = TvList->DataController; try { TvList->BeginUpdate(); pGDC->BeginUpdate(); int nRows = pGDC->RecordCount; for(int nRow = 0; nRow < nRows; nRow++) { int nMemPtr = TvList->DataController->Values[nRow][Col99->Index]; TVmsCtlr *pObj = (TVmsCtlr*)nMemPtr; if (!pObj) continue; pGDC->Values[nRow][ColOPER_MODE->Index] = APP_GetCodeName(CbOPER_MODE, pObj->OPER_MODE); pGDC->Values[nRow][ColLAST_DT_FMT->Index] = pObj->Stts->LAST_DT_FMT; pGDC->Values[nRow][ColRPRS_STTS->Index] = APP_GetCodeName(CbRPRS_STTS, pObj->Stts->RPRS_STTS); pGDC->Values[nRow][ColCMNC_STTS->Index] = APP_GetCodeName(CbCMNC_STTS, pObj->Stts->CMNC_STTS); pGDC->Values[nRow][ColPS_STTS->Index] = APP_GetCodeName(CbPS_STTS, pObj->Stts->PS_STTS); pGDC->Values[nRow][ColFAN_STTS->Index] = APP_GetCodeName(CbFAN_STTS, pObj->Stts->FAN_STTS); pGDC->Values[nRow][ColHTER_STTS->Index] = APP_GetCodeName(CbHTER_STTS, pObj->Stts->HTER_STTS); pGDC->Values[nRow][ColDOOR_STTS->Index] = APP_GetCodeName(CbDOOR_STTS, pObj->Stts->DOOR_STTS); pGDC->Values[nRow][ColRSET_YN->Index] = pObj->Stts->RSET_YN; pGDC->Values[nRow][ColTEMP->Index] = pObj->Stts->TEMP; pGDC->Values[nRow][ColHUM->Index] = pObj->Stts->HUM; pGDC->Values[nRow][ColBOX_TEMP->Index] = pObj->Stts->BOX_TEMP; } } __finally { pGDC->EndUpdate(); TvList->EndUpdate(); //CxList->LayoutChanged(); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::LoadLocalSkin() { PnlVmsCam->ParentColor = false; PnlVmsCam->Color = clBlack; PnlRtspStream->ParentColor = false; PnlRtspStream->Color = clBlack; Refresh(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; InitDbLoading(); UpdateList(); //TvList->ApplyBestFit(NULL, true, false); CxList->Enabled = true; RefreshStatusInfo(); int nResult = CComm_Initialize((long)Handle, g_AppCfg.PRCS_ID, "P04010", 0); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::FormClose(TObject *Sender, TCloseAction &Action) { try { CommClose(); FrmVmsRemoteCtrl = NULL; Action = caFree; } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::OnVmsStateRefreshMessage(TMessage &Msg) { RefreshStatusInfo(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::DisplayInfo() { FSelVmsObj = NULL; PnlVms->Caption = " ¼±Åà VMS: -"; TcxDataController *pGDC = TvList->DataController; int nSelIdx = CMM_GetRecordIndex(TvList); if (nSelIdx < 0) return; String sVmsCtlrId = VarToStr(pGDC->Values[nSelIdx][ColVMS_CTLR_ID->Index]); int nMemPtr = (int)pGDC->Values[nSelIdx][Col99->Index]; FSelVmsObj = (TVmsCtlr*)nMemPtr; if (!FSelVmsObj) return; PnlVms->Caption = " ¼±Åà VMS: [" + FSelVmsObj->VMS_CTLR_ID + "] " + FSelVmsObj->VMS_NM; try { if (FSelVmsObj->Para->IsLoading) { SeCurrBrgh->Value = FSelVmsObj->Para->CUR_LUMI; SeWeekBrgh->Value = FSelVmsObj->Para->DAY_LUMI; SeNghtBrgh->Value = FSelVmsObj->Para->NGHT_LUMI; } } catch(Exception &e) { } try { reMsg->Lines->Clear(); WebCamPlay((FSelVmsObj->VMS_CTLR_ID)); } catch(Exception &e) { } BtnWebCamUrl->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::ClearCheckList() { TcxDataController *pGDC = TvList->DataController; try { TvList->BeginUpdate(); pGDC->BeginUpdate(); int nRows = pGDC->RecordCount; for (int ii = 0; ii < nRows; ii++) { pGDC->Values[ii][ColumnSel->Index] = false; } } __finally { pGDC->EndUpdate(); TvList->EndUpdate(); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (!ACellViewInfo) return; ClearCheckList(); TcxDataController *pGDC = TvList->DataController; int nSelIdx = CMM_GetRecordIndex(TvList); if (nSelIdx < 0) return; pGDC->Values[nSelIdx][ColumnSel->Index] = true; DisplayInfo(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::Se01PropertiesChange(TObject *Sender) { if (((TcxSpinEdit*)Sender)->Value < ((TcxSpinEdit*)Sender)->Properties->MinValue) ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MinValue; else if(((TcxSpinEdit*)Sender)->Value > ((TcxSpinEdit*)Sender)->Properties->MaxValue && ((TcxSpinEdit*)Sender)->Properties->MaxValue) ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MaxValue; } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsRemoteCtrl::GetSelListItems(bool ACommCheck/*=true*/) { String sMsg; TcxDataController *pGDC = TvList->DataController; FVmsIds->Clear(); if (FCommCtrlTarget == NULL) { sMsg = "VMS ¿ø°ÝÁ¦¾î\r\nVMS ¿ø°ÝÁ¦¾î ¼­¹ö¿¡ ´ëÇÑ Á¤º¸°¡ ¾ø½À´Ï´Ù.\r\n°ü¸®ÀÚ¿¡°Ô È®ÀÎ ÈÄ¿¡ ÀÛ¾÷À» ÁøÇà Çϼ¼¿ä.\r\n¿ø°ÝÁ¦¾î ¸í·ÉÀ» Àü¼ÛÇÒ ¼ö ¾ø½À´Ï´Ù."; Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return false; } try { bool bSelected; int nRows = TvList->ViewData->RecordCount; TvList->BeginUpdate(); for (int ii = 0; ii < nRows; ii++) { TcxCustomGridRow* ARow = TvList->ViewData->Rows[ii]; int nMemPtr = (int)ARow->Values[Col99->Index]; TVmsCtlr *pVms = (TVmsCtlr*)nMemPtr; if (!pVms) continue; bSelected = (bool)ARow->Values[ColumnSel->Index]; if (bSelected) { String sVmsCtlrId = ARow->Values[ColVMS_CTLR_ID->Index]; //VMS¹øÈ£ if (ACommCheck) { #if 0 if (pVms->STATE.Comm == vms_comm_normal) { FVmsIds->Add(sVmsCtlrId); } #endif } else { FVmsIds->Add(sVmsCtlrId); } } } } __finally { TvList->EndUpdate(); } if (FVmsIds->Count <= 0) { sMsg = "VMS ¿ø°ÝÁ¦¾î\r\nVVMS°¡ ¼±ÅõÇÁö ¾Ê¾Ò½À´Ï´Ù.\r\nVMS ¸ñ·Ï¿¡¼­ VMS¸¦ ¼±ÅÃÇϽʽÿä."; Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); CxList->SetFocus(); return false; } return true; } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsRemoteCtrl::UpdateVmsParam(String AVmsNmbr, void *pData) { return true; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::BtnOnOffSetClick(TObject *Sender) { //Àü±¤ÆÇON/OFF½Ã°¢¼³Á¤ String sTitle = "Àü±¤ÆÇ ON/OFF ½Ã°¢ ¼³Á¤"; String sMsg = ""; int nOkCnt = 0; int nSelCnt = GetSelListItems(false); if (0 == nSelCnt) { sMsg = "VMS°¡ ¼±ÅõÇÁö ¾Ê¾Ò½À´Ï´Ù.\r\nVMS ¸ñ·Ï¿¡¼­ VMS¸¦ ¼±ÅÃÇϽʽÿä."; Application->MessageBox(sMsg.c_str(), sTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); CxList->SetFocus(); return; } int nCmdIdx = 0; sMsg = "¼±ÅÃÇϽŠVMSÀÇ Àü±¤ÆÇ ON/OFF ½Ã°¢À» ¼³Á¤ ÇϽðڽÀ´Ï±î?"; if (Application->MessageBox(sMsg.c_str(), sTitle.c_str(), MB_YESNO|MB_ICONWARNING|MB_APPLMODAL) != IDYES) return; String sQry; TADOQuery *pADO = NULL; sQry = "UPDATE TB_VMS_CTLR \r\n" " SET VMS_OFF_HM = :p02, \r\n" " VMS_OFF_HM = :p03 \r\n" " WHERE VMS_CTLR_ID = :p01 \r\n"; String VMS_ON_HM = cxTimeOn->Time.FormatString("HHNN"); String VMS_OFF_HM = cxTimeOff->Time.FormatString("HHNN"); String LAST_CRPR_NMBR = g_AppCfg.OPER_ID; String LAST_CRCT_DT = Now().FormatString("yyyymmddhhnnss"); try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; for (int ii = 0; ii < nSelCnt; ii++) { String sVmsNmbr = FVmsIds->Strings[ii]; pADO->Parameters->ParamByName("p01")->Value = sVmsNmbr; pADO->Parameters->ParamByName("p02")->Value = VMS_OFF_HM; pADO->Parameters->ParamByName("p03")->Value = VMS_OFF_HM; pADO->ExecSQL(); nOkCnt++; TVmsCtlr *pObj = VmsCtlrManager->FLists.Find(sVmsNmbr); if (pObj) { pObj->VMS_ON_HM = VMS_OFF_HM; pObj->VMS_OFF_HM = VMS_OFF_HM; } } } catch(EDatabaseError &E) { DBERRORMSG("TVMS0500M::BtnOnOffSetClick", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TVMS0500M::BtnOnOffSetClick", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } sMsg = String(nSelCnt) + " °³ÀÇ ¼±Åà VMS Áß¿¡ " + String(nOkCnt) + " °³ÀÇ VMS·Î Àü±¤ÆÇ ON/OFF ½Ã°¢ ¼³Á¤À» ¿äûÇÏ¿´½À´Ï´Ù."; Application->MessageBox(sMsg.c_str(), sTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); for (int ii = 0; ii < nSelCnt; ii++) { String sVmsNmbr = FVmsIds->Strings[ii]; VmsCtlrManager->InsVmsControlHs(LAST_CRCT_DT, sVmsNmbr, "V05", VMS_OFF_HM+" "+VMS_OFF_HM, "1", LAST_CRPR_NMBR); } //RefreshStatus(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::BtnModeControlClick(TObject *Sender) { //VMS ¿î¿µ¸ðµå º¯°æ String sTitle = "VMS ¿î¿µ¸ðµå º¯°æ"; String sMsg = ""; int nOkCnt = 0; int nSelCnt = GetSelListItems(false); if (0 == nSelCnt) { sMsg = "VMS°¡ ¼±ÅõÇÁö ¾Ê¾Ò½À´Ï´Ù.\r\nVMS ¸ñ·Ï¿¡¼­ VMS¸¦ ¼±ÅÃÇϽʽÿä."; Application->MessageBox(sMsg.c_str(), sTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); CxList->SetFocus(); return; } int nCmdIdx = 0; sMsg = "¼±ÅÃÇϽŠVMSÀÇ ¿î¿µ¸ðµå¸¦ º¯°æ ÇϽðڽÀ´Ï±î?"; if (Application->MessageBox(sMsg.c_str(), sTitle.c_str(), MB_YESNO|MB_ICONWARNING|MB_APPLMODAL) != IDYES) return; String OPER_MODE; if (RdbAuto->Checked) { OPER_MODE = "A"; } else if (RdbFix->Checked) { OPER_MODE = "F"; } else if (RdbBase->Checked) { OPER_MODE = "B"; } String sQry; TADOQuery *pADO = NULL; sQry = "UPDATE TB_VMS_CTLR \r\n" " SET OPER_MODE = :p01 \r\n" " WHERE VMS_CTLR_ID = :p05 \r\n"; String LAST_CRPR_NMBR = g_AppCfg.OPER_ID; String LAST_CRCT_DT = Now().FormatString("yyyymmddhhnnss"); #if 0 try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); pADO->SQL->Clear(); pADO->SQL->Text = sQry; INT_VMS_MODE_REQ VmsMode; BYTE MsgSeq; memset(&VmsMode, 0x00, sizeof(VmsMode)); MsgSeq = (BYTE)0x50; memcpy(VmsMode.CmdTime, AnsiString(LAST_CRCT_DT).c_str(), INT_VMS_MAX_DATETIME); /* ¸í·É¼öÇà½Ã°¢ */ memcpy(VmsMode.OperId, AnsiString(LAST_CRPR_NMBR).c_str(), INT_VMS_MAX_OPER_ID); /* ¿î¿µÀÚ ID */ for (int ii = 0; ii < nSelCnt; ii++) { String sVmsNmbr = FVmsIds->Strings[ii]; pADO->Parameters->ParamByName("p01")->Value = OPER_MODE; pADO->Parameters->ParamByName("p05")->Value = sVmsNmbr; pADO->ExecSQL(); nOkCnt++; TVmsCtlr *pObj = VmsCtlrManager->FLists.Find(sVmsNmbr); if (pObj) { pObj->OPER_MODE = OPER_MODE; if (pObj->OPER_MODE == "A") pObj->STATE.OprMode = 'A'; else if (pObj->OPER_MODE == "B") pObj->STATE.OprMode = 'B'; else pObj->STATE.OprMode = 'F'; } else continue; VmsMode.Unit[VmsMode.Count].VMS_CTLR_ID = sVmsNmbr.ToIntDef(0); /* VMS Á¦¾î±â ¹øÈ£ */ if (OPER_MODE == "A") VmsMode.Unit[VmsMode.Count].Mode = 'A'; else if (OPER_MODE == "B") VmsMode.Unit[VmsMode.Count].Mode = 'B'; else VmsMode.Unit[VmsMode.Count].Mode = 'F'; VmsMode.Count++; if (VmsMode.Count >= INT_VMS_MAX_MODE) { CComm_VmsModeReq(&VmsMode, MsgSeq); } } if (VmsMode.Count > 0) { CComm_VmsModeReq(&VmsMode, MsgSeq); } } catch(EDatabaseError &E) { DBERRORMSG("TVMS0500M::BtnModeControlClick", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TVMS0500M::BtnModeControlClick", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } sMsg = String(nSelCnt) + " °³ÀÇ ¼±Åà VMS Áß¿¡ " + String(nOkCnt) + " °³ÀÇ VMS ¿î¿µ¸ðµå¸¦ º¯°æÇÏ¿´½À´Ï´Ù."; Application->MessageBox(sMsg.c_str(), sTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); for (int ii = 0; ii < nSelCnt; ii++) { String sVmsNmbr = FVmsIds->Strings[ii]; VmsCtlrManager->InsVmsControlHs(LAST_CRCT_DT, sVmsNmbr, "V06", OPER_MODE, "1", LAST_CRPR_NMBR); } //RefreshStatus(); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::BtnWebCamUrlClick(TObject *Sender) { #if 0 if (FSelVmsObj) { if (FSelVmsObj->WEB_CMRA_IP.Trim() != "") { String sUrl = "http://" + FSelVmsObj->WEB_CMRA_IP.Trim(); //if (FSelVmsObj->WEB_CMRA_PORT != "") //{ // sUrl = sUrl + ":" + FSelVmsObj->WEB_CMRA_PORT; //} ShellExecute(NULL, NULL, sUrl.c_str(), NULL, NULL, 0); } } #endif } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsRemoteCtrl::UpdateVmsParam2(String AVmsNmbr, void *pData) { return true; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::TmrCommandTimer(TObject *Sender) { TmrCommand->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::PgControlPageChanging(TObject *Sender, TcxTabSheet *NewPage, bool &AllowChange) { if (BtnAllSelect->Visible == false) BtnAllSelect->Visible = true; if (BtnAllClear->Visible == false) BtnAllClear->Visible = true; if (BtnReverse->Visible == false) BtnReverse->Visible = true; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::Col08CustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone) { try { int iIndex = AViewInfo->Item->Index; ACanvas->Canvas->Brush->Style = bsSolid; String val = AViewInfo->GridRecord->DisplayTexts[iIndex]; ACanvas->Canvas->Font->Color = clBlack; if (val == "Normal") ACanvas->Canvas->Brush->Color = clLime; else if (val == "Delayed") ACanvas->Canvas->Brush->Color = clRed; else if (val == "Time out") ACanvas->Canvas->Brush->Color = clRed; else ACanvas->Canvas->Brush->Color = clSilver; } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::ErrorMsg(String AErrMsg) { LblErrMsg->Caption = AErrMsg; LblErrMsg->BringToFront(); LblErrMsg->Transparent = true; LblErrMsg->Style->Font->Color = clWhite; LblErrMsg->Style->TextColor = clWhite; LblErrMsg->Visible = true; LblErrMsg->Refresh(); LblErrMsg->BringToFront(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::WebCamPlay(String AVmsNo) { if (LblErrMsg->Visible) LblErrMsg->Visible = false; reMsg->Lines->Clear(); reMsg->Lines->Add("Connect..."); WebCamStop(); TVmsCtlr *pObj = VmsCtlrManager->FLists.Find(AVmsNo); if (!pObj) return; PnlRtspStream->Caption = "¿µ»ó ¿¬°á Áß..."; PnlRtspStream->Refresh(); try { FStrmAddr = pObj->VMS_RTSP_ADDR.Trim(); if (FStrmAddr != "") { FFPlayer1->AspectRatio = ChkFullScreen->Checked ? -1 : 0; FFPlayer1->TryOpen(FStrmAddr, PnlRtspStream->Handle); //FStrmUser = pObj->WEB_CMRA_ID; //FStrmPswd = pObj->WEB_CMRA_PWD; FStrmHttp = FStrmAddr; FStrmPlay = true; } else { FStrmHttp = ""; PnlRtspStream->Caption = "¿µ»óÁ¤º¸°¡ ¾ø½À´Ï´Ù..."; } } catch(Exception &e) { } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::WebCamStop() { if (!FStrmPlay) return; try { if (FFPlayer1->ScreenHandle != NULL) { FFPlayer1->Stop(true); PostMessage(FFPlayer1->ScreenHandle, CM_INVALIDATE, 0, 0); UpdateWindow(FFPlayer1->ScreenHandle); //FFPlayer1->ScreenHandle = NULL; } } catch(Exception &e) { } PnlRtspStream->Caption = "Disconnected"; PnlRtspStream->Refresh(); FStrmPlay = false; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::BtnModuleControlClick(TObject *Sender) { TcxButton *pBtnControl = (TcxButton*)Sender; if (!GetSelListItems(false)) { return; } String sMsg = ""; sMsg = "VMS ¿ø°ÝÁ¦¾î - Àü±¤ÆÇ Àü¿ø Á¦¾î\r\n¼±ÅÃÇϽŠVMS¿¡ Àü±¤ÆÇ Àü¿ø Á¦¾î ¸í·ÉÀ» Àü¼ÛÇϽðڽÀ´Ï±î?\r\n(Åë½Å»óÅ¿¡ µû¶ó ¸í·ÉÀÌ ½ÇÇàµÇÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù.)"; if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONWARNING|MB_APPLMODAL) != IDYES) return; int result; int nOkCnt = 0; int nTotal = 0; int nSelCnt = FVmsIds->Count; for (int ii = 0; ii < nSelCnt; ii++) { String sVmsCtlrId = FVmsIds->Strings[ii]; FOR_STL(TCommInfo*, pCommInfo, FCommCtrlTarget->FLists) { nTotal++; result = CComm_VmsReqPowerOnOff(pCommInfo->SRVR_IP, pCommInfo->CMNC_PORT, g_AppCfg.OPER_ID, sVmsCtlrId, pBtnControl->Tag == 1); if (VERR_NONE == result) { nOkCnt++; } Sleep(200); Application->ProcessMessages(); } } sMsg = String(nSelCnt) + " °³ÀÇ ¼±Åà VMS Áß¿¡ " + String(nOkCnt) + " °³ÀÇ VMS·Î Àü±¤ÆÇ Àü¿ø Á¦¾î ¸í·ÉÀ» ¿äûÇÏ¿´½À´Ï´Ù."; Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::BtnResetClick(TObject *Sender) { TcxButton *pBtnControl = (TcxButton*)Sender; if (!GetSelListItems(false)) { return; } String sMsg = ""; sMsg = "VMS ¿ø°ÝÁ¦¾î - Á¦¾î±â ¸®¼Â\r\n¼±ÅÃÇϽŠVMS¿¡ Á¦¾î±â ¸®¼Â ¸í·ÉÀ» Àü¼ÛÇϽðڽÀ´Ï±î?\r\n(Åë½Å»óÅ¿¡ µû¶ó ¸í·ÉÀÌ ½ÇÇàµÇÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù.)"; if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONWARNING|MB_APPLMODAL) != IDYES) return; int result; int nOkCnt = 0; int nTotal = 0; int nSelCnt = FVmsIds->Count; for (int ii = 0; ii < nSelCnt; ii++) { String sVmsCtlrId = FVmsIds->Strings[ii]; FOR_STL(TCommInfo*, pCommInfo, FCommCtrlTarget->FLists) { nTotal++; result = CComm_VmsReqReset(pCommInfo->SRVR_IP, pCommInfo->CMNC_PORT, g_AppCfg.OPER_ID, sVmsCtlrId); if (VERR_NONE == result) { nOkCnt++; } Sleep(200); Application->ProcessMessages(); } } sMsg = String(nSelCnt) + " °³ÀÇ ¼±Åà VMS Áß¿¡ " + String(nOkCnt) + " °³ÀÇ VMS·Î Á¦¾î±â ¸®¼Â ¸í·ÉÀ» ¿äûÇÏ¿´½À´Ï´Ù."; Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::BtnBlankDisplayClick(TObject *Sender) { TcxButton *pBtnControl = (TcxButton*)Sender; if (!GetSelListItems(false)) { return; } String sMsg = ""; sMsg = "VMS ¿ø°ÝÁ¦¾î - È­¸é »èÁ¦(ºóÈ­¸éÇ¥Ãâ)\r\n¼±ÅÃÇϽŠVMS¿¡ È­¸é »èÁ¦(ºóÈ­¸éÇ¥Ãâ) ¸í·ÉÀ» Àü¼ÛÇϽðڽÀ´Ï±î?\r\n(Åë½Å»óÅ¿¡ µû¶ó ¸í·ÉÀÌ ½ÇÇàµÇÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù.)"; if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONWARNING|MB_APPLMODAL) != IDYES) return; int result; int nOkCnt = 0; int nTotal = 0; int nSelCnt = FVmsIds->Count; for (int ii = 0; ii < nSelCnt; ii++) { String sVmsCtlrId = FVmsIds->Strings[ii]; FOR_STL(TCommInfo*, pCommInfo, FCommCtrlTarget->FLists) { nTotal++; result = CComm_VmsReqBlank(pCommInfo->SRVR_IP, pCommInfo->CMNC_PORT, g_AppCfg.OPER_ID, sVmsCtlrId); if (VERR_NONE == result) { nOkCnt++; } Sleep(200); Application->ProcessMessages(); } } sMsg = String(nSelCnt) + " °³ÀÇ ¼±Åà VMS Áß¿¡ " + String(nOkCnt) + " °³ÀÇ VMS·Î È­¸é »èÁ¦(ºóÈ­¸éÇ¥Ãâ) ¸í·ÉÀ» ¿äûÇÏ¿´½À´Ï´Ù."; Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::BtnBrghControl0Click(TObject *Sender) { TcxButton *pBtnControl = (TcxButton*)Sender; if (!GetSelListItems(false)) { return; } int setValue = 0; String sCommand = "ÈÖµµ¼³Á¤(ÀÚµ¿ ¸ðµå)"; if (pBtnControl->Tag == 0) { setValue = 0; sCommand = "ÈÖµµ¼³Á¤(ÀÚµ¿ ¸ðµå)"; } else if (pBtnControl->Tag == 1) { setValue = SeWeekBrgh->Value; sCommand = "ÈÖµµ¼³Á¤(ÁÖ°£ ¸ðµå) ¹à±â " + String(setValue); } else if (pBtnControl->Tag == 2) { setValue = SeNghtBrgh->Value; sCommand = "ÈÖµµ¼³Á¤(¾ß°£ ¸ðµå) ¹à±â " + String(setValue); } else if (pBtnControl->Tag == 3) { setValue = SeUserBrgh->Value; sCommand = "ÈÖµµ¼³Á¤(¼öµ¿ ¸ðµå) ¹à±â " + String(setValue); } String sMsg = ""; sMsg = "VMS ¿ø°ÝÁ¦¾î - " + sCommand + "\r\n¼±ÅÃÇϽŠVMS¿¡ " + sCommand + " ¸í·ÉÀ» Àü¼ÛÇϽðڽÀ´Ï±î?\r\n(Åë½Å»óÅ¿¡ µû¶ó ¸í·ÉÀÌ ½ÇÇàµÇÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù.)"; if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONWARNING|MB_APPLMODAL) != IDYES) return; int result; int nOkCnt = 0; int nTotal = 0; int nSelCnt = FVmsIds->Count; BYTE Value = (BYTE)(setValue & 0xFF); for (int ii = 0; ii < nSelCnt; ii++) { String sVmsCtlrId = FVmsIds->Strings[ii]; FOR_STL(TCommInfo*, pCommInfo, FCommCtrlTarget->FLists) { nTotal++; result = CComm_VmsReqLumiSet(pCommInfo->SRVR_IP, pCommInfo->CMNC_PORT, g_AppCfg.OPER_ID, sVmsCtlrId, (BYTE)pBtnControl->Tag, Value); if (VERR_NONE == result) { nOkCnt++; } Sleep(200); Application->ProcessMessages(); } } sMsg = String(nSelCnt) + " °³ÀÇ ¼±Åà VMS Áß¿¡ " + String(nOkCnt) + " °³ÀÇ VMS·Î " + sCommand + " ¸í·ÉÀ» ¿äûÇÏ¿´½À´Ï´Ù."; Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::BtnModlErrRateClick(TObject *Sender) { TcxButton *pBtnControl = (TcxButton*)Sender; if (!GetSelListItems(false)) { return; } String sCommand = "¸ðµâÀå¾ÖÀ²¼³Á¤"; String sMsg = ""; sMsg = "VMS ¿ø°ÝÁ¦¾î - " + sCommand + "\r\n¼±ÅÃÇϽŠVMS¿¡ " + sCommand + " ¸í·ÉÀ» Àü¼ÛÇϽðڽÀ´Ï±î?\r\n(Åë½Å»óÅ¿¡ µû¶ó ¸í·ÉÀÌ ½ÇÇàµÇÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù.)"; if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONWARNING|MB_APPLMODAL) != IDYES) return; int result; int nOkCnt = 0; int nTotal = 0; int nSelCnt = FVmsIds->Count; for (int ii = 0; ii < nSelCnt; ii++) { String sVmsCtlrId = FVmsIds->Strings[ii]; FOR_STL(TCommInfo*, pCommInfo, FCommCtrlTarget->FLists) { nTotal++; result = CComm_VmsReqModlErrRate(pCommInfo->SRVR_IP, pCommInfo->CMNC_PORT, g_AppCfg.OPER_ID, sVmsCtlrId, (BYTE)SeERR_MODL_RT->Value); if (VERR_NONE == result) { nOkCnt++; } Sleep(200); Application->ProcessMessages(); } } sMsg = String(nSelCnt) + " °³ÀÇ ¼±Åà VMS Áß¿¡ " + String(nOkCnt) + " °³ÀÇ VMS·Î " + sCommand + " ¸í·ÉÀ» ¿äûÇÏ¿´½À´Ï´Ù."; Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::BtnDfltScnrRunTmClick(TObject *Sender) { TcxButton *pBtnControl = (TcxButton*)Sender; if (!GetSelListItems(false)) { return; } String sCommand = "Åë½ÅÀå¾Ö½Ã°£¼³Á¤"; String sMsg = ""; sMsg = "VMS ¿ø°ÝÁ¦¾î - " + sCommand + "\r\n¼±ÅÃÇϽŠVMS¿¡ " + sCommand + " ¸í·ÉÀ» Àü¼ÛÇϽðڽÀ´Ï±î?\r\n(Åë½Å»óÅ¿¡ µû¶ó ¸í·ÉÀÌ ½ÇÇàµÇÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù.)"; if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONWARNING|MB_APPLMODAL) != IDYES) return; int result; int nOkCnt = 0; int nTotal = 0; int nSelCnt = FVmsIds->Count; for (int ii = 0; ii < nSelCnt; ii++) { String sVmsCtlrId = FVmsIds->Strings[ii]; FOR_STL(TCommInfo*, pCommInfo, FCommCtrlTarget->FLists) { nTotal++; result = CComm_VmsReqCmncErrMin(pCommInfo->SRVR_IP, pCommInfo->CMNC_PORT, g_AppCfg.OPER_ID, sVmsCtlrId, (BYTE)CbDFLT_SCNR_RUN_TM->ItemIndex); if (VERR_NONE == result) { nOkCnt++; } Sleep(200); Application->ProcessMessages(); } } sMsg = String(nSelCnt) + " °³ÀÇ ¼±Åà VMS Áß¿¡ " + String(nOkCnt) + " °³ÀÇ VMS·Î " + sCommand + " ¸í·ÉÀ» ¿äûÇÏ¿´½À´Ï´Ù."; Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::FFPlayer1State(TObject *Sender, TPlayState APlayState) { switch(APlayState) { case Ffbasecomponent::psPlay: reMsg->Lines->Add("Play..."); break; case Ffbasecomponent::psResume: reMsg->Lines->Add("Resume."); break; case Ffbasecomponent::psPause: reMsg->Lines->Add("Pause.."); break; case Ffbasecomponent::psStep: reMsg->Lines->Add("Step..."); break; case Ffbasecomponent::psStop: if (FFPlayer1->ScreenHandle != NULL) { PostMessage(FFPlayer1->ScreenHandle, CM_INVALIDATE, 0, 0); UpdateWindow(FFPlayer1->ScreenHandle); //FFPlayer1->ScreenHandle = NULL; } reMsg->Lines->Add("Stop..."); break; case Ffbasecomponent::psEnd: { FFPlayer1->Stop(true); PostMessage(FFPlayer1->ScreenHandle, CM_INVALIDATE, 0, 0); UpdateWindow(FFPlayer1->ScreenHandle); //FFPlayer1->ScreenHandle = NULL; } reMsg->Lines->Add("End..."); break; } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::FFPlayer1OpenFailed(TObject *Sender) { //ErrorMsg("À¥Ä«¸Þ¶ó¿¡ ¿¬°áÇÒ ¼ö ¾ø½À´Ï´Ù."); //WebCamStop(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::ChkFullScreenClick(TObject *Sender) { FFPlayer1->AspectRatio = ChkFullScreen->Checked ? -1 : 0; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::BtnSearchClick(TObject *Sender) { VmsCtlrManager->LoadStatusFromDb(); VmsCtlrManager->LoadParaFromDb(); RefreshStatusInfo(); EdFocus->SetFocus(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::BtnAllSelectClick(TObject *Sender) { TcxButton *pBtn = (TcxButton*)Sender; CMM_CheckAllListItem(TvList, ColumnSel->Index, pBtn->Tag); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::ColRPRS_STTSCustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone) { try { TColor tColor; String sStatus = AViewInfo->GridRecord->DisplayTexts[AViewInfo->Item->Index]; tColor = ACanvas->Brush->Color; if (sStatus.Pos("¾Ë¼ö")) tColor = clGray; else if (sStatus.Pos("Àϼö")) tColor = clGray; else if (sStatus.Pos("ÀÌ»ó")) tColor = clRed; else if (sStatus.Pos("¿À·ù")) tColor = clRed; else if (sStatus.Pos("ºÒ·®")) tColor = clRed; else if (sStatus.Pos("ºñÁ¤»ó")) tColor = clRed; else if (sStatus.Pos("Àå¾Ö")) tColor = clRed; else if (sStatus.Pos("ÄÑÁü")) tColor = clYellow; else if (sStatus.Pos("¿­¸²")) tColor = clRed; else if (sStatus.Pos("µ¿ÀÛ")) tColor = clYellow; else if (sStatus.Pos("°¡µ¿")) tColor = clYellow; else tColor = clLime; // Á¤»ó ACanvas->SetBrushColor(tColor); ACanvas->Font->Color = clBlack; /*if (AViewInfo->GridRecord->Selected) { ACanvas->Font->Color = clBlack; }*/ } catch(Exception &e) { } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsRemoteCtrl::CbDFLT_SCNR_RUN_TMClick(TObject *Sender) { BtnDfltScnrRunTm->SetFocus(); } //---------------------------------------------------------------------------