FrmVmsCmraViewF.cpp 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #include "ITSSkinF.h"
  4. #include "FrmInitializeF.h"
  5. #include "DMDbF.h"
  6. #pragma hdrstop
  7. #include "CDSMonitoringObjF.h"
  8. #include "FrmVmsCmraViewF.h"
  9. #include "FrmCameraFullScreenF.h"
  10. #include "FrmCameraPlayerF.h"
  11. #include "FrmCameraScreenF.h"
  12. #include "FrmCameraScreenManagerF.h"
  13. //---------------------------------------------------------------------------
  14. #pragma package(smart_init)
  15. #pragma link "cxButtons"
  16. #pragma link "cxContainer"
  17. #pragma link "cxControls"
  18. #pragma link "cxEdit"
  19. #pragma link "cxGraphics"
  20. #pragma link "cxLookAndFeelPainters"
  21. #pragma link "cxLookAndFeels"
  22. #pragma link "cxProgressBar"
  23. #pragma link "dxSkinBlack"
  24. #pragma link "dxSkinBlue"
  25. #pragma link "dxSkinsCore"
  26. #pragma link "dxSkinsForm"
  27. #pragma link "cxLabel"
  28. #pragma link "cxDropDownEdit"
  29. #pragma link "cxMaskEdit"
  30. #pragma link "cxTextEdit"
  31. #pragma link "dxSkinMcSkin"
  32. #pragma resource "*.dfm"
  33. TFrmVmsCmraView *FrmVmsCmraView = NULL;
  34. //---------------------------------------------------------------------------
  35. __fastcall TFrmVmsCmraView::TFrmVmsCmraView(TComponent* Owner)
  36. : TForm(Owner)//TdxCustomRibbonForm(Owner)//TForm(Owner)
  37. {
  38. //CMM_SetFormPosition(g_AppCfg.bSaveForm);
  39. ITSSkin_Initialize(Application, g_AppCfg.sLang);
  40. ITSSkin_Caption(false);
  41. ITSSkin_Load(this);
  42. //CMM_LoadForm(g_sFormsDir, this);
  43. //DoubleBuffered = true;
  44. IsLoading = false;
  45. g_AppCfg.lMainWinHandle = (long)Handle;
  46. SetColorScheme(g_AppCfg.sSkinName);
  47. //PnlBack->ParentColor = false;
  48. //PnlBack->Color = clBlack;
  49. //PnlBack->Font->Color = clWhite;
  50. IsFormResizing = false;
  51. FOldWidth = Width;
  52. FOldHeight= Height;
  53. FCurrPage = NULL;
  54. }
  55. //---------------------------------------------------------------------------
  56. void __fastcall TFrmVmsCmraView::FormCreate(TObject *Sender)
  57. {
  58. Application->ShowMainForm = false;
  59. try {
  60. Application->Icon->LoadFromResourceName(((unsigned int)HInstance), "MAINICON");
  61. } catch(...) { ShowMessage("LoadFromResourceName failed"); }
  62. g_AppCfg.lMainWinHandle = (long)Handle;
  63. FrmCameraScreen = new TFrmCameraScreen(PnlBack);
  64. FrmCameraScreen->Parent = PnlBack;
  65. FrmCameraScreen->Show();
  66. Application->ShowMainForm = true;
  67. }
  68. //---------------------------------------------------------------------------
  69. void __fastcall TFrmVmsCmraView::FormShow(TObject *Sender)
  70. {
  71. Application->ProcessMessages();
  72. Refresh();
  73. TmrShow->Enabled = true;
  74. }
  75. //---------------------------------------------------------------------------
  76. void __fastcall TFrmVmsCmraView::FormClose(TObject *Sender, TCloseAction &Action)
  77. {
  78. CommClose();
  79. Action = caFree;
  80. }
  81. //---------------------------------------------------------------------------
  82. void __fastcall TFrmVmsCmraView::CommClose()
  83. {
  84. try
  85. {
  86. ITSSkin_Term();
  87. //CMM_SaveForm(g_sFormsDir, this);
  88. }
  89. catch(Exception &e)
  90. {
  91. }
  92. }
  93. //---------------------------------------------------------------------------
  94. void __fastcall TFrmVmsCmraView::SetColorScheme(String ASkinName)
  95. {
  96. dxSkinController1->SkinName = ASkinName;
  97. dxSkinController1->Refresh();
  98. }
  99. //---------------------------------------------------------------------------
  100. void __fastcall TFrmVmsCmraView::TmrShowTimer(TObject *Sender)
  101. {
  102. TmrShow->Enabled = false;
  103. FormInit();
  104. }
  105. //---------------------------------------------------------------------------
  106. void __fastcall TFrmVmsCmraView::FormInit()
  107. {
  108. ObjScreenManager = new TMonitoringScreenManager();
  109. ObjCtlrManager = new TMonitoringCtlrManager(enMonitoringCamera);
  110. FrmInitialize = new TFrmInitialize(this);
  111. FrmInitialize->ShowModal();
  112. FrmInitialize = NULL;
  113. IsLoading = true;
  114. CreateMonitoringScreen();
  115. PnlBack->ParentColor = true;
  116. //BtnMonitoringMngr->Visible = true;
  117. }
  118. //---------------------------------------------------------------------------
  119. void __fastcall TFrmVmsCmraView::ApplicationEvents1Minimize(TObject *Sender)
  120. {
  121. //영상표출을 정지한다.
  122. if (FrmCameraScreen && IsLoading) FrmCameraScreen->Stop();
  123. }
  124. //---------------------------------------------------------------------------
  125. void __fastcall TFrmVmsCmraView::ApplicationEvents1Restore(TObject *Sender)
  126. {
  127. //영상표출을 재상영한다.
  128. if (FrmCameraScreen && IsLoading) FrmCameraScreen->Play();
  129. }
  130. //---------------------------------------------------------------------------
  131. void __fastcall TFrmVmsCmraView::FormResize(TObject *Sender)
  132. {
  133. if (IsFormResizing == false)
  134. {
  135. RecalFormSize();
  136. }
  137. }
  138. //---------------------------------------------------------------------------
  139. void __fastcall TFrmVmsCmraView::WMEnterSizeMove(TMessage &Msg)
  140. {
  141. IsFormResizing = true;
  142. }
  143. //---------------------------------------------------------------------------
  144. void __fastcall TFrmVmsCmraView::WMExitSizeMove(TMessage &Msg)
  145. {
  146. IsFormResizing = false;
  147. RecalFormSize();
  148. }
  149. //---------------------------------------------------------------------------
  150. void __fastcall TFrmVmsCmraView::RecalFormSize()
  151. {
  152. int nNewW = Width;
  153. int nNewH = Height;
  154. if (nNewW == FOldWidth && nNewH == FOldHeight)
  155. {
  156. return;
  157. }
  158. Application->ProcessMessages();
  159. FOldWidth = nNewW;
  160. FOldHeight= nNewH;
  161. if (FrmCameraScreen && IsLoading) FrmCameraScreen->RecalFormSize();
  162. }
  163. //---------------------------------------------------------------------------
  164. void __fastcall TFrmVmsCmraView::CreateMonitoringScreen()
  165. {
  166. Application->ProcessMessages();
  167. CbScreenList->Properties->OnChange = NULL;
  168. try
  169. {
  170. LockWindowUpdate(Handle);
  171. CbScreenList->Properties->Items->Clear();
  172. FOR_STL(TMonitoringScreen*, pObj, ObjScreenManager->FLists)
  173. {
  174. CbScreenList->Properties->Items->Add(" " + pObj->NAME + " ");
  175. }
  176. CbScreenList->ItemIndex = 0;
  177. }
  178. __finally
  179. {
  180. LockWindowUpdate(0);
  181. CbScreenList->Properties->OnChange = CbScreenListPropertiesChange;
  182. ResetScreenForm();
  183. }
  184. }
  185. //---------------------------------------------------------------------------
  186. void __fastcall TFrmVmsCmraView::CbScreenListPropertiesChange(TObject *Sender)
  187. {
  188. EdFocus->SetFocus();
  189. ResetScreenForm();
  190. }
  191. //---------------------------------------------------------------------------
  192. void __fastcall TFrmVmsCmraView::ResetScreenForm()
  193. {
  194. if (FrmCameraScreen && IsLoading) FrmCameraScreen->ResetScreenForm(CbScreenList->Text.Trim());
  195. }
  196. //---------------------------------------------------------------------------
  197. void __fastcall TFrmVmsCmraView::BtnMonitoringMngrClick(TObject *Sender)
  198. {
  199. if (!DMDb->Connect())
  200. {
  201. if (g_AppCfg.sLang != "kr")
  202. {
  203. Application->MessageBox(L"Database connection failed.\r\n\r\nPlease restart the program.",
  204. L"Database connection error !!!",
  205. MB_OK|MB_ICONERROR);
  206. }
  207. else
  208. {
  209. Application->MessageBox(L"데이터베이스 연결에 실패하였습니다.\r\n\r\n프로그램을 다시 시작하십시요.",
  210. L"데이터베이스 연결 오류!!!",
  211. MB_OK|MB_ICONERROR);
  212. }
  213. return;
  214. }
  215. TFrmCameraScreenManager *pForm = new TFrmCameraScreenManager(this);
  216. pForm->ShowModal();
  217. bool bUpdate = pForm->FUpdate;
  218. if(pForm)
  219. {
  220. delete pForm;
  221. pForm = NULL;
  222. }
  223. if (bUpdate)
  224. {
  225. ObjCtlrManager->LoadMonitoringFormFromDb(DMDb->GetConnection());
  226. CreateMonitoringScreen();
  227. }
  228. DMDb->Close();
  229. EdFocus->SetFocus();
  230. }
  231. //---------------------------------------------------------------------------