//--------------------------------------------------------------------------- #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "WindowMsgF.h" #include "CDSFacilityF.h" #include "CDSIncidentF.h" #include "FrmMainF.h" #include "CommFlashF.h" #pragma hdrstop #include "ITS0000MF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "FRAME_FacilityStatusListF" #pragma link "FRAME_ProcessStatusListF" #pragma link "FRAME_IncidentListF" #pragma link "FRAME_RepeatCongestListF" #pragma link "FRAME_TrafficMissLinkListF" #pragma link "FRAME_IncidentAutoListF" #pragma link "FRAME_BlackBoxEventListF" #pragma link "FRAME_UtisStatusListF" #pragma link "FRAME_VilgFrcsListF" #pragma link "FRAME_VilgShprListF" #pragma link "FRAME_AtmpPltnListF" #pragma link "cxClasses" #pragma link "cxContainer" #pragma link "cxControls" #pragma link "cxCustomData" #pragma link "cxData" #pragma link "cxDataStorage" #pragma link "cxEdit" #pragma link "cxFilter" #pragma link "cxGraphics" #pragma link "cxGrid" #pragma link "cxGridCustomTableView" #pragma link "cxGridCustomView" #pragma link "cxGridLevel" #pragma link "cxGridTableView" #pragma link "cxGroupBox" #pragma link "cxLabel" #pragma link "cxLookAndFeelPainters" #pragma link "cxLookAndFeels" #pragma link "cxPC" #pragma link "cxPCdxBarPopupMenu" #pragma link "cxSplitter" #pragma link "cxStyles" #pragma link "dxSkinBlack" #pragma link "dxSkinBlue" #pragma link "dxSkinsCore" #pragma link "dxSkinscxPCPainter" #pragma resource "*.dfm" TITS0000M *ITS0000M = NULL; //--------------------------------------------------------------------------- __fastcall TITS0000M::TITS0000M(TComponent* Owner) : TForm(Owner) { ITSSkin_Load(this); LoadLocalSkin(); CMM_LoadForm(g_sFormsDir, this); PgSystem->Properties->ActivePage = TsIncident; GrpSystem->Caption = "¢º ½Ã½ºÅÛ ¿î¿µ Á¤º¸ - " + TsIncident->Caption; FRAMEFacilityStatusList1->PnlBottom->Visible = false; //FrmMain->dxStatusBar->Panels->Items[isbGisPos]->Visible = true; //ITS00MAP = new TITS00MAP(PnlMapBack, (TForm*)this); //½Ã½ºÅÛÀÚµ¿µ¹¹ß FRAMEIncidentAutoList1->Visible = false; TsIncidentAuto->TabVisible = false; TsIncidentAuto->Visible = false; } //--------------------------------------------------------------------------- /* * ´Ý±â¹öư À̳ª x¹öư Ŭ¸¯½Ã °øÅëÀ¸·Î ó¸®ÇÏ´Â ·ÎÁ÷À̵é¾î°£´Ù.. * Form°ú DataModule class¸¦ delete½ÃŲ´Ù. * arguments * * return * void */ void __fastcall TITS0000M::CommClose() { try { if (FrmMain->dxStatusBar->Panels->Items[isbGisPos]->Visible) FrmMain->dxStatusBar->Panels->Items[isbGisPos]->Visible = false; if (ITS00MAP) { delete ITS00MAP; ITS00MAP = NULL; } CMM_SaveForm(g_sFormsDir, this); } catch(...) { } } //--------------------------------------------------------------------------- /* * FormÀÌ ¸Þ¸ð¸®¿¡¼­ »ý¼ºµÉ¶§ È£ÃâµÇ´Â »ý¼ºÀÚ À̺¥Æ® Çڵ鷯 * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TITS0000M::FormCreate(TObject *Sender) { if (ITS00MAP) { ITS00MAP->Parent = PnlMapBack; ITS00MAP->Show(); } } //--------------------------------------------------------------------------- /* * FormÀ» º¸¿©ÁÙ¶§ È£ÃâµÇ´Â event ¸Þ¼­µåÀÌ´Ù. * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TITS0000M::FormShow(TObject *Sender) { Refresh(); Application->ProcessMessages(); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- /* * FormÀÇ Skin ÃʱâÈ­ ÀÛ¾÷À» ¼öÇàÇÑ´Ù. * arguments * void * return * void */ void __fastcall TITS0000M::LoadLocalSkin() { #define MAX_VIEW 12 TcxGridTableView *pView[MAX_VIEW]; TcxGrid *pGrid[MAX_VIEW]; for (int ii = 0; ii < MAX_VIEW; ii++) { pGrid[ii] = NULL; pView[ii] = NULL; } pGrid[ 0] = FRAMEProcessStatusList1->CxList; //ÇÁ·Î¼¼½º»óÅ pGrid[ 1] = FRAMEFacilityStatusList1->CxList; //½Ã¼³¹°»óÅ #if 0 pGrid[ 2] = NULL; pGrid[ 3] = NULL; #else pGrid[ 2] = FRAMEUtisStatusList1->CxUtisRun; //UTISÇöȲ-¿î¿µÇöȲ pGrid[ 3] = FRAMEUtisStatusList1->CxUtisRse; //UTISÇöȲ-RSE»óÅÂÇöȲ #endif pGrid[ 4] = FRAMEIncidentList1->CxList; //µ¹¹ß pGrid[ 5] = FRAMERepeatCongestList1->CxList; //¹Ýº¹Á¤Ã¼±¸°£ pGrid[ 6] = FRAMETrafficMissLinkList1->CxList; //¼ÒÅëÁ¤º¸°áÃø±¸°£ pGrid[ 7] = FRAMEIncidentAutoList1->CxList2; //¼ÒÅëÁ¤º¸°áÃø±¸°£ pGrid[ 8] = FRAMEBlackBoxEventList1->CxList; //ºí·¢¹Ú½ºÀ̺¥Æ®¸®½ºÆ® pGrid[ 9] = FRAMEVilgFrcsList1->CxList; //±â»óÁ¤º¸¸®½ºÆ® pGrid[10] = FRAMEVilgShprList1->CxList; //±â»óÁ¤º¸¸®½ºÆ®(Ãʴܱ⿹º¸) pGrid[11] = FRAMEAtmpPltnList1->CxList; //ȯ°æÁ¤º¸(´ë±â¿À¿°) pView[ 0] = FRAMEProcessStatusList1->TvList; pView[ 1] = FRAMEFacilityStatusList1->TvList; #if 0 pView[ 2] = NULL; pView[ 3] = NULL; #else pView[ 2] = FRAMEUtisStatusList1->TvUtisRun; pView[ 3] = FRAMEUtisStatusList1->TvUtisRse; #endif pView[ 4] = FRAMEIncidentList1->TvList; pView[ 5] = FRAMERepeatCongestList1->TvList; pView[ 6] = FRAMETrafficMissLinkList1->TvList; pView[ 7] = FRAMEIncidentAutoList1->TvList2; pView[ 8] = FRAMEBlackBoxEventList1->TvList; pView[ 9] = FRAMEVilgFrcsList1->TvList; pView[10] = FRAMEVilgShprList1->TvList; pView[11] = (TcxGridTableView*)FRAMEAtmpPltnList1->TvList; for (int ii = 0; ii < MAX_VIEW; ii++) { if (!pView[ii]) continue; //pGrid[ii]->LookAndFeel->SkinName = "McSkin"; pView[ii]->Styles->Inactive = NULL; pView[ii]->Styles->ContentOdd = NULL; pView[ii]->Styles->ContentEven= NULL; pView[ii]->Styles->Selection = NULL; pView[ii]->OptionsSelection->CellSelect = false; } } //--------------------------------------------------------------------------- /* * FormÀÌ ShowµÇ°í ³­ ÈÄ ÃÖÃÊ 1ȸ ¼öÇàµÇ´Â ŸÀÌ¸Ó À̺¥Æ® * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TITS0000M::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; // ¸®½ºÆ® Ç׸ñÀ» ÃʱâÈ­ÇÑ´Ù. InitListData(); } //--------------------------------------------------------------------------- void __fastcall TITS0000M::InitListData() { FIncidentCnt = 0; FRrCongestCnt = 0; FMissLinkCnt = 0; FRAMEFacilityStatusList1->UpdateList(); UpdateFacilityStatusTotal(); FRAMEProcessStatusList1->UpdateList(); if (GrpBottomUtis->Visible) { FRAMEUtisStatusList1->UpdateList(); } FRAMEIncidentList1->UpdateList(); FRAMERepeatCongestList1->UpdateList(); FRAMETrafficMissLinkList1->UpdateList(); FRAMEIncidentAutoList1->UpdateList(); FRAMEBlackBoxEventList1->UpdateList(); FRAMEVilgFrcsList1->UpdateList(); FRAMEVilgShprList1->UpdateList(); FRAMEAtmpPltnList1->UpdateList(); UpdateAlarmStatus(); } //--------------------------------------------------------------------------- void __fastcall TITS0000M::UpdateAlarmStatus() { String sAlarmMsg = ""; FIncidentCnt = FRAMEIncidentList1->TvList->DataController->RecordCount; FRrCongestCnt = FRAMERepeatCongestList1->TvList->DataController->RecordCount; FMissLinkCnt = FRAMETrafficMissLinkList1->TvList->DataController->RecordCount; FIncidentAutoCnt = FRAMEIncidentAutoList1->TvList2->DataController->RecordCount; FBlackBoxEventCnt = FRAMEBlackBoxEventList1->TvList->DataController->RecordCount; FVilgFrcsCnt1 = FRAMEVilgFrcsList1->GetAlarmCount1(); FVilgFrcsCnt2 = FRAMEVilgFrcsList1->GetAlarmCount2(); FVilgFrcsCnt3 = FRAMEVilgShprList1->GetAlarmCount(); FAtmpPlntCnt = FRAMEAtmpPltnList1->GetAlarmCount(); if (TsIncidentAuto->TabVisible == false) FIncidentAutoCnt = 0; if (FIncidentCnt > 0) { sAlarmMsg += "µ¹¹ß»óȲ(" + String(FIncidentCnt) + ") "; TsIncident->ImageIndex = 1; } else TsIncident->ImageIndex = 2; if (FRrCongestCnt > 0) { sAlarmMsg += "¹Ýº¹Á¤Ã¼±¸°£(" + String(FRrCongestCnt) + ") "; TsRrCongest->ImageIndex = 1; } else TsRrCongest->ImageIndex = 2; if (FMissLinkCnt > 0) { sAlarmMsg += "°áÃø±¸°£(" + String(FMissLinkCnt) + ") "; TsMissingLink->ImageIndex = 1; } else TsMissingLink->ImageIndex = 2; if (FIncidentAutoCnt > 0) { sAlarmMsg += "ÀÚµ¿µ¹¹ß(" + String(FIncidentAutoCnt) + ") "; TsIncidentAuto->ImageIndex = 1; } else TsIncidentAuto->ImageIndex = 2; if (FBlackBoxEventCnt > 0) { sAlarmMsg += "ºí·¢¹Ú½º(" + String(FBlackBoxEventCnt) + ") "; TsBlackBoxEvent->ImageIndex = 1; } else TsBlackBoxEvent->ImageIndex = 2; if ((FVilgFrcsCnt1 + FVilgFrcsCnt2) > 0) { //sAlarmMsg += "±â»ó¾ÇÈ­(" + String(FVilgFrcsCnt1+FVilgFrcsCnt2) + ") "; sAlarmMsg += "±â»ó(µ¿³×¿¹º¸) "; TsVilgFrcs->ImageIndex = 1; } else TsVilgFrcs->ImageIndex = 2; if ((FVilgFrcsCnt3) > 0) { //sAlarmMsg += "±â»ó¾ÇÈ­(" + String(FVilgFrcsCnt3) + ") "; sAlarmMsg += "±â»ó(Ãʴܱ⿹º¸) "; TsVilgShpr->ImageIndex = 1; } else TsVilgShpr->ImageIndex = 2; if ((FAtmpPlntCnt) > 0) { //sAlarmMsg += "ȯ°æÁ¤º¸(´ë±â¿À¿°)(" + String(FAtmpPlntCnt) + ") "; sAlarmMsg += "ȯ°æÁ¤º¸(´ë±â¿À¿°) "; TsAtmpPltn->ImageIndex = 1; } else TsAtmpPltn->ImageIndex = 2; LblAlarm->Caption = sAlarmMsg; if ((FIncidentCnt+FRrCongestCnt+FMissLinkCnt+FIncidentAutoCnt+FBlackBoxEventCnt+FVilgFrcsCnt1+FVilgFrcsCnt2+FVilgFrcsCnt3+FAtmpPlntCnt) > 0) { LblAlarm->Visible = true; } else { LblAlarm->Visible = false; } } //--------------------------------------------------------------------------- void __fastcall TITS0000M::PgSystemPageChanging(TObject *Sender, TcxTabSheet *NewPage, bool &AllowChange) { GrpSystem->Caption = "¢º ½Ã½ºÅÛ ¿î¿µ Á¤º¸ - " + NewPage->Caption; } //--------------------------------------------------------------------------- void __fastcall TITS0000M::FormClose(TObject *Sender, TCloseAction &Action) { try { CommClose(); ITS0000M = NULL; Action = caFree; } catch(...) {} } //--------------------------------------------------------------------------- /* * ¸ÞÀÎÆû¿¡¼­ µ¥ÀÌÅ͸¦ ¼ö½Å½Ã ¹ß»ýÇÏ´Â À̺¥Æ® Çڵ鷯 * arguments * * return * void */ void __fastcall TITS0000M::OnMainFormMessage(TMessage &Msg) { switch(Msg.WParam) { case WP_DB_SELECT_OK: switch(Msg.LParam) { case LP_MSG_16: if (g_AppCfg.bDebug) ITSUtil_Trace("LP_MSG_16"); UpdateBlackBoxEventInfo(); break; case LP_MSG_17: if (g_AppCfg.bDebug) ITSUtil_Trace("LP_MSG_17"); UpdateVilgFrcsInfo(); break; case LP_MSG_01: if (g_AppCfg.bDebug) ITSUtil_Trace("LP_MSG_01"); UpdateTrafficMissLinkInfo(); break; case LP_MSG_02: if (g_AppCfg.bDebug) ITSUtil_Trace("LP_MSG_02"); /*¼­ºñ½º¸µÅ©¼ÒÅëÁ¤º¸*/ break; case LP_MSG_03: if (g_AppCfg.bDebug) ITSUtil_Trace("LP_MSG_03"); /*µµ·Î¼ÒÅëÁ¤º¸*/ break; case LP_MSG_04: if (g_AppCfg.bDebug) ITSUtil_Trace("LP_MSG_04"); UpdateTrafficRrCongestInfo(); break; case LP_MSG_05: if (g_AppCfg.bDebug) ITSUtil_Trace("LP_MSG_05"); UpdateUtisStatusInfo(); break; case LP_MSG_11: if (g_AppCfg.bDebug) ITSUtil_Trace("LP_MSG_11"); UpdateFacilityStatusInfo(); break; case LP_MSG_12: if (g_AppCfg.bDebug) ITSUtil_Trace("LP_MSG_12"); UpdateProcessStatusInfo(); break; case LP_MSG_13: if (g_AppCfg.bDebug) ITSUtil_Trace("LP_MSG_13"); UpdateIncidentInfo(); break; case LP_MSG_14: if (g_AppCfg.bDebug) ITSUtil_Trace("LP_MSG_14"); UpdateFacilityInfo(); break; case LP_MSG_09: if (g_AppCfg.bDebug) ITSUtil_Trace("LP_MSG_09"); FRAMEProcessStatusList1->UpdateList(); break; #if 0 case LP_MSG_10: //°¡°ø¼­¹ö¿¡¼­ ¼ÒÅëÁ¤º¸ °¡°ø¿Ï·áÇÏ¿´À½. // GIS ¼ÒÅëÁ¤º¸ ¾÷µ¥ÀÌÆ® if (ITS00MAP) ITS00MAP->RefreshMapTraffic(); break; #endif case LP_MSG_00: //°¡°ø¼­¹ö¿¡¼­ ¼ÒÅëÁ¤º¸ °¡°ø¿Ï·áÇÏ¿´À½. // GIS ¼ÒÅëÁ¤º¸ ¾÷µ¥ÀÌÆ® if (ITS00MAP) ITS00MAP->RefreshMapTraffic(); break; } break; case WP_MSG_01: //¼ÒÅëµî±ÞÀÌ º¯°æµÇ¾ú´Ù. if (ITS00MAP) ITS00MAP->SetGisTrafficColor(); break; case WP_MSG_02: //µ¹¹ßÁ¤º¸¸¦ Çö´Ü¸»¿¡¼­ Ãë¼Ò/µî·Ï/ÇØÁ¦ ÇÏ¿´´Ù. UpdateIncidentInfo(); break; case WP_MSG_03: //½Ã¼³¹° ±âº»Á¤º¸°¡ º¯°æµÊ UpdateFacilityInfo(); //FRAMEFacilityStatusList1->UpdateList(); break; case WP_DB_SELECT_ERROR: case WP_DB_SELECT_CANCEL: break; case WP_MSG_15: if (LP_MSG_15 == Msg.LParam) { if (ITS00MAP) ITS00MAP->RefreshGisLink(); } break; } } //--------------------------------------------------------------------------- void __fastcall TITS0000M::UpdateTrafficMissLinkInfo() { FMissLinkCnt = 0; FRAMETrafficMissLinkList1->UpdateList(); FRAMEIncidentAutoList1->UpdateList(); UpdateAlarmStatus(); } //--------------------------------------------------------------------------- void __fastcall TITS0000M::UpdateTrafficRrCongestInfo() { FRrCongestCnt = 0; FRAMERepeatCongestList1->UpdateList(); UpdateAlarmStatus(); } //--------------------------------------------------------------------------- void __fastcall TITS0000M::UpdateIncidentInfo() { FIncidentCnt = 0; FRAMEIncidentList1->UpdateList(); FRAMEIncidentAutoList1->UpdateList(); UpdateAlarmStatus(); if (ITS00MAP) ITS00MAP->UpdateIncidentStatus(); } //--------------------------------------------------------------------------- void __fastcall TITS0000M::UpdateFacilityStatusInfo() { //FRAMEFacilityStatusList1->UpdateList(); FRAMEFacilityStatusList1->RefreshList(); UpdateFacilityStatusTotal(); UpdateAlarmStatus(); if (ITS00MAP) ITS00MAP->UpdateFacilityStatus(); } //--------------------------------------------------------------------------- void __fastcall TITS0000M::UpdateProcessStatusInfo() { FRAMEProcessStatusList1->RefreshList(); UpdateAlarmStatus(); } //--------------------------------------------------------------------------- void __fastcall TITS0000M::UpdateUtisStatusInfo() { if (GrpBottomUtis->Visible) { FRAMEUtisStatusList1->RefreshList(); } } //--------------------------------------------------------------------------- void __fastcall TITS0000M::UpdateFacilityInfo() { FRAMEFacilityStatusList1->UpdateList(); UpdateFacilityStatusTotal(); UpdateAlarmStatus(); if (ITS00MAP) ITS00MAP->UpdateFacilityStatus(); //Áöµµ ½Ã¼³¹° Àç·Îµù } //--------------------------------------------------------------------------- void __fastcall TITS0000M::UpdateBlackBoxEventInfo() { FBlackBoxEventCnt = 0; FRAMEBlackBoxEventList1->UpdateList(); UpdateAlarmStatus(); } //--------------------------------------------------------------------------- void __fastcall TITS0000M::UpdateVilgFrcsInfo() { FVilgFrcsCnt1 = 0; FVilgFrcsCnt2 = 0; FVilgFrcsCnt3 = 0; FAtmpPlntCnt = 0; FRAMEVilgFrcsList1->RefreshList(); FRAMEVilgShprList1->RefreshList(); FRAMEAtmpPltnList1->RefreshList(); UpdateAlarmStatus(); } //--------------------------------------------------------------------------- void __fastcall TITS0000M::FRAMEIncidentList1TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { //µ¹¹ß Ŭ¸¯ if (!ACellViewInfo) return; try { TcxDataController *pGDC = FRAMEIncidentList1->TvList->DataController; int nRow = pGDC->FocusedRecordIndex; if (nRow < 0) return; String sId = VarToStr(pGDC->Values[nRow][FRAMEIncidentList1->Column01->Index]); String sDx = VarToStr(pGDC->Values[nRow][FRAMEIncidentList1->Column07->Index]); String sDy = VarToStr(pGDC->Values[nRow][FRAMEIncidentList1->Column08->Index]); if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloat(sDx), StrToFloat(sDy), true); } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TITS0000M::FRAMERepeatCongestList1TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { //¹Ýº¹Á¤Ã¼±¸°£ Ŭ¸¯ if (!ACellViewInfo) return; try { TcxDataController *pGDC = FRAMERepeatCongestList1->TvList->DataController; int nRow = pGDC->FocusedRecordIndex; if (nRow < 0) return; String sSvcLinkId = VarToStr(pGDC->Values[nRow][FRAMERepeatCongestList1->Column01->Index]); if (ITS00MAP) ITS00MAP->SelectLinkById(2, sSvcLinkId, true); } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TITS0000M::FRAMETrafficMissLinkList1TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { //¼ÒÅëÁ¤º¸ °áÃø±¸°£ Ŭ¸¯ if (!ACellViewInfo) return; try { TcxDataController *pGDC = FRAMETrafficMissLinkList1->TvList->DataController; int nRow = pGDC->FocusedRecordIndex; if (nRow < 0) return; String sLinkId = VarToStr(pGDC->Values[nRow][FRAMETrafficMissLinkList1->Column02->Index]); if (ITS00MAP) ITS00MAP->SelectLinkById(1, sLinkId, true); } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TITS0000M::FRAMEFacilityStatusList1TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { //½Ã¼³¹° À§Ä¡À̵¿ if (!ACellViewInfo) return; try { TcxDataController *pGDC = FRAMEFacilityStatusList1->TvList->DataController; int nRow = pGDC->FocusedRecordIndex; if (nRow < 0) return; String sType = VarToStr(pGDC->Values[nRow][FRAMEFacilityStatusList1->Column01->Index]); FSelId = VarToStr(pGDC->Values[nRow][FRAMEFacilityStatusList1->Column02->Index]); MoveGisFacility(sType, FSelId); } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TITS0000M::MoveGisFacility(String AType, String AId) { if (AType == FAC_CCTV) { TItsCctv *pObj = ItsFacilityManager->FCctvLists.Find(AId); if (pObj) if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloatDef(pObj->X_CRDN, 0), StrToFloatDef(pObj->Y_CRDN, 0), true); } else if (AType == FAC_VMS) { TItsVms *pObj = ItsFacilityManager->FVmsLists.Find(AId); if (pObj) if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloatDef(pObj->X_CRDN, 0), StrToFloatDef(pObj->Y_CRDN, 0), true); } else if (AType == FAC_RSE) { TItsRse *pObj = ItsFacilityManager->FRseLists.Find(AId); if (pObj) if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloatDef(pObj->COORDX, 0), StrToFloatDef(pObj->COORDY, 0), true); } else if (AType == FAC_WCAM) { TItsWebCam *pObj = ItsFacilityManager->FWebCamLists.Find(AId); if (pObj) if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloatDef(pObj->X_CRDN, 0), StrToFloatDef(pObj->Y_CRDN, 0), true); } else if (AType == FAC_VDS) { TItsVds *pObj = ItsFacilityManager->FVdsLists.Find(AId); if (pObj) if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloatDef(pObj->X_CRDN, 0), StrToFloatDef(pObj->Y_CRDN, 0), true); } else if (AType == FAC_AVI) { TItsAvi *pObj = ItsFacilityManager->FAviLists.Find(AId); if (pObj) if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloatDef(pObj->X_CRDN, 0), StrToFloatDef(pObj->Y_CRDN, 0), true); } else if (AType == FAC_DSRC) { TItsDsrc *pObj = ItsFacilityManager->FDsrcLists.Find(AId); if (pObj) if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloatDef(pObj->LCTN_X, 0), StrToFloatDef(pObj->LCTN_Y, 0), true); } else if (AType == FAC_BIT) { TItsBit *pObj = ItsFacilityManager->FBitLists.Find(AId); if (pObj) if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloatDef(pObj->X_CRDN, 0), StrToFloatDef(pObj->Y_CRDN, 0), true); } else if (AType == FAC_SIG) { TItsSig *pObj = ItsFacilityManager->FSigLists.Find(AId); if (pObj) if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloatDef(pObj->X_CRDN, 0), StrToFloatDef(pObj->Y_CRDN, 0), true); } else if (AType == FAC_SIGDET) { TItsSigDet *pObj = ItsFacilityManager->FSigDetLists.Find(AId); if (pObj) if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloatDef(pObj->X_CRDN, 0), StrToFloatDef(pObj->Y_CRDN, 0), true); } else if (AType == FAC_PVMS) { TItsPis *pObj = ItsFacilityManager->FPisLists.Find(AId); if (pObj) if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloatDef(pObj->X_CRDN, 0), StrToFloatDef(pObj->Y_CRDN, 0), true); } else if (AType == FAC_PVDS) { TItsPcs *pObj = ItsFacilityManager->FPcsLists.Find(AId); if (pObj) if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloatDef(pObj->X_CRDN, 0), StrToFloatDef(pObj->Y_CRDN, 0), true); } else if (AType == FAC_PARK) { TItsParking *pObj = ItsFacilityManager->FParkLists.Find(AId); if (pObj) if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloatDef(pObj->X_CRDN, 0), StrToFloatDef(pObj->Y_CRDN, 0), true); } else if (AType == FAC_EVENT) { TItsEvent *pObj = ItsEventManager->FLists.Find(AId); if (pObj) if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloatDef(pObj->X_CRDN, 0), StrToFloatDef(pObj->Y_CRDN, 0), true); } else if (AType == FAC_WTHR) { TItsVilgFrcs *pObj = ItsVilgFrcsManager->FLists.Find(AId); if (pObj) if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloatDef(pObj->X_CRDN, 0), StrToFloatDef(pObj->Y_CRDN, 0), true); } else if (AType == FAC_ATMP) { TItsAtmpPltn *pObj = ItsVilgFrcsManager->FAtmpLists.Find(AId); if (pObj) if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloatDef(pObj->X_CRDN, 0), StrToFloatDef(pObj->Y_CRDN, 0), true); } } //--------------------------------------------------------------------------- void __fastcall TITS0000M::FRAMEFacilityStatusList1TvListCellClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (AButton != mbRight) return; if (!ACellViewInfo) return; try { TcxDataController *pGDC = FRAMEFacilityStatusList1->TvList->DataController; int nRow = pGDC->FocusedRecordIndex; if (nRow < 0) return; String sType = VarToStr(pGDC->Values[nRow][FRAMEFacilityStatusList1->Column01->Index]); FSelId = VarToStr(pGDC->Values[nRow][FRAMEFacilityStatusList1->Column02->Index]); POINT p; GetCursorPos(&p); if (sType == FAC_CCTV) pmuCctv->Popup(p.x, p.y); else if (sType == FAC_VMS) pmuVms->Popup(p.x, p.y); else if (sType == FAC_RSE) pmuRse->Popup(p.x, p.y); else if (sType == FAC_WCAM) pmuWebCam->Popup(p.x, p.y); else if (sType == FAC_VDS) pmuVds->Popup(p.x, p.y); else if (sType == FAC_AVI) pmuAvi->Popup(p.x, p.y); else if (sType == FAC_DSRC) pmuDsrc->Popup(p.x, p.y); else if (sType == FAC_BIT) pmuBit->Popup(p.x, p.y); else if (sType == FAC_SIG) pmuSig->Popup(p.x, p.y); else if (sType == FAC_SIGDET) pmuSigDet->Popup(p.x, p.y); else if (sType == FAC_PARK) pmuPark->Popup(p.x, p.y); else if (sType == FAC_PVMS) pmuPis->Popup(p.x, p.y); else if (sType == FAC_PVDS) pmuPis->Popup(p.x, p.y); } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TITS0000M::pmuFacilityPopup(TObject *Sender) { String sLoc = " "; TPopupMenu *pMenu = (TPopupMenu*)Sender; if (pMenu->Tag == 0) { TItsCctv *pObj = ItsFacilityManager->FCctvLists.Find(FSelId); if (pObj) sLoc = TCommFlash::ReplaceName(pObj->ISTL_LCTN_NM); //MnuCctvId->Caption = "[CCTV] " + FSelId + " " + sLoc; MnuCctvId->Caption = "[CCTV] " + sLoc; mnuCctvCam->Enabled = false; if (pObj) { if (pObj->STRM_SESN_NM.Trim() != "") { mnuCctvCam->Enabled = true; } } } else if (pMenu->Tag == 1) { TItsVms *pObj = ItsFacilityManager->FVmsLists.Find(FSelId); if (pObj) sLoc = TCommFlash::ReplaceName(pObj->VMS_NM); //MnuVmsId->Caption = "[VMS] " + FSelId + " " + sLoc; MnuVmsId->Caption = "[VMS] " + sLoc; mnuVmsCam->Enabled = false; if (pObj) { if (pObj->STRM_SESN_NM.Trim() != "") { mnuVmsCam->Enabled = true; } } } else if (pMenu->Tag == 2) { TItsRse *pObj = ItsFacilityManager->FRseLists.Find(FSelId); if (pObj) sLoc = TCommFlash::ReplaceName(pObj->LOCATION); //MnuRseId->Caption = "[RSE] " + FSelId + " " + sLoc; MnuRseId->Caption = "[RSE] " + sLoc; } else if (pMenu->Tag == 3) { TItsWebCam *pObj = ItsFacilityManager->FWebCamLists.Find(FSelId); if (pObj) sLoc = TCommFlash::ReplaceName(pObj->ISTL_LCTN_NM); //MnuWebCamId->Caption = "[À¥Ä«¸Þ¶ó] " + FSelId + " " + sLoc; MnuWebCamId->Caption = "[À¥Ä«¸Þ¶ó] " + sLoc; } else if (pMenu->Tag == 4) { TItsVds *pObj = ItsFacilityManager->FVdsLists.Find(FSelId); if (pObj) sLoc = TCommFlash::ReplaceName(pObj->LCTN); //MnuVdsId->Caption = "[VDS] " + FSelId + " " + sLoc; MnuVdsId->Caption = "[VDS] " + sLoc; } else if (pMenu->Tag == 5) { TItsAvi *pObj = ItsFacilityManager->FAviLists.Find(FSelId); if (pObj) sLoc = TCommFlash::ReplaceName(pObj->AVI_LCTN_NM); //MnuAviId->Caption = "[AVI] " + FSelId + " " + sLoc; MnuAviId->Caption = "[AVI] " + sLoc; } else if (pMenu->Tag == 6) { TItsDsrc *pObj = ItsFacilityManager->FDsrcLists.Find(FSelId); if (pObj) sLoc = TCommFlash::ReplaceName(pObj->ISTL_LCTN_NM); //MnuDsrcId->Caption = "[DSRC] " + FSelId + " " + sLoc; MnuDsrcId->Caption = "[DSRC] " + sLoc; } else if (pMenu->Tag == 7) { TItsBit *pObj = ItsFacilityManager->FBitLists.Find(FSelId); if (pObj) sLoc = TCommFlash::ReplaceName(pObj->FCLT_LCTN); MnuBitId->Caption = "[BIT] " + sLoc; } else if (pMenu->Tag == 8) { TItsSig *pObj = ItsFacilityManager->FSigLists.Find(FSelId); if (pObj) sLoc = TCommFlash::ReplaceName(pObj->FCLT_LCTN); MnuSigId->Caption = "[SIG] " + sLoc; } else if (pMenu->Tag == 9) { TItsSigDet *pObj = ItsFacilityManager->FSigDetLists.Find(FSelId); if (pObj) sLoc = TCommFlash::ReplaceName(pObj->FCLT_LCTN); MnuSigDetId->Caption = "[LVD] " + sLoc; } else if (pMenu->Tag == 10) { TItsPis *pObj = ItsFacilityManager->FPisLists.Find(FSelId); if (pObj) sLoc = TCommFlash::ReplaceName(pObj->FCLT_LCTN); MnuPisId->Caption = "[PIS] " + sLoc; } else if (pMenu->Tag == 11) { TItsPcs *pObj = ItsFacilityManager->FPcsLists.Find(FSelId); if (pObj) sLoc = TCommFlash::ReplaceName(pObj->FCLT_LCTN); MnuPcsId->Caption = "[PCS] " + sLoc; } else if (pMenu->Tag == 12) { TItsParking *pObj = ItsFacilityManager->FParkLists.Find(FSelId); if (pObj) sLoc = TCommFlash::ReplaceName(pObj->CTLR_MNGM_NM); //MnuParkId->Caption = "[PARK] " + FSelId + " " + sLoc; MnuParkId->Caption = "[PARK] " + sLoc; } else if (pMenu->Tag == 13) { TItsEvent *pObj = ItsEventManager->FLists.Find(FSelId); if (pObj) { sLoc = TCommFlash::ReplaceName(pObj->TRMN_ID); if (sLoc.Trim() == "") { sLoc = pObj->OPNC_NMBR; } } MenuEventId->Caption = " " + sLoc; } } //--------------------------------------------------------------------------- void __fastcall TITS0000M::mnuFacilityMoveClick(TObject *Sender) { TMenuItem *pMenu = (TMenuItem*)Sender; Application->ProcessMessages(); switch(pMenu->Tag) { case 0: MoveGisFacility(FAC_CCTV, FSelId); break; case 1: MoveGisFacility(FAC_VMS, FSelId); break; case 2: MoveGisFacility(FAC_RSE, FSelId); break; case 3: MoveGisFacility(FAC_WCAM, FSelId); break; case 4: MoveGisFacility(FAC_VDS, FSelId); break; case 5: MoveGisFacility(FAC_AVI, FSelId); break; case 6: MoveGisFacility(FAC_DSRC, FSelId); break; case 7: MoveGisFacility(FAC_BIT, FSelId); break; case 8: MoveGisFacility(FAC_SIG, FSelId); break; case 9: MoveGisFacility(FAC_SIGDET, FSelId); break; case 10: MoveGisFacility(FAC_PVMS, FSelId); break; case 11: MoveGisFacility(FAC_PVDS, FSelId); break; case 12: MoveGisFacility(FAC_PARK, FSelId); break; case 13: MoveGisFacility(FAC_EVENT, FSelId); break; case 14: MoveGisFacility(FAC_WTHR, FSelId); break; case 15: MoveGisFacility(FAC_ATMP, FSelId); break; } } //--------------------------------------------------------------------------- void __fastcall TITS0000M::mnuFacilityPingClick(TObject *Sender) { if (ITS00MAP) { ITS00MAP->FSelId = FSelId; ITS00MAP->mnuFacilityPingClick(Sender); } } //--------------------------------------------------------------------------- void __fastcall TITS0000M::mnuStopImageClick(TObject *Sender) { if (ITS00MAP) { ITS00MAP->FSelId = FSelId; ITS00MAP->mnuStopImageClick(Sender); } } //--------------------------------------------------------------------------- void __fastcall TITS0000M::mnuCctvCamClick(TObject *Sender) { if (ITS00MAP) { ITS00MAP->FSelId = FSelId; ITS00MAP->mnuCctvCamClick(Sender); } } //--------------------------------------------------------------------------- void __fastcall TITS0000M::mnuVmsMsgClick(TObject *Sender) { if (ITS00MAP) { ITS00MAP->FSelId = FSelId; ITS00MAP->mnuVmsMsgClick(Sender); } } //--------------------------------------------------------------------------- void __fastcall TITS0000M::mnuVmsCamClick(TObject *Sender) { if (ITS00MAP) { ITS00MAP->FSelId = FSelId; ITS00MAP->mnuVmsCamClick(Sender); } } //--------------------------------------------------------------------------- void __fastcall TITS0000M::MnuWebCamClick(TObject *Sender) { if (ITS00MAP) { ITS00MAP->FSelId = FSelId; ITS00MAP->MnuWebCamClick(Sender); } } //--------------------------------------------------------------------------- void __fastcall TITS0000M::FRAMEIncidentAutoList1TvList2CellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { //¼ÒÅëÁ¤º¸ °áÃø±¸°£ Ŭ¸¯ if (!ACellViewInfo) return; try { TcxDataController *pGDC = FRAMEIncidentAutoList1->TvList2->DataController; int nRow = pGDC->FocusedRecordIndex; if (nRow < 0) return; String sLinkId = VarToStr(pGDC->Values[nRow][FRAMEIncidentAutoList1->ColumnA01->Index]); if (ITS00MAP) ITS00MAP->SelectLinkById(1, sLinkId, true); } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TITS0000M::UpdateFacilityStatusTotal() { int nRow = 0; try { CMM_ClearGridTableView(TvStatus); TcxDataController *pGDC = TvStatus->DataController; TvStatus->BeginUpdate(); ItsFacilityManager->FListStatus.Lock(); try { FOR_STL(TFacilityStatus*, pStatus, ItsFacilityManager->FListStatus) { nRow = pGDC->AppendRecord(); pGDC->Values[nRow][ColName->Index] = pStatus->Type; pGDC->Values[nRow][ColTotal->Index] = pStatus->Total; pGDC->Values[nRow][ColNormal->Index] = pStatus->Total - pStatus->Error; pGDC->Values[nRow][ColFail->Index] = pStatus->Error; if (pStatus->Type == "VDS" || pStatus->Type == "AVI" || pStatus->Type == "DSRC") pGDC->Values[nRow][ColModule->Index] = pStatus->Collect;//Module; else pGDC->Values[nRow][ColModule->Index] = "-"; } } catch(Exception &exception) { } } __finally { ItsFacilityManager->FListStatus.UnLock(); TvStatus->EndUpdate(); } } //--------------------------------------------------------------------------- void __fastcall TITS0000M::ColNameCustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone) { // Àåºñ¸í if (AViewInfo->GridRecord->RecordIndex < 0) return; ACanvas->Font->Style = TFontStyles() << fsBold; } //--------------------------------------------------------------------------- void __fastcall TITS0000M::ColTotalCustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone) { // Àüü if (AViewInfo->GridRecord->RecordIndex < 0) return; ACanvas->Font->Style = TFontStyles() << fsBold; } //--------------------------------------------------------------------------- void __fastcall TITS0000M::ColNormalCustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone) { // Á¤»ó if (AViewInfo->GridRecord->RecordIndex < 0) return; ACanvas->Font->Style = TFontStyles() << fsBold; } //--------------------------------------------------------------------------- void __fastcall TITS0000M::ColFailCustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone) { // ÀÌ»ó if (AViewInfo->GridRecord->RecordIndex < 0) return; ACanvas->Font->Style = TFontStyles() << fsBold; if (!VarIsNull(AViewInfo->GridRecord->DisplayTexts[ColFail->Index])) { String sErr = AViewInfo->GridRecord->DisplayTexts[ColFail->Index]; if (sErr != "0") { ACanvas->Font->Color = clRed; } } } //--------------------------------------------------------------------------- void __fastcall TITS0000M::ColModuleCustomDrawCell(TcxCustomGridTableView *Sender, TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo, bool &ADone) { // ÀÌ»ó if (AViewInfo->GridRecord->RecordIndex < 0) return; ACanvas->Font->Style = TFontStyles() << fsBold; if (!VarIsNull(AViewInfo->GridRecord->DisplayTexts[ColModule->Index])) { String sErr = AViewInfo->GridRecord->DisplayTexts[ColModule->Index]; if (sErr.Trim() == "-") return; if (sErr != "0") { ACanvas->Font->Color = clRed; } } } //--------------------------------------------------------------------------- void __fastcall TITS0000M::mnuParkMsgClick(TObject *Sender) { if (ITS00MAP) { ITS00MAP->FSelId = FSelId; ITS00MAP->mnuParkMsgClick(Sender); } } //--------------------------------------------------------------------------- void __fastcall TITS0000M::FRAMEBlackBoxEventListF1TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { //ºí·¢¹Ú½ºÀ̺¥Æ® Ŭ¸¯ if (!ACellViewInfo) return; try { TcxDataController *pGDC = FRAMEBlackBoxEventList1->TvList->DataController; int nRow = pGDC->FocusedRecordIndex; if (nRow < 0) return; String sId = VarToStr(pGDC->Values[nRow][FRAMEBlackBoxEventList1->Col88->Index]); String sDx = VarToStr(pGDC->Values[nRow][FRAMEBlackBoxEventList1->Col09->Index]); String sDy = VarToStr(pGDC->Values[nRow][FRAMEBlackBoxEventList1->Col10->Index]); if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloat(sDx), StrToFloat(sDy), true); } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TITS0000M::FRAMEBlackBoxEventList1TvListCellClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (AButton != mbRight) return; if (!ACellViewInfo) return; try { TcxDataController *pGDC = FRAMEBlackBoxEventList1->TvList->DataController; int nRow = pGDC->FocusedRecordIndex; if (nRow < 0) return; FSelId = VarToStr(pGDC->Values[nRow][FRAMEBlackBoxEventList1->Col88->Index]); POINT p; GetCursorPos(&p); pmuEvent->Popup(p.x, p.y); } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TITS0000M::mnuViewEventCamClick(TObject *Sender) { if (ITS00MAP) { ITS00MAP->FSelId = FSelId; ITS00MAP->mnuViewEventCamClick(Sender); } } //--------------------------------------------------------------------------- void __fastcall TITS0000M::FRAMEVilgFrcsList1TvListCellClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (AButton != mbRight) return; if (!ACellViewInfo) return; try { TcxDataController *pGDC = FRAMEVilgFrcsList1->TvList->DataController; int nRow = pGDC->FocusedRecordIndex; if (nRow < 0) return; FSelId = VarToStr(pGDC->Values[nRow][FRAMEVilgFrcsList1->Col00->Index]); POINT p; GetCursorPos(&p); //pmuEvent->Popup(p.x, p.y); } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TITS0000M::FRAMEVilgFrcsList1TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (!ACellViewInfo) return; try { TcxDataController *pGDC = FRAMEVilgFrcsList1->TvList->DataController; int nRow = pGDC->FocusedRecordIndex; if (nRow < 0) return; String sId = VarToStr(pGDC->Values[nRow][FRAMEVilgFrcsList1->Col00->Index]); String sDx = VarToStr(pGDC->Values[nRow][FRAMEVilgFrcsList1->Col20->Index]); String sDy = VarToStr(pGDC->Values[nRow][FRAMEVilgFrcsList1->Col21->Index]); if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloat(sDx), StrToFloat(sDy), true); } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TITS0000M::FRAMEVilgShprList1TvListCellClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (AButton != mbRight) return; if (!ACellViewInfo) return; try { TcxDataController *pGDC = FRAMEVilgShprList1->TvList->DataController; int nRow = pGDC->FocusedRecordIndex; if (nRow < 0) return; FSelId = VarToStr(pGDC->Values[nRow][FRAMEVilgShprList1->Col00->Index]); POINT p; GetCursorPos(&p); //pmuEvent->Popup(p.x, p.y); } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TITS0000M::FRAMEVilgShprList1TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (!ACellViewInfo) return; try { TcxDataController *pGDC = FRAMEVilgShprList1->TvList->DataController; int nRow = pGDC->FocusedRecordIndex; if (nRow < 0) return; String sId = VarToStr(pGDC->Values[nRow][FRAMEVilgShprList1->Col00->Index]); String sDx = VarToStr(pGDC->Values[nRow][FRAMEVilgShprList1->Col20->Index]); String sDy = VarToStr(pGDC->Values[nRow][FRAMEVilgShprList1->Col21->Index]); if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloat(sDx), StrToFloat(sDy), true); } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TITS0000M::FRAMEAtmpPltnList1TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (!ACellViewInfo) return; try { TcxDataController *pGDC = FRAMEAtmpPltnList1->TvList->DataController; int nRow = pGDC->FocusedRecordIndex; if (nRow < 0) return; String sId = VarToStr(pGDC->Values[nRow][FRAMEAtmpPltnList1->Col00->Index]); String sDx = VarToStr(pGDC->Values[nRow][FRAMEAtmpPltnList1->Col30->Index]); String sDy = VarToStr(pGDC->Values[nRow][FRAMEAtmpPltnList1->Col31->Index]); if (ITS00MAP) ITS00MAP->SelectObjectByPos(StrToFloat(sDx), StrToFloat(sDy), true); } catch(...) {} } //---------------------------------------------------------------------------