ITS00G0MF.cpp 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #include "ITSSkinF.h"
  4. #include "ITSUtilF.h"
  5. #include "WindowMsgF.h"
  6. #include "CDSFacilityF.h"
  7. #include "CDSIncidentF.h"
  8. #include "FrmMainF.h"
  9. #pragma hdrstop
  10. #include "ITS00G0MF.h"
  11. //---------------------------------------------------------------------------
  12. #pragma package(smart_init)
  13. #pragma link "FRAME_FacilityStatusListF"
  14. #pragma link "FRAME_ProcessStatusListF"
  15. #pragma link "FRAME_UtisStatusListF"
  16. #pragma link "FRAME_IncidentListF"
  17. #pragma link "FRAME_RepeatCongestListF"
  18. #pragma link "FRAME_TrafficMissLinkListF"
  19. #pragma link "cxContainer"
  20. #pragma link "cxControls"
  21. #pragma link "cxEdit"
  22. #pragma link "cxGraphics"
  23. #pragma link "cxGroupBox"
  24. #pragma link "cxLabel"
  25. #pragma link "cxLookAndFeelPainters"
  26. #pragma link "cxLookAndFeels"
  27. #pragma link "cxPC"
  28. #pragma link "cxPCdxBarPopupMenu"
  29. #pragma link "cxSplitter"
  30. #pragma link "dxSkinBlack"
  31. #pragma link "dxSkinBlue"
  32. #pragma link "dxSkinCaramel"
  33. #pragma link "dxSkinCoffee"
  34. #pragma link "dxSkinDarkRoom"
  35. #pragma link "dxSkinDarkSide"
  36. #pragma link "dxSkinFoggy"
  37. #pragma link "dxSkinGlassOceans"
  38. #pragma link "dxSkiniMaginary"
  39. #pragma link "dxSkinLilian"
  40. #pragma link "dxSkinLiquidSky"
  41. #pragma link "dxSkinLondonLiquidSky"
  42. #pragma link "dxSkinMcSkin"
  43. #pragma link "dxSkinMoneyTwins"
  44. #pragma link "dxSkinOffice2007Black"
  45. #pragma link "dxSkinOffice2007Blue"
  46. #pragma link "dxSkinOffice2007Green"
  47. #pragma link "dxSkinOffice2007Pink"
  48. #pragma link "dxSkinOffice2007Silver"
  49. #pragma link "dxSkinOffice2010Black"
  50. #pragma link "dxSkinOffice2010Blue"
  51. #pragma link "dxSkinOffice2010Silver"
  52. #pragma link "dxSkinsCore"
  53. #pragma link "dxSkinscxPCPainter"
  54. #pragma link "dxSkinSeven"
  55. #pragma link "dxSkinSharp"
  56. #pragma link "dxSkinSilver"
  57. #pragma link "dxSkinStardust"
  58. #pragma resource "*.dfm"
  59. TITS00G0M *ITS00G0M = NULL;
  60. //---------------------------------------------------------------------------
  61. __fastcall TITS00G0M::TITS00G0M(TComponent* Owner)
  62. : TForm(Owner)
  63. {
  64. ITSSkin_Load(this);
  65. LoadLocalSkin();
  66. CMM_LoadForm(g_sFormsDir, this);
  67. PgSystem->Properties->ActivePage = TsIncident;
  68. GrpSystem->Caption = "▶ 시스템 운영 정보 - " + TsIncident->Caption;
  69. FRAMEFacilityStatusList1->PnlBottom->Visible = false;
  70. //FrmMain->dxStatusBar->Panels->Items[isbGisPos]->Visible = true;
  71. ITS00GEO = new TITS00GEO(PnlMapBack, (TForm*)this);
  72. }
  73. //---------------------------------------------------------------------------
  74. /*
  75. * 닫기버튼 이나 x버튼 클릭시 공통으로 처리하는 로직이들어간다..
  76. * Form과 DataModule class를 delete시킨다.
  77. * arguments
  78. *
  79. * return
  80. * void
  81. */
  82. void __fastcall TITS00G0M::CommClose()
  83. {
  84. try
  85. {
  86. //FrmMain->dxStatusBar->Panels->Items[isbGisPos]->Visible = false;
  87. if (ITS00GEO)
  88. {
  89. delete ITS00GEO;
  90. ITS00GEO = NULL;
  91. }
  92. CMM_SaveForm(g_sFormsDir, this);
  93. }
  94. catch(...)
  95. {
  96. }
  97. }
  98. //---------------------------------------------------------------------------
  99. /*
  100. * Form이 메모리에서 생성될때 호출되는 생성자 이벤트 핸들러
  101. * arguments
  102. * Sender : event handler 객체
  103. * return
  104. * void
  105. */
  106. void __fastcall TITS00G0M::FormCreate(TObject *Sender)
  107. {
  108. if (ITS00GEO)
  109. {
  110. ITS00GEO->Parent = PnlMapBack;
  111. ITS00GEO->Show();
  112. }
  113. }
  114. //---------------------------------------------------------------------------
  115. /*
  116. * Form을 보여줄때 호출되는 event 메서드이다.
  117. * arguments
  118. * Sender : event handler 객체
  119. * return
  120. * void
  121. */
  122. void __fastcall TITS00G0M::FormShow(TObject *Sender)
  123. {
  124. Refresh();
  125. Application->ProcessMessages();
  126. TmrShow->Enabled = true;
  127. }
  128. //---------------------------------------------------------------------------
  129. /*
  130. * Form의 Skin 초기화 작업을 수행한다.
  131. * arguments
  132. * void
  133. * return
  134. * void
  135. */
  136. void __fastcall TITS00G0M::LoadLocalSkin()
  137. {
  138. #define MAX_VIEW 7
  139. TcxGridTableView *pView[MAX_VIEW];
  140. TcxGrid *pGrid[MAX_VIEW];
  141. pGrid[ 0] = FRAMEProcessStatusList1->CxList; //프로세스상태
  142. pGrid[ 1] = FRAMEFacilityStatusList1->CxList; //시설물상태
  143. pGrid[ 2] = FRAMEUtisStatusList1->CxUtisRun; //UTIS현황-운영현황
  144. pGrid[ 3] = FRAMEUtisStatusList1->CxUtisRse; //UTIS현황-RSE상태현황
  145. pGrid[ 4] = FRAMEIncidentList1->CxList; //돌발
  146. pGrid[ 5] = FRAMERepeatCongestList1->CxList; //반복정체구간
  147. pGrid[ 6] = FRAMETrafficMissLinkList1->CxList; //소통정보결측구간
  148. pView[ 0] = FRAMEProcessStatusList1->TvList;
  149. pView[ 1] = FRAMEFacilityStatusList1->TvList;
  150. pView[ 2] = FRAMEUtisStatusList1->TvUtisRun;
  151. pView[ 3] = FRAMEUtisStatusList1->TvUtisRse;
  152. pView[ 4] = FRAMEIncidentList1->TvList;
  153. pView[ 5] = FRAMERepeatCongestList1->TvList;
  154. pView[ 6] = FRAMETrafficMissLinkList1->TvList;
  155. for (int ii = 0; ii < MAX_VIEW; ii++)
  156. {
  157. //pGrid[ii]->LookAndFeel->SkinName = "McSkin";
  158. continue;
  159. pView[ii]->Styles->Inactive = NULL;
  160. pView[ii]->Styles->ContentOdd = NULL;
  161. pView[ii]->Styles->ContentEven= NULL;
  162. pView[ii]->Styles->Selection = NULL;
  163. }
  164. }
  165. //---------------------------------------------------------------------------
  166. /*
  167. * Form이 Show되고 난 후 최초 1회 수행되는 타이머 이벤트
  168. * arguments
  169. * Sender : event handler 객체
  170. * return
  171. * void
  172. */
  173. void __fastcall TITS00G0M::TmrShowTimer(TObject *Sender)
  174. {
  175. TmrShow->Enabled = false;
  176. // 리스트 항목을 초기화한다.
  177. InitListData();
  178. }
  179. //---------------------------------------------------------------------------
  180. void __fastcall TITS00G0M::InitListData()
  181. {
  182. FIncidentCnt = 0;
  183. FRrCongestCnt = 0;
  184. FMissLinkCnt = 0;
  185. FRAMEFacilityStatusList1->UpdateList();
  186. FRAMEProcessStatusList1->UpdateList();
  187. FRAMEUtisStatusList1->UpdateList();
  188. FRAMEIncidentList1->UpdateList();
  189. FRAMERepeatCongestList1->UpdateList();
  190. FRAMETrafficMissLinkList1->UpdateList();
  191. UpdateAlarmStatus();
  192. }
  193. //---------------------------------------------------------------------------
  194. void __fastcall TITS00G0M::UpdateAlarmStatus()
  195. {
  196. String sAlarmMsg = "";
  197. FIncidentCnt = FRAMEIncidentList1->TvList->DataController->RecordCount;
  198. FRrCongestCnt = FRAMERepeatCongestList1->TvList->DataController->RecordCount;
  199. FMissLinkCnt = FRAMETrafficMissLinkList1->TvList->DataController->RecordCount;
  200. if (FIncidentCnt > 0)
  201. {
  202. sAlarmMsg += "돌발발생(" + String(FIncidentCnt) + ") ";
  203. TsIncident->ImageIndex = 1;
  204. }
  205. else
  206. TsIncident->ImageIndex = 2;
  207. if (FRrCongestCnt > 0)
  208. {
  209. sAlarmMsg += "반복정체구간발생(" + String(FRrCongestCnt) + ") ";
  210. TsRrCongest->ImageIndex = 1;
  211. }
  212. else
  213. TsRrCongest->ImageIndex = 2;
  214. if (FMissLinkCnt > 0)
  215. {
  216. sAlarmMsg += "결측구간발생(" + String(FMissLinkCnt) + ") ";
  217. TsMissingLink->ImageIndex = 1;
  218. }
  219. else
  220. TsMissingLink->ImageIndex = 2;
  221. LblAlarm->Caption = sAlarmMsg;
  222. if ((FIncidentCnt+FRrCongestCnt+FMissLinkCnt) > 0)
  223. {
  224. LblAlarm->Visible = true;
  225. }
  226. else
  227. {
  228. LblAlarm->Visible = false;
  229. }
  230. }
  231. //---------------------------------------------------------------------------
  232. void __fastcall TITS00G0M::PgSystemPageChanging(TObject *Sender, TcxTabSheet *NewPage, bool &AllowChange)
  233. {
  234. GrpSystem->Caption = "▶ 시스템 운영 정보 - " + NewPage->Caption;
  235. }
  236. //---------------------------------------------------------------------------
  237. void __fastcall TITS00G0M::FormClose(TObject *Sender, TCloseAction &Action)
  238. {
  239. try {
  240. CommClose();
  241. ITS00G0M = NULL;
  242. Action = caFree;
  243. g_AppCfg.bAppClose = true;
  244. //FrmMain->Close();
  245. //Application->Terminate();
  246. } catch(...) {}
  247. }
  248. //---------------------------------------------------------------------------
  249. /*
  250. * 메인폼에서 데이터를 수신시 발생하는 이벤트 핸들러
  251. * arguments
  252. *
  253. * return
  254. * void
  255. */
  256. void __fastcall TITS00G0M::OnMainFormMessage(TMessage &Msg)
  257. {
  258. switch(Msg.WParam)
  259. {
  260. case WP_DB_SELECT_OK:
  261. switch(Msg.LParam)
  262. {
  263. case LP_MSG_01: ITSUtil_Trace("LP_MSG_01"); UpdateTrafficMissLinkInfo(); break;
  264. case LP_MSG_02: ITSUtil_Trace("LP_MSG_02"); /*서비스링크소통정보*/ break;
  265. case LP_MSG_03: ITSUtil_Trace("LP_MSG_03"); /*도로소통정보*/ break;
  266. case LP_MSG_04: ITSUtil_Trace("LP_MSG_04"); UpdateTrafficRrCongestInfo(); break;
  267. case LP_MSG_05: ITSUtil_Trace("LP_MSG_05"); UpdateUtisStatusInfo(); break;
  268. case LP_MSG_11: ITSUtil_Trace("LP_MSG_11"); UpdateFacilityStatusInfo(); break;
  269. case LP_MSG_12: ITSUtil_Trace("LP_MSG_12"); UpdateProcessStatusInfo(); break;
  270. case LP_MSG_13: ITSUtil_Trace("LP_MSG_13"); UpdateIncidentInfo(); break;
  271. case LP_MSG_14: ITSUtil_Trace("LP_MSG_14"); UpdateFacilityInfo(); break;
  272. }
  273. break;
  274. case WP_MSG_01: //소통등급이 변경되었다.
  275. if (ITS00GEO) ITS00GEO->SetGisTrafficColor();
  276. break;
  277. case WP_MSG_02: //돌발정보를 현단말에서 취소/등록/해제 하였다.
  278. UpdateIncidentInfo();
  279. break;
  280. case WP_MSG_03: //시설물 기본정보가 변경됨
  281. FRAMEFacilityStatusList1->UpdateList();
  282. break;
  283. case WP_DB_SELECT_ERROR:
  284. case WP_DB_SELECT_CANCEL:
  285. break;
  286. }
  287. }
  288. //---------------------------------------------------------------------------
  289. void __fastcall TITS00G0M::UpdateTrafficMissLinkInfo()
  290. {
  291. FMissLinkCnt = 0;
  292. FRAMETrafficMissLinkList1->UpdateList();
  293. UpdateAlarmStatus();
  294. }
  295. //---------------------------------------------------------------------------
  296. void __fastcall TITS00G0M::UpdateTrafficRrCongestInfo()
  297. {
  298. FRrCongestCnt = 0;
  299. FRAMERepeatCongestList1->UpdateList();
  300. UpdateAlarmStatus();
  301. }
  302. //---------------------------------------------------------------------------
  303. void __fastcall TITS00G0M::UpdateIncidentInfo()
  304. {
  305. FIncidentCnt = 0;
  306. FRAMEIncidentList1->UpdateList();
  307. UpdateAlarmStatus();
  308. if (ITS00GEO) ITS00GEO->UpdateIncidentStatus();
  309. }
  310. //---------------------------------------------------------------------------
  311. void __fastcall TITS00G0M::UpdateFacilityStatusInfo()
  312. {
  313. FRAMEFacilityStatusList1->RefreshList();
  314. if (ITS00GEO) ITS00GEO->UpdateFacilityStatus();
  315. }
  316. //---------------------------------------------------------------------------
  317. void __fastcall TITS00G0M::UpdateProcessStatusInfo()
  318. {
  319. FRAMEProcessStatusList1->RefreshList();
  320. }
  321. //---------------------------------------------------------------------------
  322. void __fastcall TITS00G0M::UpdateUtisStatusInfo()
  323. {
  324. FRAMEUtisStatusList1->RefreshList();
  325. }
  326. //---------------------------------------------------------------------------
  327. void __fastcall TITS00G0M::UpdateFacilityInfo()
  328. {
  329. FRAMEFacilityStatusList1->UpdateList();
  330. }
  331. //---------------------------------------------------------------------------
  332. void __fastcall TITS00G0M::FRAMEIncidentList1TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo,
  333. TMouseButton AButton, TShiftState AShift, bool &AHandled)
  334. {
  335. //돌발 클릭
  336. if (!ACellViewInfo) return;
  337. try {
  338. TcxDataController *pGDC = FRAMEIncidentList1->TvList->DataController;
  339. int nRow = pGDC->FocusedRecordIndex;
  340. if (nRow < 0) return;
  341. String sId = VarToStr(pGDC->Values[nRow][FRAMEIncidentList1->Column01->Index]);
  342. String sDx = VarToStr(pGDC->Values[nRow][FRAMEIncidentList1->Column07->Index]);
  343. String sDy = VarToStr(pGDC->Values[nRow][FRAMEIncidentList1->Column08->Index]);
  344. if (ITS00GEO) ITS00GEO->SelectObjectByPos(StrToFloat(sDx), StrToFloat(sDy), true);
  345. } catch(...) {}
  346. }
  347. //---------------------------------------------------------------------------
  348. void __fastcall TITS00G0M::FRAMERepeatCongestList1TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo,
  349. TMouseButton AButton, TShiftState AShift, bool &AHandled)
  350. {
  351. //반복정체구간 클릭
  352. if (!ACellViewInfo) return;
  353. try {
  354. TcxDataController *pGDC = FRAMERepeatCongestList1->TvList->DataController;
  355. int nRow = pGDC->FocusedRecordIndex;
  356. if (nRow < 0) return;
  357. String sSvcLinkId = VarToStr(pGDC->Values[nRow][FRAMERepeatCongestList1->Column01->Index]);
  358. if (ITS00GEO) ITS00GEO->SelectLinkById(2, sSvcLinkId, true);
  359. } catch(...) {}
  360. }
  361. //---------------------------------------------------------------------------
  362. void __fastcall TITS00G0M::FRAMETrafficMissLinkList1TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo,
  363. TMouseButton AButton, TShiftState AShift, bool &AHandled)
  364. {
  365. //소통정보 결측구간 클릭
  366. if (!ACellViewInfo) return;
  367. try {
  368. TcxDataController *pGDC = FRAMETrafficMissLinkList1->TvList->DataController;
  369. int nRow = pGDC->FocusedRecordIndex;
  370. if (nRow < 0) return;
  371. String sLinkId = VarToStr(pGDC->Values[nRow][FRAMETrafficMissLinkList1->Column02->Index]);
  372. if (ITS00GEO) ITS00GEO->SelectLinkById(1, sLinkId, true);
  373. } catch(...) {}
  374. }
  375. //---------------------------------------------------------------------------
  376. void __fastcall TITS00G0M::FRAMEFacilityStatusList1TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo,
  377. TMouseButton AButton, TShiftState AShift, bool &AHandled)
  378. {
  379. //시설물 위치이동
  380. if (!ACellViewInfo) return;
  381. try {
  382. TcxDataController *pGDC = FRAMEFacilityStatusList1->TvList->DataController;
  383. int nRow = pGDC->FocusedRecordIndex;
  384. if (nRow < 0) return;
  385. String sType = VarToStr(pGDC->Values[nRow][FRAMEFacilityStatusList1->Column01->Index]);
  386. FSelId = VarToStr(pGDC->Values[nRow][FRAMEFacilityStatusList1->Column02->Index]);
  387. MoveGisFacility(sType, FSelId);
  388. } catch(...) {}
  389. }
  390. //---------------------------------------------------------------------------
  391. void __fastcall TITS00G0M::MoveGisFacility(String AType, String AId)
  392. {
  393. if (AType == "CCTV")
  394. {
  395. TItsCctv *pObj = ItsFacilityManager->FCctvLists.Find(AId);
  396. if (pObj) if (ITS00GEO) ITS00GEO->SelectObjectByPos(pObj->X_CRDN.ToDouble(), pObj->Y_CRDN.ToDouble(), true);
  397. }
  398. else
  399. if (AType == "VMS")
  400. {
  401. TItsVms *pObj = ItsFacilityManager->FVmsLists.Find(AId);
  402. if (pObj) if (ITS00GEO) ITS00GEO->SelectObjectByPos(pObj->X_CRDN.ToDouble(), pObj->Y_CRDN.ToDouble(), true);
  403. }
  404. else
  405. if (AType == "RSE")
  406. {
  407. TItsRse *pObj = ItsFacilityManager->FRseLists.Find(AId);
  408. if (pObj) if (ITS00GEO) ITS00GEO->SelectObjectByPos(pObj->COORDX.ToDouble(), pObj->COORDY.ToDouble(), true);
  409. }
  410. }
  411. //---------------------------------------------------------------------------
  412. void __fastcall TITS00G0M::FRAMEFacilityStatusList1TvListCellClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo,
  413. TMouseButton AButton, TShiftState AShift, bool &AHandled)
  414. {
  415. if (AButton != mbRight) return;
  416. if (!ACellViewInfo) return;
  417. try {
  418. TcxDataController *pGDC = FRAMEFacilityStatusList1->TvList->DataController;
  419. int nRow = pGDC->FocusedRecordIndex;
  420. if (nRow < 0) return;
  421. String sType = VarToStr(pGDC->Values[nRow][FRAMEFacilityStatusList1->Column01->Index]);
  422. FSelId = VarToStr(pGDC->Values[nRow][FRAMEFacilityStatusList1->Column02->Index]);
  423. POINT p;
  424. GetCursorPos(&p);
  425. if (sType == "CCTV") pmuCctv->Popup(p.x, p.y);
  426. else
  427. if (sType == "VMS") pmuVms->Popup(p.x, p.y);
  428. else
  429. if (sType == "RSE") pmuRse->Popup(p.x, p.y);
  430. } catch(...) {}
  431. }
  432. //---------------------------------------------------------------------------
  433. void __fastcall TITS00G0M::pmuFacilityPopup(TObject *Sender)
  434. {
  435. TPopupMenu *pMenu = (TPopupMenu*)Sender;
  436. if (pMenu->Tag == 0)
  437. {
  438. MnuCctvId->Caption = "[CCTV] " + FSelId;
  439. }
  440. else
  441. if (pMenu->Tag == 1)
  442. {
  443. MnuVmsId->Caption = "[VMS] " + FSelId;
  444. }
  445. else
  446. if (pMenu->Tag == 2)
  447. {
  448. MnuRseId->Caption = "[RSE] " + FSelId;
  449. }
  450. }
  451. //---------------------------------------------------------------------------
  452. void __fastcall TITS00G0M::mnuFacilityMoveClick(TObject *Sender)
  453. {
  454. TMenuItem *pMenu = (TMenuItem*)Sender;
  455. Application->ProcessMessages();
  456. if (pMenu->Tag == 0)
  457. {
  458. MoveGisFacility("CCTV", FSelId);
  459. }
  460. else
  461. if (pMenu->Tag == 1)
  462. {
  463. MoveGisFacility("VMS", FSelId);
  464. }
  465. else
  466. if (pMenu->Tag == 2)
  467. {
  468. MoveGisFacility("RSE", FSelId);
  469. }
  470. }
  471. //---------------------------------------------------------------------------
  472. void __fastcall TITS00G0M::mnuFacilityPingClick(TObject *Sender)
  473. {
  474. if (ITS00GEO)
  475. {
  476. ITS00GEO->FSelId = FSelId;
  477. ITS00GEO->mnuFacilityPingClick(Sender);
  478. }
  479. }
  480. //---------------------------------------------------------------------------
  481. void __fastcall TITS00G0M::mnuStopImageClick(TObject *Sender)
  482. {
  483. if (ITS00GEO)
  484. {
  485. ITS00GEO->FSelId = FSelId;
  486. ITS00GEO->mnuStopImageClick(Sender);
  487. }
  488. }
  489. //---------------------------------------------------------------------------
  490. void __fastcall TITS00G0M::mnuCctvCamClick(TObject *Sender)
  491. {
  492. if (ITS00GEO)
  493. {
  494. ITS00GEO->FSelId = FSelId;
  495. ITS00GEO->mnuCctvCamClick(Sender);
  496. }
  497. }
  498. //---------------------------------------------------------------------------
  499. void __fastcall TITS00G0M::mnuVmsMsgClick(TObject *Sender)
  500. {
  501. if (ITS00GEO)
  502. {
  503. ITS00GEO->FSelId = FSelId;
  504. ITS00GEO->mnuVmsMsgClick(Sender);
  505. }
  506. }
  507. //---------------------------------------------------------------------------
  508. void __fastcall TITS00G0M::mnuVmsCamClick(TObject *Sender)
  509. {
  510. if (ITS00GEO)
  511. {
  512. ITS00GEO->FSelId = FSelId;
  513. ITS00GEO->mnuVmsCamClick(Sender);
  514. }
  515. }
  516. //---------------------------------------------------------------------------