/**************************************************************************** * @source : * @description : **************************************************************************** * DATE AUTHOR DESCRIPTION * -------------------------------------------------------------------------- * 2011/12/24 Á¤½ÂÈ£ ÃÖÃÊÀÛ¼º * ****************************************************************************/ //--------------------------------------------------------------------------- #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "AppGlobalF.h" #include "CDSCodeF.h" #include "CDSFacilityF.h" #include "CDSNodeF.h" #include "CDSLinkF.h" #include "XiMapUtilF.h" #pragma hdrstop #include "AVIM020MF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "cxButtons" #pragma link "cxCalendar" #pragma link "cxContainer" #pragma link "cxControls" #pragma link "cxDropDownEdit" #pragma link "cxEdit" #pragma link "cxGraphics" #pragma link "cxGroupBox" #pragma link "cxLabel" #pragma link "cxLookAndFeelPainters" #pragma link "cxLookAndFeels" #pragma link "cxMaskEdit" #pragma link "cxPC" #pragma link "cxPCdxBarPopupMenu" #pragma link "cxSpinEdit" #pragma link "cxSplitter" #pragma link "cxTextEdit" #pragma link "cxTimeEdit" #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 "cxRadioGroup" #pragma link "cxClasses" #pragma link "cxCustomData" #pragma link "cxData" #pragma link "cxDataStorage" #pragma link "cxDBData" #pragma link "cxFilter" #pragma link "cxGrid" #pragma link "cxGridCustomTableView" #pragma link "cxGridCustomView" #pragma link "cxGridDBTableView" #pragma link "cxGridLevel" #pragma link "cxGridTableView" #pragma link "cxStyles" #pragma link "FRAME_GisMapF" #pragma link "cxCheckBox" #pragma link "cxCalc" #pragma link "FRAME_AviListF" #pragma link "FRAME_AviSectListF" #pragma resource "*.dfm" TAVIM020M *AVIM020M = NULL; //--------------------------------------------------------------------------- __fastcall TAVIM020M::TAVIM020M(TComponent* Owner) : TForm(Owner) { ITSSkin_Load(this); CMM_LoadForm(g_sFormsDir, this); FUpdate= false; FTitle = "AVI-±¸°£ °ü¸®"; m_pGDC = FRAMEAviSectList1->TvList->DataController; FRAMEGisMap1->LbDef->Visible = false; FRAMEGisMap1->LbDef->Caption = "(¼±Åø޴º¸¦ Ŭ¸¯ÇÏ¿© À§Ä¡¸¦ ¼±ÅÃÇÕ´Ï´Ù.)"; FRAMEGisMap1->LbDef->Hint = FRAMEGisMap1->LbDef->Caption; FRAMEAviList1->PnlTop->Visible = false; FRAMEAviList1->PnlBottom->Visible = false; FRAMEAviList1->ColumnSel->Visible = false; FRAMEAviList1->Column02->Visible = false; FRAMEAviSectList1->PnlTop->Visible = false; FRAMEAviSectList1->PnlBottom->Visible = false; FRAMEAviSectList1->ColumnSel->Visible = false; TvLink->OptionsView->NoDataToDisplayInfoText = ""; } //--------------------------------------------------------------------------- /* * ´Ý±â¹öư À̳ª x¹öư Ŭ¸¯½Ã °øÅëÀ¸·Î ó¸®ÇÏ´Â ·ÎÁ÷À̵é¾î°£´Ù.. * Form°ú DataModule class¸¦ delete½ÃŲ´Ù. * arguments * * return * void */ void __fastcall TAVIM020M::CommClose() { try { CMM_SaveForm(g_sFormsDir, this); } catch(...) { } } //--------------------------------------------------------------------------- /* * FormÀ» º¸¿©ÁÙ¶§ È£ÃâµÇ´Â event ¸Þ¼­µåÀÌ´Ù. * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TAVIM020M::FormShow(TObject *Sender) { Refresh(); FRAMEGisMap1->LinkLevel = 1; CbAVI_CTLR_MNGM_NMBR->Properties->Items->Clear(); try { FRAMEAviList1->MyItsAviManager->FLists.Lock(); FOR_STL(TItsAvi*, pObj, FRAMEAviList1->MyItsAviManager->FLists) { if (pObj->DEL_YN == "Y") continue; String sId = pObj->AVI_CTLR_MNGM_NMBR; //°ü¸®¹øÈ£ String sNm = pObj->AVI_LCTN_NM; //À§Ä¡ CbAVI_CTLR_MNGM_NMBR->Properties->Items->Add("[" + sId + "] " + sNm); } } __finally { FRAMEAviList1->MyItsAviManager->FLists.UnLock(); } CbAVI_CTLR_MNGM_NMBR->ItemIndex = -1; CbAVI_CTLR_MNGM_NMBR->Properties->ReadOnly = true; EdId->Properties->ReadOnly = true; EdAVI_SECT_NMBR->Properties->ReadOnly = true; EdSTRT_SPOT_NM->Properties->ReadOnly = true; EdEND_SPOT_NM->Properties->ReadOnly = true; EdAVI_SECT_NM->Properties->ReadOnly = true; SeAVI_SECT_DSTC->Properties->ReadOnly = true; SeSHRT_PASS_HH->Properties->ReadOnly = true; SeLNST_PASS_HH->Properties->ReadOnly = true; SeSPOT_NUM->Properties->ReadOnly = true; SeSTND_DRFT_VAL->Properties->ReadOnly = true; SeMIN_SPED->Properties->ReadOnly = true; SeMAX_SPED->Properties->ReadOnly = true; SeSMTH_FCTR->Properties->ReadOnly = true; FormInit(); ChangeEditMode(1); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- /* * form ÃʱâÈ­ * * arguments * * return * void */ void __fastcall TAVIM020M::FormInit() { CbAVI_CTLR_MNGM_NMBR->ItemIndex = -1; EdId->Text = ""; EdAVI_SECT_NMBR->Text = ""; EdSTRT_SPOT_NM->Text = ""; EdEND_SPOT_NM->Text = ""; EdAVI_SECT_NM->Text = ""; SeAVI_SECT_DSTC->Value = 0; SeSHRT_PASS_HH->Value = 0; SeLNST_PASS_HH->Value = 0; SeSPOT_NUM->Value = 0; SeSTND_DRFT_VAL->Value = 0; SeMIN_SPED->Value = 0; SeMAX_SPED->Value = 0; SeSMTH_FCTR->Value = 0; CMM_ClearGridTableView(TvLink); FRAMEGisMap1->xclntMap->ClearUserDrawPolyGon(); FRAMEGisMap1->xclntMap->ClearPathInfo(); FRAMEGisMap1->xclntMap->ReDraw(); FNewDb = false; } //--------------------------------------------------------------------------- /* * FormÀÌ ShowµÇ°í ³­ ÈÄ ÃÖÃÊ 1ȸ ¼öÇàµÇ´Â ŸÀÌ¸Ó À̺¥Æ® * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TAVIM020M::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; FRAMEGisMap1->LoadGisMap(); UpdateAviIcon(); FRAMEAviList1->UpdateList(); //FRAMEAviSectList1->UpdateList(); FRAMEAviSectList1->MyItsAviManager->LoadFromSectLinkDb(); UpdateList(); } //--------------------------------------------------------------------------- void __fastcall TAVIM020M::UpdateList() { FRAMEAviSectList1->UpdateList(); } //--------------------------------------------------------------------------- /* * Close ¹öư Ŭ¸¯ À̺¥Æ® Çڵ鷯 * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TAVIM020M::BtnCloseClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TAVIM020M::FormClose(TObject *Sender, TCloseAction &Action) { CommClose(); AVIM020M = NULL; Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TAVIM020M::FormCloseQuery(TObject *Sender, bool &CanClose) { #if 0 //xxxxxxxx if (FUpdate) { POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0); } #endif FRAMEAviList1->OnCloseQuery(CanClose); FRAMEAviSectList1->OnCloseQuery(CanClose); } //--------------------------------------------------------------------------- void __fastcall TAVIM020M::DisplayInfo(TItsAviSect* AObj) { FormInit(); if (!AObj) return; CMM_SetComboBoxItem(CbAVI_CTLR_MNGM_NMBR, AObj->AVI_CTLR_MNGM_NMBR); EdId->Text = AObj->AVI_CTLR_MNGM_NMBR; EdAVI_SECT_NMBR->Text = AObj->AVI_SECT_NMBR; EdSTRT_SPOT_NM->Text = AObj->STRT_SPOT_NM; EdEND_SPOT_NM->Text = AObj->END_SPOT_NM; EdAVI_SECT_NM->Text = AObj->AVI_SECT_NM; SeAVI_SECT_DSTC->Value = AObj->AVI_SECT_DSTC.ToIntDef(0); SeSHRT_PASS_HH->Value = AObj->SHRT_PASS_HH.ToIntDef(0); SeLNST_PASS_HH->Value = AObj->LNST_PASS_HH.ToIntDef(0); SeSPOT_NUM->Value = AObj->SPOT_NUM.ToIntDef(0); SeSTND_DRFT_VAL->Value = AObj->STND_DRFT_VAL.ToIntDef(0); SeMIN_SPED->Value = AObj->MIN_SPED.ToIntDef(0); SeMAX_SPED->Value = AObj->MAX_SPED.ToIntDef(0); SeSMTH_FCTR->Value = StrToFloatDef(AObj->SMTH_FCTR, 0); DisplayLink(AObj); ChangeEditMode(3); } //--------------------------------------------------------------------------- void __fastcall TAVIM020M::DisplayLink(TItsAviSect* AObj) { if (!AObj) return; CMM_ClearGridTableView(TvLink); try { int nRow; TcxDataController *pGDC = TvLink->DataController; TvLink->BeginUpdate(); FOR_STL(TItsAviLink *, pObj, AObj->FLinkLists) { String sLinkId = pObj->LINK_ID; nRow = pGDC->AppendRecord(); pGDC->Values[nRow][ColLink2->Index] = sLinkId; TItsLink *pLink = ItsLinkManager->FLists.Find(sLinkId); if (pLink) { TItsNode *pNode; pGDC->Values[nRow][ColLink3->Index] = pLink->F_NODEID; pGDC->Values[nRow][ColLink5->Index] = pLink->T_NODEID; pNode = ItsNodeManager->FLists.Find(pLink->F_NODEID); if (pNode) { pGDC->Values[nRow][ColLink4->Index] = pNode->NODE_NAME; } pNode = ItsNodeManager->FLists.Find(pLink->T_NODEID); if (pNode) { pGDC->Values[nRow][ColLink6->Index] = pNode->NODE_NAME; } } } } __finally { TvLink->EndUpdate(); } RefreshLink(); } //--------------------------------------------------------------------------- void __fastcall TAVIM020M::UpdateAviIcon() { FRAMEGisMap1->xclntMap->ClearCCTVEvent(true); TItsFacility *pFacility; try { //if (ChkViewIcon->Checked) { try { FRAMEAviList1->MyItsAviManager->FLists.Lock(); FOR_STL(TItsAvi*, pObj, FRAMEAviList1->MyItsAviManager->FLists) { if (pObj->DEL_YN == "Y") continue; //pFacility = FRAMEAviList1->MyItsAviManager->FLists.Find(pObj->AVI_ID); //if (!pFacility) continue; try { String sTitle = "¢º¢ºAVI-Á¦¾î±â Á¤º¸¢¸¢¸|AVI ID : " + pObj->AVI_ID + "|¸íĪ : " + pObj->AVI_LCTN_NM; FRAMEGisMap1->xclntMap->ADDCCTVEvent(DDPoint(StrToFloatDef(pObj->X_CRDN, 0), StrToFloatDef(pObj->Y_CRDN, 0)), pObj->AVI_ID, "AVI", sTitle, 9, 1, 7); } catch(...) { } } } __finally { FRAMEAviList1->MyItsAviManager->FLists.UnLock(); } } } catch(...) { } FRAMEGisMap1->xclntMap->ReDraw(); } //--------------------------------------------------------------------------- void __fastcall TAVIM020M::BtnEditClick(TObject *Sender) { if (BtnEdit->Caption == "ÆíÁý") { ChangeEditMode(0); FNewDb = false; } else { String sId = EdId->Text; String sSectId = EdAVI_SECT_NMBR->Text; ChangeEditMode(1); TItsAvi *pAvi = FRAMEAviSectList1->MyItsAviManager->FLists.Find(sId); if (pAvi) { TItsAviSect *pObj = pAvi->FSubLists.Find(sSectId); if (pObj) { CMM_SetGridRow(FRAMEAviSectList1->CxList, FRAMEAviSectList1->TvList, sSectId, FRAMEAviSectList1->Column02->Index); DisplayInfo(pObj); } } } } //--------------------------------------------------------------------------- void __fastcall TAVIM020M::ChangeEditMode(int AEdit) { bool bEnabled = false; switch(AEdit) { case 0: //ÆíÁý¹öưŬ¸¯ { BtnEdit->Enabled = true; BtnInsert->Enabled = false; BtnDelete->Enabled = false; BtnSave->Enabled = true; BtnEdit->Caption = "Ãë¼Ò"; BtnEdit->Hint = "µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò"; } break; case 1: //ÆíÁý[Ãë¼Ò]¹öưŬ¸¯ { FormInit(); //È­¸éÀ» ¸ðµÎ Áö¿î´Ù. BtnEdit->Enabled = false; BtnInsert->Enabled = true; BtnDelete->Enabled = false; BtnSave->Enabled = false; BtnEdit->Caption = "ÆíÁý"; BtnEdit->Hint = "µ¥ÀÌÅÍ ÆíÁý"; bEnabled = true; } break; case 2: //Ãß°¡ { BtnEdit->Enabled = true; BtnInsert->Enabled = false; BtnDelete->Enabled = false; BtnSave->Enabled = true; BtnEdit->Caption = "Ãë¼Ò"; BtnEdit->Hint = "µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò"; } break; case 3: //¼öÁ¤¸ðµå { BtnEdit->Enabled = true; BtnInsert->Enabled = true; BtnDelete->Enabled = true; BtnSave->Enabled = false; BtnEdit->Caption = "ÆíÁý"; BtnEdit->Hint = "µ¥ÀÌÅÍ ÆíÁý"; bEnabled = true; } break; } if (AEdit == 0 || AEdit == 2) { FRAMEAviSectList1->CxList->Enabled = false; } else { FRAMEAviSectList1->CxList->Enabled = true; } //CbAVI_CTLR_MNGM_NMBR->ItemIndex = -1; CbAVI_CTLR_MNGM_NMBR->Properties->ReadOnly = bEnabled; EdId->Properties->ReadOnly = bEnabled; EdAVI_SECT_NMBR->Properties->ReadOnly = bEnabled; EdSTRT_SPOT_NM->Properties->ReadOnly = bEnabled; EdEND_SPOT_NM->Properties->ReadOnly = bEnabled; EdAVI_SECT_NM->Properties->ReadOnly = bEnabled; SeAVI_SECT_DSTC->Properties->ReadOnly = bEnabled; SeSHRT_PASS_HH->Properties->ReadOnly = bEnabled; SeLNST_PASS_HH->Properties->ReadOnly = bEnabled; SeSPOT_NUM->Properties->ReadOnly = bEnabled; SeSTND_DRFT_VAL->Properties->ReadOnly = bEnabled; SeMIN_SPED->Properties->ReadOnly = bEnabled; SeMAX_SPED->Properties->ReadOnly = bEnabled; SeSMTH_FCTR->Properties->ReadOnly = bEnabled; BtnLinkAdd->Enabled = !bEnabled; BtnLinkDel->Enabled = !bEnabled; } //--------------------------------------------------------------------------- void __fastcall TAVIM020M::BtnInsertClick(TObject *Sender) { FormInit(); //½Å±Ô¾ÆÀ̵𸦠¾ò¾î¿Í¼­ È­¸éÀ» ÃʱâÈ­ÇÑ´Ù. String sId; #if 0 if (!FRAMEAviSectList1->MyItsAviManager->GetNextAviSectId(sId)) { Application->MessageBox(L"»õ·Î¿î AVI-±¸°£ ¹øÈ£¸¦ »ý¼ºÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.\r\nÇÁ·Î±×·¥ Á¾·áÈÄ¿¡ ´Ù½Ã ½ÃµµÇØ º¸¼¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } #else sId = InputBox("AVI-±¸°£ ¹øÈ£", "½Å±Ô AVI-±¸°£ ¹øÈ£¸¦ ÀÔ·ÂÇϼ¼¿ä(20Byte).", "AVI-±¸°£ ¹øÈ£" ); sId = sId.Trim(); if (sId == "AVI-±¸°£ ¹øÈ£" || sId == "") { return; } if (AnsiString(sId).Length() > 10) { Application->MessageBox(L"AVI-±¸°£ ¹øÈ£´Â 10Byte¸¦ ÃʰúÇÒ ¼ö ¾ø½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } try { FRAMEAviSectList1->MyItsAviManager->FLists.Lock(); FOR_STL(TItsAvi*, pObj, FRAMEAviSectList1->MyItsAviManager->FLists) { TItsAviSect *pDb = pObj->FSubLists.Find(sId); if (pDb) { Application->MessageBox(("[" + sId + "]´Â »ç¿ëÇÒ ¼ö ¾ø´Â °ËÁö±â ¹øÈ£ ÀÔ´Ï´Ù.").c_str(), FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } } } __finally { FRAMEAviSectList1->MyItsAviManager->FLists.UnLock(); } #endif EdId->Text = ""; EdAVI_SECT_NMBR->Text = sId; ChangeEditMode(2); FNewDb = true; } //--------------------------------------------------------------------------- void __fastcall TAVIM020M::BtnDeleteClick(TObject *Sender) { int nIdx = m_pGDC->FocusedRecordIndex; if (nIdx < 0) return; String sId = EdAVI_SECT_NMBR->Text; if (sId.IsEmpty()) { Application->MessageBox(L"»èÁ¦ÇÒ AVI-±¸°£ Á¤º¸¸¦ ¸ñ·Ï¿¡¼­ ¼±ÅÃÇϼ¼¿ä.\r\n¸ñ·Ï¿¡¼­ ´õºíŬ¸¯ÇÏ¿© ¼±ÅÃÇÕ´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } String sMsg; sMsg = "AVI-±¸°£ ¹øÈ£: " + sId; sMsg+= "\r\n¼±ÅÃÇϽŠAVI-±¸°£ Á¤º¸¸¦ »èÁ¦ÇϽðڽÀ´Ï±î?\r\n°ü·ÃÁ¤º¸µµ ÇÔ²² »èÁ¦ µË´Ï´Ù."; if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) return; TItsAviSect *pObj = NULL; try { FRAMEAviSectList1->MyItsAviManager->FLists.Lock(); FOR_STL(TItsAvi*, pAvi, FRAMEAviSectList1->MyItsAviManager->FLists) { pObj = pAvi->FSubLists.Find(sId); if (pObj) { break; } } } __finally { FRAMEAviSectList1->MyItsAviManager->FLists.UnLock(); } if (pObj) { if (FRAMEAviSectList1->MyItsAviManager->DeleteAviSect(pObj)) { pObj->DEL_YN = "Y"; UpdateList(); } Application->MessageBox(L"AVI-±¸°£ Á¤º¸ »èÁ¦\r\nAVI-±¸°£ Á¤º¸¸¦ »èÁ¦ ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); FUpdate = true; FormInit(); ChangeEditMode(1); } } //--------------------------------------------------------------------------- void __fastcall TAVIM020M::BtnSaveClick(TObject *Sender) { TItsAvi *pAvi; TItsAviSect *pObj; String sId = EdAVI_SECT_NMBR->Text; String sCtrlId = ITSUtil_GetCode(CbAVI_CTLR_MNGM_NMBR->Text); // Á¦¾î±â °ü¸® ¹øÈ£ pAvi = FRAMEAviSectList1->MyItsAviManager->FLists.Find(sCtrlId); if (!pAvi || EdAVI_SECT_NMBR->Text.IsEmpty() || EdAVI_SECT_NM->Text.Trim().IsEmpty() ) { Application->MessageBox(L"¡ÚÇ׸ñÀº Çʼö ÀÔ·Â Ç׸ñÀÔ´Ï´Ù.\r\n¸ðµÎ ÀÔ·ÂÈÄ ÁøÇàÇØ ÁÖ¼¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } if (!FNewDb) { //¼öÁ¤¸ðµåÀ϶§ ÄÁÆ®·Ñ·¯°¡ ´Ù¸£´Ù¸é ½Å±Ô·Î ó¸®ÇÑ´Ù. if (EdId->Text != sCtrlId) { TItsAvi *pTmpAvi = FRAMEAviSectList1->MyItsAviManager->FLists.Find(EdId->Text); if (pTmpAvi) { pTmpAvi->FSubLists.Remove(sId); } FNewDb = true; } } if (FNewDb) { pObj = new TItsAviSect(); pObj->ORD = String(pAvi->FSubLists.Size() + 1); } else pObj = pAvi->FSubLists.Find(sId); if (pObj) { pObj->AVI_CTLR_MNGM_NMBR = sCtrlId; pObj->AVI_SECT_NMBR = sId; pObj->STRT_SPOT_NM = EdSTRT_SPOT_NM->Text.Trim(); pObj->END_SPOT_NM = EdEND_SPOT_NM->Text.Trim(); pObj->AVI_SECT_NM = EdAVI_SECT_NM->Text.Trim(); pObj->AVI_SECT_DSTC = VarToStr(SeAVI_SECT_DSTC->Value); pObj->SHRT_PASS_HH = VarToStr(SeSHRT_PASS_HH->Value); pObj->LNST_PASS_HH = VarToStr(SeLNST_PASS_HH->Value); pObj->SPOT_NUM = VarToStr(SeSPOT_NUM->Value); pObj->STND_DRFT_VAL = VarToStr(SeSTND_DRFT_VAL->Value); pObj->MIN_SPED = VarToStr(SeMIN_SPED->Value); pObj->MAX_SPED = VarToStr(SeMAX_SPED->Value); pObj->SMTH_FCTR = VarToStr(SeSMTH_FCTR->Value); pObj->DEL_YN = "N"; pObj->FRST_REGR_NMBR = ""; pObj->FRST_RGST_DT = ""; pObj->LAST_CRPR_NMBR = ""; pObj->LAST_CRCT_DT = ""; pObj->Completed = true; pObj->MEM_DEL = "N"; pObj->FLinkLists.RemoveAll(); try { TvLink->BeginUpdate(); for (int ii = 0; ii < TvLink->DataController->RecordCount; ii++) { String sLinkId = TvLink->DataController->Values[ii][ColLink2->Index]; TItsAviLink *pObjLnk = new TItsAviLink(); pObjLnk->AVI_CTLR_MNGM_NMBR = pObj->AVI_CTLR_MNGM_NMBR; pObjLnk->AVI_SECT_NMBR = pObj->AVI_SECT_NMBR; pObjLnk->LINK_ID = sLinkId; pObjLnk->ORD = String(ii+1); pObj->FLinkLists.Push(pObjLnk->ORD, pObjLnk); pObjLnk->Completed = true; pObjLnk->MEM_DEL = "N"; } } __finally { TvLink->EndUpdate(); } bool bResult; bResult = FRAMEAviSectList1->MyItsAviManager->SaveAviSect(pObj); if (bResult) { Application->MessageBox(L"AVI-±¸°£ Á¤º¸ÀúÀå\r\nAVI-±¸°£ Á¤º¸¸¦ ÀúÀå ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); if (FNewDb) { pAvi->FSubLists.Push(pObj->AVI_SECT_NMBR, pObj); } FUpdate = true; UpdateList(); CMM_SetGridRow(FRAMEAviSectList1->CxList, FRAMEAviSectList1->TvList, sId, FRAMEAviSectList1->Column02->Index); #if 0 DisplayInfo(pObj); #else int nRow = FRAMEAviSectList1->TvList->DataController->FocusedRecordIndex; if( nRow <= -1 ) return; int nMemPtr = FRAMEAviSectList1->TvList->DataController->Values[nRow][FRAMEAviSectList1->Column99->Index]; TItsAviSect* pObj = (TItsAviSect*)nMemPtr; DisplayInfo(pObj); #endif } } } //--------------------------------------------------------------------------- void __fastcall TAVIM020M::FRAMEGisMap1xclntMapMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { FRAMEGisMap1->xclntMap->ClearUserDrawPolyGon(); FRAMEGisMap1->xclntMap->ReDraw(); if (FRAMEGisMap1->xclntMap->MapOperation != OnSelect) return; if (Button != mbLeft) return; String sLinkId; int nLayerIdx = FRAMEGisMap1->GetLayerIndex(); if (nLayerIdx >= 0) { TXiMapUtil::SelectLinkByPos(FRAMEGisMap1->xsrvrMap, FRAMEGisMap1->xclntMap, nLayerIdx, X, Y, sLinkId); if (!sLinkId.IsEmpty()) { EdLinkId->Text = sLinkId; if (BtnLinkAdd->Enabled) { if (Shift.Contains(ssCtrl)) { BtnLinkAddClick((TObject*)BtnLinkAdd); } } } } } //--------------------------------------------------------------------------- void __fastcall TAVIM020M::RefreshLink() { FRAMEGisMap1->xclntMap->ClearPathInfo(); FRAMEGisMap1->xclntMap->ReDraw(); int nLayerIdx = FRAMEGisMap1->GetLayerIndex(); if (nLayerIdx < 0) return; try { int nRow; TcxDataController *pGDC = TvLink->DataController; TvLink->BeginUpdate(); try { for (int ii = 0; ii < pGDC->RecordCount; ii++) { String sLinkId = pGDC->Values[ii][ColLink2->Index]; TXiMapUtil::SelectLinkById(FRAMEGisMap1->xsrvrMap, FRAMEGisMap1->xclntMap, nLayerIdx, sLinkId); } } catch(...) { } } __finally { TvLink->EndUpdate(); } FRAMEGisMap1->xclntMap->ReDraw(); } //--------------------------------------------------------------------------- void __fastcall TAVIM020M::BtnLinkDelClick(TObject *Sender) { int nSelRows = TvLink->Controller->SelectedRowCount; if (nSelRows <= 0) { Application->MessageBox(L"»èÁ¦¸¦ ¿øÇÏ´Â ¸µÅ©±¸°£À» ¸ñ·Ï¿¡¼­ ¼±ÅÃÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } TvLink->Controller->DeleteSelection(); RefreshLink(); } //--------------------------------------------------------------------------- void __fastcall TAVIM020M::BtnLinkAddClick(TObject *Sender) { if (EdLinkId->Text.IsEmpty()) return; String sNewId = EdLinkId->Text; bool bFound = false; try { int nRow; TcxDataController *pGDC = TvLink->DataController; TvLink->BeginUpdate(); for (int ii = 0; ii < pGDC->RecordCount; ii++) { String sLinkId = pGDC->Values[ii][ColLink2->Index]; if (sNewId == sLinkId) { bFound = true; break; } } if (bFound) { Application->MessageBox(L"ÀÌ¹Ì µî·ÏµÇ¾î ÀÖ´Â ¸µÅ©±¸°£ ÀÔ´Ï´Ù.\r\n¸µÅ© ±¸°£Àº Áߺ¹Çؼ­ µî·Ï ÇÒ ¼ö ¾ø½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } TItsLink *pLink = ItsLinkManager->FLists.Find(sNewId); if (pLink) { nRow = pGDC->AppendRecord(); pGDC->Values[nRow][ColLink2->Index] = sNewId; TItsNode *pNode; pGDC->Values[nRow][ColLink3->Index] = pLink->F_NODEID; pGDC->Values[nRow][ColLink5->Index] = pLink->T_NODEID; pNode = ItsNodeManager->FLists.Find(pLink->F_NODEID); if (pNode) { pGDC->Values[nRow][ColLink4->Index] = pNode->NODE_NAME; } pNode = ItsNodeManager->FLists.Find(pLink->T_NODEID); if (pNode) { pGDC->Values[nRow][ColLink6->Index] = pNode->NODE_NAME; } } else { Application->MessageBox(L"µ¥ÀÌÅͺ£À̽º¿¡ µî·ÏµÇ¾î ÀÖÁö ¾Ê´Â ¸µÅ©±¸°£ ÀÔ´Ï´Ù.\r\nµ¥ÀÌÅͺ£À̽ºÀÇ Á¤º¸¸¦ È®ÀÎÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } } __finally { TvLink->EndUpdate(); } RefreshLink(); } //--------------------------------------------------------------------------- void __fastcall TAVIM020M::TvLinkCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (!ACellViewInfo) return; int nRow = TvLink->DataController->FocusedRecordIndex; if( nRow <= -1 ) return; String sLinkId = TvLink->DataController->Values[nRow][ColLink2->Index]; TXiMapUtil::MoveLink(FRAMEGisMap1->xclntMap, sLinkId); } //--------------------------------------------------------------------------- void __fastcall TAVIM020M::FRAMEAviSectList1TvListCellDblClickSect(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (!ACellViewInfo) return; int nRow = FRAMEAviSectList1->TvList->DataController->FocusedRecordIndex; if( nRow <= -1 ) return; int nMemPtr = FRAMEAviSectList1->TvList->DataController->Values[nRow][FRAMEAviSectList1->Column99->Index]; TItsAviSect* pObj = (TItsAviSect*)nMemPtr; DisplayInfo(pObj); } //--------------------------------------------------------------------------- void __fastcall TAVIM020M::FRAMEAviList1TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (!ACellViewInfo) return; int nRow = FRAMEAviList1->TvList->DataController->FocusedRecordIndex; if( nRow <= -1 ) return; int nMemPtr = FRAMEAviList1->TvList->DataController->Values[nRow][FRAMEAviList1->Column99->Index]; TItsAvi* pObj = (TItsAvi*)nMemPtr; try { FRAMEGisMap1->SelectObjectByPos(StrToFloatDef(pObj->X_CRDN, 0), StrToFloatDef(pObj->Y_CRDN, 0), true); } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TAVIM020M::ChkGisZoomClick(TObject *Sender) { PnlInfo->Visible = !ChkGisZoom->Checked; } //---------------------------------------------------------------------------