//--------------------------------------------------------------------------- #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "ITSDbF.h" #include "AppGlobalF.h" #include "ITSLangTransF.h" #pragma hdrstop #include "TAS0010MF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "cxButtons" #pragma link "cxCalc" #pragma link "cxCalendar" #pragma link "cxClasses" #pragma link "cxContainer" #pragma link "cxControls" #pragma link "cxCustomData" #pragma link "cxData" #pragma link "cxDataStorage" #pragma link "cxDropDownEdit" #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 "cxMaskEdit" #pragma link "cxSpinEdit" #pragma link "cxSplitter" #pragma link "cxStyles" #pragma link "cxTextEdit" #pragma link "cxTimeEdit" #pragma link "cxTrackBar" #pragma link "dxSkinBlack" #pragma link "dxSkinBlue" #pragma link "dxSkinsCore" #pragma link "dxSkinscxPCPainter" #pragma link "FRAME_GoogleMapF" #pragma link "GMClasses" #pragma link "GMLinkedComponents" #pragma link "GMMap" #pragma link "GMPolyline" #pragma link "GMPolylineVCL" #pragma resource "*.dfm" TTAS0010M *TAS0010M = NULL; //--------------------------------------------------------------------------- __fastcall TTAS0010M::TTAS0010M(TComponent* Owner) : TForm(Owner) { LangTrans->Translate(this, ITSDb_GetConnection()); ITSSkin_Load(this); CMM_LoadForm(g_sFormsDir, this); FTitle = Caption;//"È¥ÀâÁöµµºÐ¼®"; FPolyManager = new TPolyManager(); FSelLink = NULL; FRAMEGoogleMap1->BtnIconSelect->Visible = false; FRAMEGoogleMap1->BtnIconSelect->Enabled = false; FRAMEGoogleMap1->FOnZoomChanged = FRAMEGoogleMapOnZoomChange; FTargetIdx = 0; CbTarget->ItemIndex = FTargetIdx; } //--------------------------------------------------------------------------- void __fastcall TTAS0010M::CommClose() { try { if (BtnStop->Enabled) BtnStopClick((TObject*)BtnStop); if (FPolyManager) delete FPolyManager; FPolyManager = NULL; CMM_SaveForm(g_sFormsDir, this); } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TTAS0010M::FormShow(TObject *Sender) { Refresh(); FormInit(); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TTAS0010M::FormInit() { ADOQry->Connection = ITSDb_GetConnection(); ADOSta->Connection = ITSDb_GetConnection(); m_pGDC = TvList->DataController; TDateTime dtNow = Now() - ((double)3 / (double)24); DtStDate->Date = dtNow; DtEdDate->Date = Now(); //DtStTime->EditValue = dtNow.FormatString("hh") + ":00"; dtNow = Now() - ((double)2 / (double)24); //DtEdTime->EditValue = dtNow.FormatString("hh") + ":59"; DtStTime->Time = StrToDateTime(dtNow.FormatString("hh") + ":00"); DtEdTime->Time = StrToDateTime(dtNow.FormatString("hh") + ":59"); } //--------------------------------------------------------------------------- /* * FormÀÌ ShowµÇ°í ³­ ÈÄ ÃÖÃÊ 1ȸ ¼öÇàµÇ´Â ŸÀÌ¸Ó À̺¥Æ® * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TTAS0010M::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; if (TmrShow->Tag == 1) { int nIndex = m_pGDC->FocusedRecordIndex; if (nIndex < 0) { cxTrackBar1->Position = 0; FStatTime = ""; BtnPlay->Enabled = true; BtnStop->Enabled = false; BtnSearch->Enabled = true; return; } if (m_pGDC->FocusedRecordIndex + 1 == m_pGDC->RecordCount) { cxTrackBar1->Position = 0; FStatTime = ""; BtnPlay->Enabled = true; BtnStop->Enabled = false; BtnSearch->Enabled = true; return; } m_pGDC->FocusedRecordIndex++; nIndex = m_pGDC->FocusedRecordIndex; FSimIndex = nIndex; cxTrackBar1->Position = nIndex; FStatTime = VarToStr(m_pGDC->Values[nIndex][Column04->Index]); //cxGroupBox1->Caption = "¢º ¼ÒÅëÁ¤º¸ Ç¥Ãâ - " + VarToStr(m_pGDC->Values[nIndex][Column02->Index]); cxGroupBox1->Caption = lblText1->Caption + " - " + VarToStr(m_pGDC->Values[nIndex][Column02->Index]); SelStatisticsHistory(FStatTime); BtnPlay->Enabled = false; BtnStop->Enabled = true; TmrShow->Interval = SeRefreshSec->Value * 1000; TmrShow->Enabled = true; } else { FRAMEGoogleMap1->LinkLevel = 2; FRAMEGoogleMap1->LoadGisMap(); InitGisLink(); } } //--------------------------------------------------------------------------- void __fastcall TTAS0010M::InitGisLink() { TGMPolyline *pLink = GMPolyLink; TPolyline *pLn = NULL; pLink = GMPolyLink; try { ItsIfscManager->FLists.Lock(); FOR_STL(TItsIfsc*, pObj, ItsIfscManager->FLists) { if (pObj->Coords.Size() < 2) continue; pLn = pLink->Add(); if (!pLn) continue; pLn->Tag = (int)pObj; pLn->FObject = (TObject*)&pObj->bounds; pLn->Text = pObj->IFSC_ID; FOR_STL(TItsCoord*, pCoord, pObj->Coords) { pLn->AddLinePoint(pCoord->Y, pCoord->X); } pLn->StrokeColor = clSilver; pLn->StrokeWeight = 4; pLn->StrokeOpacity = 1; pLn->AutoUpdatePath = true; pLn->Visible = true; pLn->Clickable = false; FPolyManager->FLists.Push(pLn->Text, pLn); } } __finally { ItsIfscManager->FLists.UnLock(); pLink->Map = FRAMEGoogleMap1->GMMap1; } } //--------------------------------------------------------------------------- void __fastcall TTAS0010M::BtnSearchClick(TObject *Sender) { Application->ProcessMessages(); TSqlCursor sqlCrs((TControl*)BtnSearch); FStDateTime = DtStDate->Date.FormatString("yyyymmdd") + DtStTime->Time.FormatString("hhnn"); FEdDateTime = DtEdDate->Date.FormatString("yyyymmdd") + DtEdTime->Time.FormatString("hhnn"); if (FStDateTime > FEdDateTime) { Application->MessageBox(FrmLang->lblQryDtErr->Caption.c_str(),//L"°Ë»ö ½ÃÀ۽ð¢ÀÌ °Ë»ö Á¾·á½Ã°¢ º¸´Ù Å®´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONWARNING|MB_APPLMODAL); ActiveControl = DtStDate; return; } if (StrToInt(DtEdTime->Time.FormatString("hh")) - StrToInt(DtStTime->Time.FormatString("hh")) >= 3) { Application->MessageBox(lblText2->Caption.c_str(),//L"3½Ã°£ ÀÌ»óÀÇ Á¤º¸¸¦ Á¶È¸ÇÒ ¼ö ¾ø½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONWARNING|MB_APPLMODAL); ActiveControl = DtStDate; return; } FLinkLevel = String(CbLinkLevel->ItemIndex+1); FTargetIdx = CbTarget->ItemIndex; switch(FTargetIdx) { case 0: //ÀÌ·Â Á¤º¸(Åë°è 5ºÐ Á¤º¸) case 1: //Åë°è 15ºÐ Á¤º¸ FStDateTime = FStDateTime + "00"; FEdDateTime = FEdDateTime + "59"; break; case 2: //ÆÐÅÏ 5ºÐ Á¤º¸ case 3: //ÆÐÅÏ 15ºÐ Á¤º¸ FStDateTime = FStDateTime; FEdDateTime = FEdDateTime; break; default: return; } SelHistory(); ClearGis(); } //--------------------------------------------------------------------------- void __fastcall TTAS0010M::BtnCloseClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TTAS0010M::FormClose(TObject *Sender, TCloseAction &Action) { CommClose(); TAS0010M = NULL; Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TTAS0010M::DtStDatePropertiesValidate(TObject *Sender, Variant &DisplayValue, TCaption &ErrorText, bool &Error) { DtEdDate->Date = DtStDate->Date; } //--------------------------------------------------------------------------- void __fastcall TTAS0010M::SelHistory() { TSqlCursor sqlCrs; String sQry; TADOQuery *pADO = ADOQry; //select substr('20180108xxyy', 1, 6), substr('20180108xxyy', 9, 4) from dual switch(FTargetIdx) { case 0: //ÀÌ·Â Á¤º¸(Åë°è 5ºÐ Á¤º¸) sQry = "SELECT PRCN_DT AS PRCN_DT, COUNT(IFSC_ID) CNT \r\n" " FROM TB_IFSC_TRAF_HS A \r\n" " WHERE PRCN_DT BETWEEN :p01 AND :p03 \r\n" " GROUP BY PRCN_DT \r\n" " ORDER BY PRCN_DT \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", FStDateTime); ITSDb_SQLBind(pADO, "p03", FEdDateTime); break; case 1: //Åë°è 15ºÐ Á¤º¸ sQry = "SELECT STAT_DT AS PRCN_DT, COUNT(IFSC_ID) CNT \r\n" " FROM TB_IFSC_15M_STAT A \r\n" " WHERE STAT_DT BETWEEN :p01 AND :p03 \r\n" " GROUP BY STAT_DT \r\n" " ORDER BY STAT_DT \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", FStDateTime); ITSDb_SQLBind(pADO, "p03", FEdDateTime); break; case 2: //ÆÐÅÏ 5ºÐ Á¤º¸ sQry = "SELECT STAT_YM || ' ' || STAT_HM AS PRCN_DT, COUNT(IFSC_ID) CNT \r\n" " FROM TB_IFSC_5M_PTRN A \r\n" " WHERE STAT_YM = SUBSTR(:p01, 1, 6) \r\n" " AND STAT_HM BETWEEN SUBSTR(:p02, 9, 4) AND SUBSTR(:p03, 9, 4) \r\n" " GROUP BY STAT_YM || ' ' || STAT_HM \r\n" " ORDER BY STAT_YM || ' ' || STAT_HM \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", FStDateTime); ITSDb_SQLBind(pADO, "p02", FStDateTime); ITSDb_SQLBind(pADO, "p03", FEdDateTime); break; case 3: //ÆÐÅÏ 15ºÐ Á¤º¸ sQry = "SELECT STAT_YM || ' ' || STAT_HM AS PRCN_DT, COUNT(IFSC_ID) CNT \r\n" " FROM TB_IFSC_15M_PTRN A \r\n" " WHERE STAT_YM = SUBSTR(:p01, 1, 6) \r\n" " AND STAT_HM BETWEEN SUBSTR(:p02, 9, 4) AND SUBSTR(:p03, 9, 4) \r\n" " GROUP BY STAT_YM || ' ' || STAT_HM \r\n" " ORDER BY STAT_YM || ' ' || STAT_HM \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", FStDateTime); ITSDb_SQLBind(pADO, "p02", FStDateTime); ITSDb_SQLBind(pADO, "p03", FEdDateTime); break; } try { ITSDb_SQLOpen(pADO); DspHistory(); } catch(EDatabaseError &E) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &exception) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG(Caption, String(exception.ClassName()), exception.Message, sQry); throw Exception(String(exception.ClassName()) + exception.Message); } } //--------------------------------------------------------------------------- void __fastcall TTAS0010M::DspHistory() { TADOQuery *pADO = ADOQry; try { CMM_ClearGridTableView(TvList); int nRow = 0; try { TvList->BeginUpdate(); m_pGDC->RecordCount = pADO->RecordCount; for( ; !pADO->Eof; pADO->Next(), nRow++) { m_pGDC->Values[nRow][Column01->Index] = nRow+1; //m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("PRCN_DT2")->AsDateTime.DateTimeString(); //°¡°ø½Ã°¢ //m_pGDC->Values[nRow][Column02->Index] = ITSUtil_StrToTime(pADO->FieldByName("PRCN_DT")->AsString); //°¡°ø½Ã°¢ m_pGDC->Values[nRow][Column02->Index] = pADO->FieldByName("PRCN_DT")->AsString; //°¡°ø½Ã°¢ m_pGDC->Values[nRow][Column03->Index] = pADO->FieldByName("CNT")->AsInteger; m_pGDC->Values[nRow][Column04->Index] = pADO->FieldByName("PRCN_DT")->AsString; } } __finally { if (pADO) { pADO->Close(); } TvList->EndUpdate(); CxList->SetFocus(); cxTrackBar1->Position = 0; cxTrackBar1->Properties->Max = nRow; cxTrackBar1->Properties->Frequency = cxTrackBar1->Properties->Max * 0.1; LblRecords->Caption = FormatFloat("##,##0", m_pGDC->RecordCount) + FrmLang->lblEA->Caption;//" °Ç"; String sEnd = FrmLang->lblQrySel->Caption + " [" + LblRecords->Caption + "]";//"µ¥ÀÌÅÍ " + LblRecords->Caption + " ÀÌ Á¶È¸ µÇ¾ú½À´Ï´Ù."; Application->MessageBox(sEnd.c_str(), FrmLang->lblQryEnd->Caption.c_str(),//L"µ¥ÀÌÅÍ Á¶È¸ ¿Ï·á", MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); } } catch(EDatabaseError &E) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); throw Exception(String(E.ClassName()) + E.Message); } catch(...) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); throw Exception(FrmLang->lblDbErr->Caption);//"¾Ë¼ö¾ø´Â ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù."); } } //--------------------------------------------------------------------------- void __fastcall TTAS0010M::BtnPlayClick(TObject *Sender) { if (m_pGDC->RecordCount <= 0) { Application->MessageBox(lblText3->Caption.c_str(),//L"Ç¥ÃâÇÒ Á¤º¸°¡ ¾ø½À´Ï´Ù. ÀÌ·ÂÁ¤º¸¸¦ ´Ù½Ã Á¶È¸ÇϽŠÈÄ ÀÛ¾÷À» ÁøÇà ÇϽʽÿä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } m_pGDC->FocusedRecordIndex = 0; int nIndex = m_pGDC->FocusedRecordIndex; if (nIndex < 0) return; FSimIndex = nIndex; cxTrackBar1->Position = nIndex; FStatTime = VarToStr(m_pGDC->Values[nIndex][Column04->Index]); CxList->SetFocus(); BtnPlay->Enabled = false; BtnStop->Enabled = true; BtnSearch->Enabled = false; //cxGroupBox1->Caption = "¢º ¼ÒÅëÁ¤º¸ Ç¥Ãâ - " + VarToStr(m_pGDC->Values[nIndex][Column02->Index]); cxGroupBox1->Caption = lblText1->Caption + " - " + VarToStr(m_pGDC->Values[nIndex][Column02->Index]); SelStatisticsHistory(FStatTime); TmrShow->Tag = 1; TmrShow->Interval = SeRefreshSec->Value * 1000; TmrShow->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TTAS0010M::BtnStopClick(TObject *Sender) { TmrShow->Enabled = false; BtnPlay->Enabled = true; BtnStop->Enabled = false; BtnSearch->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TTAS0010M::SelStatisticsHistory(String AStatTime) { int ii; TSqlCursor sqlCrs; String sQry; TADOQuery *pADO = ADOSta; switch(FTargetIdx) { case 0: //ÀÌ·Â Á¤º¸ sQry = "SELECT A.IFSC_ID, NVL(B.CMTR_GRAD_CD, 'LTC0') TRFGRD, C.SPED, \r\n" " C.PRCN_DT REGDATE \r\n" " FROM TB_IFSC A, \r\n" " TB_CMTR_GRAD_CLSF B, \r\n" " TB_IFSC_TRAF_HS C \r\n" " WHERE A.IFSC_ID = C.IFSC_ID \r\n" " AND A.SECT_GRAD_CD = B.SECT_GRAD_CD \r\n" " AND (C.SPED >= B.LWST_TRVL_SPED AND C.SPED <= B.HGHS_TRVL_SPED) \r\n" " AND C.PRCN_DT = :p01 \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AStatTime); break; case 1: //Åë°è 15ºÐ Á¤º¸ sQry = "SELECT A.IFSC_ID, NVL(B.CMTR_GRAD_CD, 'LTC0') TRFGRD, C.SPED, \r\n" " C.STAT_DT REGDATE \r\n" " FROM TB_IFSC A, \r\n" " TB_CMTR_GRAD_CLSF B, \r\n" " TB_IFSC_15M_STAT C \r\n" " WHERE A.IFSC_ID = C.IFSC_ID \r\n" " AND A.SECT_GRAD_CD = B.SECT_GRAD_CD \r\n" " AND (C.SPED >= B.LWST_TRVL_SPED AND C.SPED <= B.HGHS_TRVL_SPED) \r\n" " AND C.STAT_DT = :p01 \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AStatTime); break; case 2: //ÆÐÅÏ 5ºÐ Á¤º¸ sQry = "SELECT A.IFSC_ID, NVL(B.CMTR_GRAD_CD, 'LTC0') TRFGRD, \r\n" " C.SPED, C.STAT_YM || C.STAT_HM REGDATE \r\n" " FROM TB_IFSC A, \r\n" " TB_CMTR_GRAD_CLSF B, \r\n" " TB_IFSC_5M_PTRN C \r\n" " WHERE A.IFSC_ID = C.IFSC_ID \r\n" " AND A.SECT_GRAD_CD = B.SECT_GRAD_CD \r\n" " AND (C.SPED >= B.LWST_TRVL_SPED AND C.SPED <= B.HGHS_TRVL_SPED) \r\n" " AND C.STAT_YM = SUBSTR(:p01, 1, 6) \r\n" " AND C.STAT_HM = SUBSTR(:p02, 8, 4) \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AStatTime); ITSDb_SQLBind(pADO, "p02", AStatTime); break; case 3: //ÆÐÅÏ 15ºÐ Á¤º¸ sQry = "SELECT A.IFSC_ID, NVL(B.CMTR_GRAD_CD, 'LTC0') TRFGRD, \r\n" " C.SPED, C.STAT_YM || C.STAT_HM REGDATE \r\n" " FROM TB_IFSC A, \r\n" " TB_CMTR_GRAD_CLSF B, \r\n" " TB_IFSC_15M_PTRN C \r\n" " WHERE A.IFSC_ID = C.IFSC_ID \r\n" " AND A.SECT_GRAD_CD = B.SECT_GRAD_CD \r\n" " AND (C.SPED >= B.LWST_TRVL_SPED AND C.SPED <= B.HGHS_TRVL_SPED) \r\n" " AND C.STAT_YM = SUBSTR(:p01, 1, 6) \r\n" " AND C.STAT_HM = SUBSTR(:p02, 8, 4) \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AStatTime); ITSDb_SQLBind(pADO, "p02", AStatTime); break; } FOR_STL(TPolyline*, pLn, FPolyManager->FLists) { pLn->StrokeColor = clSilver; } try { String sLinkInfo = ""; ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { String sLinkId = pADO->FieldByName("IFSC_ID")->AsString; String TRFGRD = pADO->FieldByName("TRFGRD")->AsString; TPolyline* pLn = FPolyManager->FLists.Find(sLinkId); if (pLn) { if (TRFGRD == "LTC1") pLn->StrokeColor = clLime; else if (TRFGRD == "LTC2") pLn->StrokeColor = clYellow; else if (TRFGRD == "LTC3") pLn->StrokeColor = clRed; else pLn->StrokeColor = clSilver; } #if 0 if (TRFGRD == "LTC1") sLinkInfo += sLinkId + ",1|"; else if (TRFGRD == "LTC2") sLinkInfo += sLinkId + ",2|"; else if (TRFGRD == "LTC3") sLinkInfo += sLinkId + ",3|"; else sLinkInfo += sLinkId + ",0|"; #endif } } catch(EDatabaseError &E) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG(Caption, String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &exception) { ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2); DBERRORMSG(Caption, String(exception.ClassName()), exception.Message, sQry); throw Exception(String(exception.ClassName()) + exception.Message); } } //--------------------------------------------------------------------------- void __fastcall TTAS0010M::ClearGis() { cxGroupBox1->Caption = lblText1->Caption;//"¢º ¼ÒÅëÁ¤º¸ Ç¥Ãâ"; } //--------------------------------------------------------------------------- void __fastcall TTAS0010M::TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (BtnPlay->Enabled == false) return; int nRow = m_pGDC->FocusedRecordIndex; if( nRow <= -1 ) return; FStatTime = VarToStr(m_pGDC->Values[nRow][Column04->Index]); //cxGroupBox1->Caption = "¢º ¼ÒÅëÁ¤º¸ Ç¥Ãâ - " + VarToStr(m_pGDC->Values[nRow][Column02->Index]); cxGroupBox1->Caption = lblText1->Caption + " - " + VarToStr(m_pGDC->Values[nRow][Column02->Index]); SelStatisticsHistory(FStatTime); } //--------------------------------------------------------------------------- void __fastcall TTAS0010M::BtnSearch2Click(TObject *Sender) { Application->ProcessMessages(); TSqlCursor sqlCrs((TControl*)BtnSearch); String sLinkId = EdLinkId->Text.Trim(); TmrClearTimer(NULL); TPolyline* pLn = FPolyManager->FLists.Find(sLinkId); if (pLn) { FSelLink = pLn; FSelColor= pLn->StrokeColor; pLn->StrokeColor = clGreen; pLn->ZoomToPoints(); TmrClear->Enabled = true; } TmrClear->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TTAS0010M::TmrClearTimer(TObject *Sender) { TmrClear->Enabled = false; if (FSelLink) { FSelLink->StrokeColor = FSelColor; } FSelLink = NULL; } //--------------------------------------------------------------------------- void __fastcall TTAS0010M::FRAMEGoogleMapOnZoomChange(TObject *Sender) { int nStrokeWeight = 4; if (FRAMEGoogleMap1->FMapZoom >= 14) { nStrokeWeight = 8; } #if 0 FOR_STL(TPolyline*, pLn, FPolyManager->FLists) { pLn->StrokeWeight = nStrokeWeight; } #endif } //---------------------------------------------------------------------------