//--------------------------------------------------------------------------- #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "AppGlobalF.h" #include "ITSLangTransF.h" #include "CDSFontF.h" #include "CDSVmsIfscF.h" #include "CDSAtmpF.h" #include "CDSParkF.h" #include "CDSVmsFormF.h" #pragma hdrstop #include "VMSM500MF.h" #include "VMSM510MF.h" #include "VMSM520MF.h" #include "VMSM530MF.h" #include "VMSM540MF.h" #include "VMSM550MF.h" #include "VMSM560MF.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 "cxCheckBox" #pragma link "cxImage" #pragma link "cxButtonEdit" #pragma link "cxBlobEdit" #pragma link "VmsDesignerF" #pragma link "cxColorComboBox" #pragma link "cxCalc" #pragma resource "*.dfm" TVMSM500M *VMSM500M = NULL; //--------------------------------------------------------------------------- __fastcall TVMSM500M::TVMSM500M(TComponent* Owner) : TForm(Owner) { LangTrans->Translate(this, ITSDb_GetConnection()); ITSSkin_Load(this); CMM_LoadForm(g_sFormsDir, this); FUpdate= false; FTitle = Caption;//"VMS ¹®ÀÚ½Ä Æû°ü¸®"; FListSymb = new TList; EditMode = false; PgEdit->ActivePage = TsEdit; PgFormTab->ActivePage = TsForm; //BtnSaveImgFile->Caption = "Save form image"; //BtnSaveImgFile->Hint = "Save the form as an image file."; FSelObjType = eSelObjNone; MyUseManager = new TVmsObjUseManager(); //TvList->FilterRow->ApplyChanges = fracDelayed;//fracImmediately; TvList->OptionsBehavior->ShowLockedStateImageOptions->Filtering = lsimNever; BtnLime->LookAndFeel->NativeStyle = false; BtnLime->LookAndFeel->SkinName = ""; BtnYellow->LookAndFeel->NativeStyle = false; BtnYellow->LookAndFeel->SkinName = ""; BtnRed->LookAndFeel->NativeStyle = false; BtnRed->LookAndFeel->SkinName = ""; BtnObjLime->LookAndFeel->NativeStyle = false; BtnObjLime->LookAndFeel->SkinName = ""; BtnObjYellow->LookAndFeel->NativeStyle = false; BtnObjYellow->LookAndFeel->SkinName = ""; BtnObjRed->LookAndFeel->NativeStyle = false; BtnObjRed->LookAndFeel->SkinName = ""; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CommClose() { try { if (MyUseManager) { delete MyUseManager; MyUseManager = NULL; } if (m_pEdtDesigner) { delete m_pEdtDesigner; m_pEdtDesigner = NULL; } APP_DelVmsSizeCombo(CbSizeType); SAFE_DELETE(MyVmsObjTypeManager); ClearSymbloList(); SAFE_DELETE(FListSymb); CMM_SaveForm(g_sFormsDir, this); } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::FormCreate(TObject *Sender) { MyVmsObjTypeManager = new TVmsObjTypeManager(); m_pEdtDesigner = new TVmsFormDesigner(PnlEditForm); FOR_STL(TCDSFontColor*, pObj, CDSFontManager->FColors) { m_pEdtDesigner->InitFontColor(pObj->VMS_FONT_COLR_CD, (TColor)pObj->VMS_FONT_COLR_VAL); } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::FormShow(TObject *Sender) { ::SendMessage(ReForm->Handle, EM_SETLANGOPTIONS, 0, (LPARAM)(::SendMessage(ReForm->Handle, EM_GETLANGOPTIONS, 0, 0) & ~IMF_AUTOFONT)); ::SendMessage(ReFormTemp->Handle, EM_SETLANGOPTIONS, 0, (LPARAM)(::SendMessage(ReFormTemp->Handle, EM_GETLANGOPTIONS, 0, 0) & ~IMF_AUTOFONT)); Refresh(); FormInit(); ChangeEditMode(1); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::FormInit() { //TvList->OptionsView->NoDataToDisplayInfoText = "<µî·ÏµÇ¾î ÀÖ´Â Æû Á¤º¸°¡ ¾ø½À´Ï´Ù>"; CheckVideoStreamImage(); MyVmsObjTypeManager->LoadFromDb(); m_pEdtDesigner->ApplicationHandle = (long)Handle; //VMS»çÀÌÁî APP_FillVmsSizeType(CbSizeType, false); //Æû»ö»ó CbFormColor->Items->Clear(); CbFormColor->Items->AddObject("", (TObject*)clBlack); CbFormColor->Items->AddObject("", (TObject*)clRed); CbFormColor->Items->AddObject("", (TObject*)clLime); CbFormColor->Items->AddObject("", (TObject*)clYellow); CbFormColor->ItemIndex = 0; CbFormColor1->Items->Clear(); CbFormColor1->Items = CbFormColor->Items; CbFormColor1->ItemIndex = 0; //ÆûÀ¯Çü FillVmsFormType(CbFormKind); //Ç¥Ãâ¹æ¹ý FillVmsFormDispMode(CbFormDispMode); //Ç¥Ãâ¹æÇâ FillVmsFormDispDir(CbFormDispDir); FormObjectInit(); ReForm->Paragraph->Numbering = nsNone; ReForm->Paragraph->Alignment = (TAlignment)2; FNewDb = false; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::FormObjectInit() { //TvObjList->OptionsView->NoDataToDisplayInfoText = "<µî·ÏµÇ¾î ÀÖ´Â °´Ã¼ Á¤º¸°¡ ¾ø½À´Ï´Ù>"; m_bEdit = false; PnlEdtBack->Left = 6; PnlEdtBack->Top = 4; PnlRePreview->Left = 4; PnlRePreview->Top = 4; //ReForm->Left = 6; //ReForm->Top = 4; //°´Ã¼¹è°æ»ö»ó CbBkColor->Items->Clear(); CbBkColor->Items->AddObject("", (TObject*)clBlack); CbBkColor->Items->AddObject("", (TObject*)clRed); CbBkColor->Items->AddObject("", (TObject*)clLime); CbBkColor->Items->AddObject("", (TObject*)clYellow); CbBkColor->ItemIndex = 0; //¹®ÀÚ¿­»ö»ó CbFontColor->Items->Clear(); #if 0 CbFontColor->Items->AddObject("", (TObject*)clBlack); CbFontColor->Items->AddObject("", (TObject*)clRed); CbFontColor->Items->AddObject("", (TObject*)clLime); CbFontColor->Items->AddObject("", (TObject*)clYellow); #endif FOR_STL(TCDSFontColor*, pObj, CDSFontManager->FColors) { CbFontColor->Items->AddObject("", (TObject*)pObj->VMS_FONT_COLR_VAL); } CbFontColor->ItemIndex = 0; //Á÷Á¢ÀÔ·Â ¹®ÀÚ¿­»ö»ó CbFontColorRe->Items->Clear(); #if 0 CbFontColorRe->Items->AddObject("", (TObject*)clBlack); CbFontColorRe->Items->AddObject("", (TObject*)clRed); CbFontColorRe->Items->AddObject("", (TObject*)clLime); CbFontColorRe->Items->AddObject("", (TObject*)clYellow); #endif CbFontColorRe->Items = CbFontColor->Items; CbFontColorRe->ItemIndex = 0; //VMS Font FillVmsFont(CbFontName); CbFontName->ItemIndex = 0; FillVmsFont(CbFontNameRe); CbFontNameRe->ItemIndex = 0; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnCloseClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::FormClose(TObject *Sender, TCloseAction &Action) { CommClose(); VMSM500M = NULL; Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::FormCloseQuery(TObject *Sender, bool &CanClose) { if (FUpdate) { CComm_VmsFormUpdate(); POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0); } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnEditClick(TObject *Sender) { bool singleForm = false; int nFormTypeCd = m_sFormTypeCd.ToIntDef(11); if (nFormTypeCd == 70 || nFormTypeCd == 80) { singleForm = true; //µ¿¿µ»ó, ½ºÆ®¸®¹Ö ¿µ»ó Æû } if (BtnEdit->Caption == FrmLang->lblEdit->Caption)//"ÆíÁý") { ChangeEditMode(0); FNewDb = false; if (singleForm) { if (PnlCmd2->Enabled == true) { //PnlCmd2->Enabled = false; } } else { if (PnlCmd2->Enabled == false) { PnlCmd2->Enabled = true; } } if (PgFormTab->ActivePage != TsFormObject) { PgFormTab->ActivePage = TsFormObject; } } else { String sId = EdFormId->Text; ChangeEditMode(1); if (CMM_FindGridData(TvList->DataController, sId, Col01->Index) >= 0) { CMM_SetGridRow(CxList, TvList, sId, Col01->Index); DisplayInfo(); } } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::ChangeEditMode(int AEdit) { bool bEnabled = false; CbFormKind->Enabled = false; switch(AEdit) { case 0: //ÆíÁý¹öưŬ¸¯ { BtnEdit->Enabled = true; BtnInsert->Enabled = false; BtnDelete->Enabled = false; BtnCopyAdd->Enabled = false; BtnCopyAdd212->Enabled = false; BtnSave->Enabled = true; BtnEdit->Caption = FrmLang->lblCancel->Caption;//"Ãë¼Ò"; BtnEdit->Hint = FrmLang->lblCancel->Hint;//µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò"; EditMode = true; } break; case 1: //ÆíÁý[Ãë¼Ò]¹öưŬ¸¯ { FormClear(); //È­¸éÀ» ¸ðµÎ Áö¿î´Ù. BtnEdit->Enabled = false; BtnInsert->Enabled = true; BtnDelete->Enabled = false; BtnCopyAdd->Enabled = false; BtnCopyAdd212->Enabled = false; BtnSave->Enabled = false; BtnEdit->Caption = FrmLang->lblEdit->Caption;//"ÆíÁý"; BtnEdit->Hint = FrmLang->lblEdit->Hint;//µ¥ÀÌÅÍ ÆíÁý"; //bEnabled = true; EditMode = false; } break; case 2: //Ãß°¡ { BtnEdit->Enabled = true; BtnInsert->Enabled = false; BtnDelete->Enabled = false; BtnCopyAdd->Enabled = false; BtnCopyAdd212->Enabled = false; BtnSave->Enabled = true; BtnEdit->Caption = FrmLang->lblCancel->Caption;//"Ãë¼Ò"; BtnEdit->Hint = FrmLang->lblCancel->Hint;//µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò"; EditMode = true; //CbFormKind->Enabled = true; } break; case 3: //¼öÁ¤¸ðµå { BtnEdit->Enabled = true; BtnInsert->Enabled = true; BtnDelete->Enabled = true; BtnCopyAdd->Enabled = true; BtnCopyAdd212->Enabled = true; BtnSave->Enabled = false; BtnEdit->Caption = FrmLang->lblEdit->Caption;//"ÆíÁý"; BtnEdit->Hint = FrmLang->lblEdit->Hint;//µ¥ÀÌÅÍ ÆíÁý"; bEnabled = true; EditMode = false; } break; } BtnSaveImgFile->Enabled = false; if (ImgForm->Picture->Bitmap != NULL) { if (ImgForm->Picture->Bitmap->Height != 0) { BtnSaveImgFile->Enabled = true; } } if (AEdit == 0 || AEdit == 2) { PnlCmd1->Enabled = true; PnlCmd2->Enabled = true; GrpList->Enabled = false; } else { PnlCmd1->Enabled = false; PnlCmd2->Enabled = false; GrpList->Enabled = true; } ChangeEditModeObject(AEdit); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::ChangeEditModeObject(int AEdit) { } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnInsertClick(TObject *Sender) { int nFormId; if (!GetNextVmsFormId(nFormId)) { Application->MessageBox(lblText1->Caption.c_str(),//L"»õ·Î¿î VMS ÆûÁ¤º¸¸¦ »ý¼ºÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.\r\nÇÁ·Î±×·¥ Á¾·áÈÄ¿¡ ´Ù½Ã ½ÃµµÇØ º¸¼¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } TVMSM520M *pSelForm = new TVMSM520M(this); pSelForm->ShowModal(); String sFormType = pSelForm->EdNmbr->Text.Trim(); bool bSelected = pSelForm->m_bSelected; delete pSelForm; pSelForm = NULL; if (!bSelected) { return; } if (sFormType == "") { return; } int nFormDispDir = 0; if (sFormType.ToIntDef(0) == eFormTp_evehicle) { TVMSM560M *pEVehicleForm = new TVMSM560M(this); pEVehicleForm->ShowModal(); String sFormSubType = pEVehicleForm->EdNmbr->Text.Trim(); bool bSelected = pEVehicleForm->m_bSelected; delete pEVehicleForm; pEVehicleForm = NULL; if (!bSelected) { return; } nFormDispDir = sFormSubType.ToIntDef(0); CbFormSubType->ItemIndex = nFormDispDir; } FormClear(); EdFormId->Text = String(nFormId); ChangeEditMode(2); FNewDb = true; //ÆûÀ¯ÇüÀ» ¼³Á¤ APP_SetCode(CbFormKind, sFormType); CbFormDispMode->ItemIndex = 0; CbFormDispDir->ItemIndex = nFormDispDir; bool singleForm = false; //ÆûÀ¯Çü¿¡ ¸Â°Ô ±âº» ÆûÀ» »ý¼ºÇÏÀÚ switch(sFormType.ToIntDef(11)) { case eFormTp_traf_1:// ' ¼ÒÅë»óȲ(1´Ü) MakeDefTrafficForm(1); break; case eFormTp_traf_2:// ' ¼ÒÅë»óȲ(2´Ü) MakeDefTrafficForm(2); break; case eFormTp_traf_3:// ' ¼ÒÅë»óȲ(3´Ü) MakeDefTrafficForm(3); break; case eFormTp_traf_4:// ' ¼ÒÅë»óȲ(4´Ü) MakeDefTrafficForm(4); break; case eFormtp_figure:// ' ¼ÒÅë»óȲ(µµÇü½Ä) break; case eFormTp_congest:// ' Á¤Ã¼¼ÒÅë»óȲ //MakeDefTrafficForm(6); break; case eFormTp_incident:// ' µ¹¹ß¹®¾È break; case eFormTp_gongsa:// ' °ø»ç/Çà»ç¹®¾È break; case eFormTp_hongbo:// ' È«º¸¹®¾È break; case eFormTp_deture:// ' ¿ìȸµµ·Î break; case eFormTp_safe:// ' Àç³­¾ÈÀü break; case eFormTp_video:// ' µ¿¿µ»ó MakeDefVideoStreamForm(70); singleForm = true; break; case eFormTp_stream:// ' ½ºÆ®¸®¹Ö¿µ»ó MakeDefVideoStreamForm(80); singleForm = true; break; case eFormTp_atmp:// ' ´ë±âȯ°æ(ÁÁÀ½) //MakeDefVideoStreamForm(90); break; case eFormTp_park:// ' ÁÖÂ÷Á¤º¸ break; //TODO: 2023PRJ S case eFormTp_evehicle: // ±ä±ÞÂ÷·®¿ì¼±½ÅÈ£ break; //TODO: 2023PRJ E default: //APP_SetCode(CbFormKind, "11"); MakeDefTrafficForm(1); break; } if (singleForm) { if (PnlCmd2->Enabled == true) { //PnlCmd2->Enabled = false; } } else { if (PnlCmd2->Enabled == false) { PnlCmd2->Enabled = true; } } if (PgFormTab->ActivePage != TsFormObject) { PgFormTab->ActivePage = TsFormObject; } EdFormName->SetFocus(); } //--------------------------------------------------------------------------- bool __fastcall TVMSM500M::AddDefFormObject(String AFontName, int AFontSize, String AFontColor, int AObjType, String AText, int ASize, int APosX, int APosY, int AAlign/*=0*/) { TVmsFormObject *pObj; //1´Ü ¼ÒÅëÁ¤º¸ pObj = m_pEdtDesigner->AddObject(odtText); if (!pObj) return false; pObj->EditMode = true; pObj->ObjKind = OBJKIND_TEXT; pObj->ObjSeq = m_pEdtDesigner->GetNewObjectSeq(); pObj->ObjType = String(AObjType); pObj->Text = AText; pObj->ObjSize = pObj->Text.Length();//ASize; //Pixel pObj->BkColorCode = "0"; //Balck, m_pEdtDesigner->BkColorCode; pObj->Blink = false; pObj->FontName = AFontName; pObj->FontNameCode = APP_GetCodeIdByName(CbFontName, AFontName); pObj->FontColorCode = AFontColor; //0:Black,1:Red,2:Green,3:Yellow pObj->FontSize = AFontSize; pObj->FontBold = true; pObj->TextAlign = AAlign; //(0:left, 1:right, 2:center pObj->SetPos(APosX, APosY); pObj->Show(); AddObjectToList(pObj, true); return true; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::MakeDefTrafficForm(int ARows) { //0:Black,1:Red, 2:Green, 3:Yellow //0:left, 1:right, 2:center //1´Ü ¼ÒÅëÁ¤º¸ if (g_AppCfg.sLang == "kr") { switch(ARows) { case 1: AddDefFormObject("±¼¸²Ã¼", 18, "3", 12, "@½ÃÁ¡¸í", 160, 16, 7, 1); //½ÃÁ¡¸í AddDefFormObject("±¼¸²Ã¼", 18, "3", 13, "@Á¾Á¡¸í", 160, 213, 7, 0); //Á¾Á¡¸í AddDefFormObject("±¼¸²Ã¼", 18, "3", 14, "@¼ÒÅë»óȲ", 112, 64, 35, 2); //¼ÒÅë»óȲ AddDefFormObject("±¼¸²Ã¼", 18, "2", 15, "@00ºÐ", 80, 213, 35, 0); //ÅëÇà½Ã°£ break; case 2: AddDefFormObject("±¼¸²Ã¼", 16, "3", 0, "ÇöÀ§Ä¡", 100, 31, 7); //ÇöÀ§Ä¡ AddDefFormObject("±¼¸²Ã¼", 16, "3", 13, "@Á¾Á¡¸í1", 100, 133, 7); //Á¾Á¡¸í1 AddDefFormObject("±¼¸²Ã¼", 16, "3", 23, "@Á¾Á¡¸í2", 100, 265, 7); //Á¾Á¡¸í2 AddDefFormObject("±¼¸²Ã¼", 16, "2", 15, "@01ºÐ", 80, 133, 35); //ÅëÇà½Ã°£1 AddDefFormObject("±¼¸²Ã¼", 16, "2", 25, "@02ºÐ", 80, 265, 35); //ÅëÇà½Ã°£2 break; case 3: AddDefFormObject("±¼¸²Ã¼", 16, "3", 0, "ÇöÀçÀ§Ä¡ºÎÅÍ", 126, 7, 7); //ÇöÀçÀ§Ä¡ºÎÅÍ AddDefFormObject("±¼¸²Ã¼", 16, "3", 13, "@Á¾Á¡¸í1", 85, 38, 50); //Á¾Á¡¸í1 AddDefFormObject("±¼¸²Ã¼", 16, "2", 15, "@1ºÐ", 80, 161, 50); //ÅëÇà½Ã°£1 AddDefFormObject("±¼¸²Ã¼", 16, "3", 14, "@»óȲ1", 53, 217, 50); //¼ÒÅë»óȲ1 AddDefFormObject("±¼¸²Ã¼", 16, "3", 23, "@Á¾Á¡¸í2", 85, 38, 82); //Á¾Á¡¸í2 AddDefFormObject("±¼¸²Ã¼", 16, "2", 25, "@2ºÐ", 80, 161, 82); //ÅëÇà½Ã°£2 AddDefFormObject("±¼¸²Ã¼", 16, "3", 24, "@»óȲ2", 53, 217, 82); //¼ÒÅë»óȲ2 AddDefFormObject("±¼¸²Ã¼", 16, "3", 33, "@Á¾Á¡¸í3", 85, 38, 117); //Á¾Á¡¸í3 AddDefFormObject("±¼¸²Ã¼", 16, "2", 35, "@3ºÐ", 80, 161, 117); //ÅëÇà½Ã°£3 AddDefFormObject("±¼¸²Ã¼", 16, "3", 34, "@»óȲ3", 53, 217, 117); //¼ÒÅë»óȲ3 break; case 6: AddDefFormObject("±¼¸²Ã¼", 18, "3", 18, "@ÁöÁ¡¸í", 300, 18, 20); //ÁöÁ¡¸í AddDefFormObject("±¼¸²Ã¼", 18, "3", 0, "ÁÖº¯", 126, 153, 20); //ÁÖº¯ AddDefFormObject("±¼¸²Ã¼", 18, "1", 0, "Á¤Ã¼ ±Ø½É", 126, 222, 20); //Á¤Ã¼±Ø½É break; } } else { String sFontName = lblFontName->Caption; switch(ARows) { case 1: AddDefFormObject(sFontName, 18, "3", 12, "@StartName", 160, 16, 7); //@½ÃÁ¡¸í @StartName AddDefFormObject(sFontName, 18, "3", 13, "@EndName", 160, 213, 7); //@Á¾Á¡¸í @EndName AddDefFormObject(sFontName, 18, "3", 14, "@Congest", 112, 64, 35); //@¼ÒÅë»óȲ @Congest AddDefFormObject(sFontName, 18, "2", 15, "@00Min", 80, 213, 35); //@ÅëÇà½Ã°£ @00Min break; case 2: AddDefFormObject(sFontName, 16, "3", 0, "Location", 100, 31, 7); //ÇöÀ§Ä¡ Location AddDefFormObject(sFontName, 16, "3", 13, "@EndName1", 100, 133, 7); //Á¾Á¡¸í1 EndName1 AddDefFormObject(sFontName, 16, "3", 23, "@EndName2", 100, 265, 7); //Á¾Á¡¸í2 EndName2 AddDefFormObject(sFontName, 16, "2", 15, "@01Min", 80, 133, 35); //ÅëÇà½Ã°£1 01Min AddDefFormObject(sFontName, 16, "2", 25, "@02Min", 80, 265, 35); //ÅëÇà½Ã°£2 02Min break; case 3: AddDefFormObject(sFontName, 16, "3", 0, "From Location", 126, 7, 7); //ÇöÀçÀ§Ä¡ºÎÅÍ From Location AddDefFormObject(sFontName, 16, "3", 13, "@EndName1", 85, 38, 50); //Á¾Á¡¸í1 EndName1 AddDefFormObject(sFontName, 16, "2", 15, "@1Min", 80, 161, 50); //ÅëÇà½Ã°£1 1Min AddDefFormObject(sFontName, 16, "3", 14, "@Congest1", 53, 217, 50); //¼ÒÅë»óȲ1 Congest1 AddDefFormObject(sFontName, 16, "3", 23, "@EndName2", 85, 38, 82); //Á¾Á¡¸í2 EndName2 AddDefFormObject(sFontName, 16, "2", 25, "@2Min", 80, 161, 82); //ÅëÇà½Ã°£2 2Min AddDefFormObject(sFontName, 16, "3", 24, "@Congest2", 53, 217, 82); //¼ÒÅë»óȲ2 Congest2 AddDefFormObject(sFontName, 16, "3", 33, "@EndName3", 85, 38, 117); //Á¾Á¡¸í3 EndName3 AddDefFormObject(sFontName, 16, "2", 35, "@3Min", 80, 161, 117); //ÅëÇà½Ã°£3 3Min AddDefFormObject(sFontName, 16, "3", 34, "@Congest3", 53, 217, 117); //¼ÒÅë»óȲ3 Congest3 break; case 6: AddDefFormObject(sFontName, 18, "3", 18, "@SpotName", 300, 18, 20); //@ÁöÁ¡¸í @SpotName AddDefFormObject(sFontName, 18, "3", 0, "Around", 126, 153, 20); //ÁÖº¯ Around AddDefFormObject(sFontName, 18, "1", 0, "Congest Zam", 126, 222, 20); //Á¤Ã¼±Ø½É Congest Zam break; } } #if 0 (String AFontName, int AFontSize, String AFontColor, int AObjType, String AText, int ASize, int APosX, int APosY) #endif } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnDeleteClick(TObject *Sender) { int nIdx = TvList->DataController->FocusedRecordIndex; if (nIdx < 0) return; String sFormId = EdFormId->Text; if (sFormId.IsEmpty()) { Application->MessageBox(lblText2->Caption.c_str(),//L"VMS Æû »èÁ¦\r\n»èÁ¦ÇÒ VMS ÆûÀ» ¸ñ·Ï¿¡¼­ ¼±ÅÃÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } if (!CheckVmsFormUse(sFormId)) return; String sMsg; sMsg = lblText3->Caption + ": " + sFormId;//"VMS Æû ID: " + sFormId; sMsg+= "\r\n" + lblText4->Caption;//"¼±ÅÃÇϽŠVMS Æû Á¤º¸¸¦ »èÁ¦ÇϽðڽÀ´Ï±î?"; if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) return; if (DelVmsForm(sFormId)) { FUpdate = true; Application->MessageBox(lblText5->Caption.c_str(),//L"VMS Æû »èÁ¦\r\nVMS ÆûÁ¤º¸¸¦ »èÁ¦ ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); FormClear(); ChangeEditMode(1); LoadVmsForm(); POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0); } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnSaveImgFileClick(TObject *Sender) { if (EdFormId->Text == "") return; SaveDialog->Title = FTitle; SaveDialog->InitialDir = ExtractFilePath(Application->ExeName); SaveDialog->Filter = "Bitmap image Files (*.bmp)|*.bmp"; SaveDialog->FileName = EdFormId->Text + ".bmp"; if (SaveDialog->Execute()) { try { String sFileName = SaveDialog->FileName; int iRet = sFileName.Pos(".bmp"); if (iRet == 0) { sFileName = SaveDialog->FileName + ".bmp"; } ImgForm->Picture->SaveToFile(sFileName); } catch (Exception &exception) { Application->ShowException(&exception); } } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::ClearSymbloList() { for(int ii = 0; ii < FListSymb->Count; ii++) { Graphics::TBitmap *bitmap = (Graphics::TBitmap *)FListSymb->Items[ii]; delete bitmap; } FListSymb->Clear(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo, TMouseButton AButton, TShiftState AShift, bool &AHandled) { if (!ACellViewInfo) return; DisplayInfo(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::TvListFocusedRecordChanged(TcxCustomGridTableView *Sender, TcxCustomGridRecord *APrevFocusedRecord, TcxCustomGridRecord *AFocusedRecord, bool ANewItemRecordFocusingChanged) { if (!AFocusedRecord) return; DisplayInfo(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbSizeTypePropertiesChange(TObject *Sender) { EdSizeType->Text = CbSizeType->Text; #if 0 TVmsSizeType *pVmsSizeType = APP_GetVmsSizeTypeObject(CbSizeType); if (pVmsSizeType) { if (pVmsSizeType->TypeCd == "VMP2") { if (CbFontColor->Visible == true) CbFontColor->Visible = false; } else { if (CbFontColor->Visible == false) CbFontColor->Visible = true; } } #endif BtnSearchClick(NULL); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnSearchClick(TObject *Sender) { RefreshData(); EdFocus->SetFocus(); ChangeEditMode(1); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::RefreshData() { // °Ë»öÁ¶°Ç¿¡ ÀÇÇÑ ¸µÅ© µ¥ÀÌÅÍ Á¶È¸ TvList->DataController->Filter->Clear(); FormClear(); LoadVmsForm(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::FormClear() { FSelObjType = eSelObjNone; FSelIdx = -1; ImgForm->Picture->Bitmap->FreeImage(); ImgForm->Picture->Bitmap = NULL; EdFormId->Clear(); EdFormName->Clear(); EdFormDesc->Clear(); CbFormKind->ItemIndex = 0; CbFormDispMode->ItemIndex = 1; CbFormDispDir->ItemIndex = 3; CbFormColor->ItemIndex = 0; FormObjectClear(); FNewDb = false; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::FormObjectClear() { m_pEdtDesigner->Clear(); CMM_ClearGridTableView(TvObjList); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::DisplayInfo() { TcxTabSheet* pActive = PgFormTab->ActivePage; try { LockWindowUpdate(Handle); FormClear(); PgEdit->ActivePage = TsEdit; FSelIdx = TvList->DataController->FocusedRecordIndex; if( FSelIdx <= -1 ) return; DisplayFormInfo(FSelIdx); ChangeEditMode(3); } __finally { if (PgFormTab->ActivePage != pActive) PgFormTab->ActivePage = pActive; LockWindowUpdate(0); } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::DisplayFormInfo(int AIdx) { TcxGridDataController *pDc = TvList->DataController; if (AIdx < FListSymb->Count) { Graphics::TBitmap *bitmap = (Graphics::TBitmap*)FListSymb->Items[AIdx]; ImgForm->Picture->Bitmap->Assign(bitmap); } EdSizeType->Text = CbSizeType->Text; EdFormId->Text = VarToStr(pDc->Values[AIdx][Col01->Index]); EdFormName->Text = VarToStr(pDc->Values[AIdx][Col02->Index]); EdFormDesc->Text = VarToStr(pDc->Values[AIdx][Col03->Index]); EdFormName1->Text = EdFormName->Text; EdFormDesc1->Text = EdFormDesc->Text; CbFormColor->ItemIndex = VarToStr(pDc->Values[AIdx][Col08->Index]).ToIntDef(0); CbFormColor1->ItemIndex = CbFormColor->ItemIndex; m_sFormTypeCd = VarToStr(pDc->Values[AIdx][Col09->Index]); APP_SetCode(CbFormKind, m_sFormTypeCd); APP_SetCode(CbFormDispMode, VarToStr(pDc->Values[AIdx][Col06->Index])); APP_SetCode(CbFormDispDir, VarToStr(pDc->Values[AIdx][Col07->Index])); if (m_sFormTypeCd.ToIntDef(0) == eFormTp_evehicle) { CbFormSubType->ItemIndex = VarToStr(pDc->Values[AIdx][Col07->Index]).ToIntDef(0); } m_pEdtDesigner->BkColorCode = String(CbFormColor->ItemIndex); LoadFormObjectInfo(EdFormId->Text, m_pEdtDesigner, m_sFormTypeCd); SelObjectListData(); MyUseManager->LoadFromDb(EdFormId->Text); } //--------------------------------------------------------------------------- String __fastcall TVMSM500M::FindObjectTypeName(String AFormType, String ATypeCd) { String sReturn = "--???--"; TVmsObjType *pObj = MyVmsObjTypeManager->FLists.Find(AFormType.ToIntDef(-1)); if (!pObj) return sReturn; TFormObjType *pType = pObj->FLists.Find(ATypeCd.ToIntDef(-1)); if (pType) sReturn = pType->NAME; return sReturn; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::FnFormObjectSelected(TMessage &Msg) { #if 0 static long sLParam = -1; long cLParam = (long)Msg.LParam; if (sLParam == cLParam) { return; } sLParam = cLParam; #endif m_bEdit = true; try { ImgDesc99->Visible = false; Lbl99->Visible = false; Cb99->Visible = false; //Cb99->ItemIndex = 0; PnlIfsc->Visible = false; EdIfscId->Text = ""; TVmsFormObject *pObj = (TVmsFormObject *)Msg.LParam; if (!pObj) return; if (!pObj->Selected) return; EdObjSeq->Text = String(pObj->ObjSeq); int nObjType = pObj->ObjType.ToIntDef(0); if (nObjType == 91 || //@ÃàÅëÇà½Ã°£(°íÁ¤) nObjType == 92) //@Ãà¼ÒÅë»óȲ(°íÁ¤) { LblTag->Caption = "Á¦°ø±¸°£"; BtnIfscErase->Caption = "Á¦°ø±¸°£ÃʱâÈ­"; PnlIfsc->Visible = true; EdIfscId->Text = pObj->Tag; FSelObjType = eSelObjIfsc; } else if (nObjType == 101 || nObjType == 102 || nObjType == 103 || nObjType == 104) //@ÁÖÂ÷Àå { LblTag->Caption = "ÁÖÂ÷Àå"; BtnIfscErase->Caption = "ÁÖÂ÷ÀåÃʱâÈ­"; PnlIfsc->Visible = true; EdIfscId->Text = pObj->Tag; FSelObjType = eSelObjPark; } else if (nObjType >= 401 && nObjType <= 413) { LblTag->Caption = "°üÃø¼Ò"; BtnIfscErase->Caption = "°üÃø¼ÒÃʱâÈ­"; PnlIfsc->Visible = true; EdIfscId->Text = pObj->Tag; FSelObjType = eSelObjAtmp; } String sFormType = APP_GetCode(CbFormKind); if (sFormType == "15") { //µµÇü½Ä¹è°æ¼ÒÅëÁ¤º¸ if (nObjType == 0 || //¹®ÀÚ¿­ nObjType == 1 || //½Éº¼ nObjType == 2) //À̹ÌÁö { ImgDesc99->Visible = true; Lbl99->Visible = true; Cb99->Visible = true; TNotifyEvent evt = Cb99->Properties->OnChange; Cb99->Properties->OnChange = NULL; APP_SetCode(Cb99, pObj->Tag); Cb99->Properties->OnChange = evt; } } EdObjId->Text = pObj->ObjId; ChkBlinking->Checked = pObj->Blink; CbBkColor->ItemIndex = pObj->BkColorCode.ToInt(); SeLeft->Value = pObj->GetLeft(); SeTop->Value = pObj->GetTop(); if (pObj->DrawType == odtText) { APP_SetCode(CbObjType, pObj->ObjType); APP_SetCode(CbFontName, pObj->FontNameCode); #if 0 CbFontColor->ItemIndex = pObj->FontColorCode.ToInt(); #else CbFontColor->ItemIndex = CDSFontManager->GetColorCodeIndex(pObj->FontColorCode.ToInt()); #endif SeFontSize->Value = pObj->FontSize; ChkFontBold->Checked = pObj->FontBold; CbTextAlign->ItemIndex = pObj->TextAlign; if (EdTextData->Text != pObj->Text) EdTextData->Text = pObj->Text; if (pObj->ObjType.ToIntDef(0) == 19) //¼ÒÅëÁ¤º¸(°¡º¯) { EdTextData->Properties->ReadOnly = true; } else { EdTextData->Properties->ReadOnly = false; } //CbTextType->Visible = true; //CbImageType->Visible= false; } else { APP_SetCode(CbObjType, pObj->ObjType); if (EdTextData->Text != pObj->Text) EdTextData->Text = pObj->Text; //CbTextType->Visible = false; //CbImageType->Visible= true; } TcxGridFocusedRecordChangedEvent evt = TvObjList->OnFocusedRecordChanged; TvObjList->OnFocusedRecordChanged = NULL; String sObjSeq = String(pObj->ObjSeq); CMM_SetGridRow(CxObjList, TvObjList, sObjSeq, ColSeq->Index); TvObjList->OnFocusedRecordChanged = evt; CheckImageSelected(); } catch(...) {} m_bEdit = false; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::TvObjListFocusedRecordChanged(TcxCustomGridTableView *Sender, TcxCustomGridRecord *APrevFocusedRecord, TcxCustomGridRecord *AFocusedRecord, bool ANewItemRecordFocusingChanged) { #if 0 if (AFocusedRecord == NULL) { return; } #endif ImgDesc99->Visible = false; Lbl99->Visible = false; Cb99->Visible = false; //Cb99->ItemIndex = 0; PnlIfsc->Visible = false; EdIfscId->Text = ""; if (TvObjList->ViewData->RecordCount <= 0) return; if (TvObjList->DataController->FocusedRowIndex < 0) return; TcxDataController *pGDC = TvObjList->DataController; int nIndex = pGDC->FocusedRecordIndex; String sObjSeq = pGDC->Values[nIndex][ColSeq->Index]; String sObjId = pGDC->Values[nIndex][ColId->Index]; EdObjSeq->Text = sObjSeq; //m_pEdtDesigner->SelectObject(sObjSeq.ToInt()); TVmsFormObject *pObj = m_pEdtDesigner->FindObject(sObjSeq.ToInt()); if (pObj) { int nObjType = pObj->ObjType.ToIntDef(0); if (nObjType == 91 || //@ÃàÅëÇà½Ã°£(°íÁ¤) nObjType == 92) //@Ãà¼ÒÅë»óȲ(°íÁ¤) { LblTag->Caption = "Á¦°ø±¸°£"; BtnIfscErase->Caption = "Á¦°ø±¸°£ÃʱâÈ­"; PnlIfsc->Visible = true; EdIfscId->Text = pObj->Tag; FSelObjType = eSelObjIfsc; } else if (nObjType == 101 || nObjType == 102 || nObjType == 103 || nObjType == 104) //@ÁÖÂ÷Àå { LblTag->Caption = "ÁÖÂ÷Àå"; BtnIfscErase->Caption = "ÁÖÂ÷ÀåÃʱâÈ­"; PnlIfsc->Visible = true; EdIfscId->Text = pObj->Tag; FSelObjType = eSelObjPark; } else if (nObjType >= 401 && nObjType <= 413) { LblTag->Caption = "°üÃø¼Ò"; BtnIfscErase->Caption = "°üÃø¼ÒÃʱâÈ­"; PnlIfsc->Visible = true; EdIfscId->Text = pObj->Tag; FSelObjType = eSelObjAtmp; } if (pObj->ObjType.ToIntDef(0) == 19) //¼ÒÅëÁ¤º¸(°¡º¯) { EdTextData->Properties->ReadOnly = true; } else { EdTextData->Properties->ReadOnly = false; } String sFormType = APP_GetCode(CbFormKind); if (sFormType == "15") { //µµÇü½Ä¹è°æ¼ÒÅëÁ¤º¸ if (nObjType == 0 || //¹®ÀÚ¿­ nObjType == 1 || //½Éº¼ nObjType == 2) //À̹ÌÁö { ImgDesc99->Visible = true; Lbl99->Visible = true; Cb99->Visible = true; TNotifyEvent evt = Cb99->Properties->OnChange; Cb99->Properties->OnChange = NULL; APP_SetCode(Cb99, pObj->Tag); Cb99->Properties->OnChange = evt; } } } CheckImageSelected(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::SelObjectListData() { CMM_ClearGridTableView(TvObjList); int nObjCnt = m_pEdtDesigner->GetObjectCount(); TVmsFormObject *pObj; for(int ii = 0; ii < nObjCnt; ii++) { pObj = m_pEdtDesigner->GetObject(ii); if (pObj) { AddObjectToList(pObj); } } if (TvObjList->DataController->RecordCount > 0) TvObjList->DataController->FocusedRecordIndex = 0; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::AddObjectToList(TVmsFormObject *pObj, bool bSelect/*=false*/) { int nAddRow = -1; String sFormType = APP_GetCode(CbFormKind); TcxGridDataController *pGDC = TvObjList->DataController; try { TvObjList->BeginUpdate(); pGDC->BeginUpdate(); nAddRow = pGDC->AppendRecord(); pGDC->Values[nAddRow][ColSeq->Index] = String(pObj->ObjSeq); pGDC->Values[nAddRow][ColId->Index] = String(pObj->ObjId); pGDC->Values[nAddRow][ColType->Index] = FindObjectTypeName(sFormType, pObj->ObjType); pGDC->Values[nAddRow][ColData->Index] = pObj->Text; #if 0 if (pObj->ObjKind == OBJKIND_TEXT) { pGDC->Values[nAddRow][ColKind->Index] = "¹®ÀÚ¿­"; pGDC->Values[nAddRow][ColType->Index] = "";//GetComboBoxCodeName(CbTextType, pObj->ObjType); pGDC->Values[nAddRow][ColData->Index] = pObj->Text; } else if (pObj->ObjKind == OBJKIND_IMAGE) { pGDC->Values[nAddRow][ColKind->Index] = "À̹ÌÁö"; pGDC->Values[nAddRow][ColType->Index] = "";//GetComboBoxCodeName(CbImageType, pObj->ObjType); pGDC->Values[nAddRow][ColData->Index] = pObj->Text; } else if (pObj->ObjKind == OBJKIND_IMAGEID) { pGDC->Values[nAddRow][ColKind->Index] = "À̹ÌÁöID"; pGDC->Values[nAddRow][ColType->Index] = "";//GetComboBoxCodeName(CbImageType, pObj->ObjType); pGDC->Values[nAddRow][ColData->Index] = pObj->Text + " [" + pObj->ImageId + "]"; } #endif //pGDC->Values[nAddRow][ColX->Index] = String(pObj->GetLeft()); //pGDC->Values[nAddRow][ColY->Index] = String(pObj->GetTop()); pGDC->Values[nAddRow][ColIfscId->Index] = pObj->Tag; pGDC->Values[nAddRow][ColMem->Index] = (int)pObj; } __finally { pGDC->EndUpdate(); TvObjList->EndUpdate(); if (bSelect && pGDC->RecordCount > 0) if (nAddRow >= 0) pGDC->FocusedRecordIndex = nAddRow; } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnSortReClick(TObject *Sender) { TcxButton *pBtn = (TcxButton *)Sender; ReForm->Paragraph->Numbering = nsNone; ReForm->Paragraph->Alignment = (TAlignment)pBtn->Tag; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnBoldReClick(TObject *Sender) { if (ReForm->SelAttributes->Style.Contains(fsBold)) ReForm->SelAttributes->Style = TFontStyles() >> fsBold; else ReForm->SelAttributes->Style = TFontStyles() << fsBold; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::SeFontSizeRePropertiesChange(TObject *Sender) { if (((TcxSpinEdit*)Sender)->Value < ((TcxSpinEdit*)Sender)->Properties->MinValue) ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MinValue; else if(((TcxSpinEdit*)Sender)->Value > ((TcxSpinEdit*)Sender)->Properties->MaxValue && ((TcxSpinEdit*)Sender)->Properties->MaxValue) ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MaxValue; ReForm->SelAttributes->Size = ((TcxSpinEdit*)Sender)->Value; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbFontColorReClick(TObject *Sender) { #if 0 switch(CbFontColorRe->ItemIndex) { case 0 : ReForm->SelAttributes->Color = clBlack; break; case 1 : ReForm->SelAttributes->Color = clRed; break; case 2 : ReForm->SelAttributes->Color = clLime; break; case 3 : default: ReForm->SelAttributes->Color = clYellow; break; } #else ReForm->SelAttributes->Color = CbFontColorRe->Selected;//CbFontColorRe->Colors[CbFontColorRe->ItemIndex]; #endif } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbFontNameReClick(TObject *Sender) { String sFontCode = APP_GetCode(CbFontNameRe); String sFontName = APP_GetCodeName(CbFontNameRe, sFontCode); ReForm->SelAttributes->Name = sFontName; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::ReFormChange(TObject *Sender) { if (ChkAutoPreview->Checked) BtnPreviewClick(NULL); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::ChkAutoPreviewClick(TObject *Sender) { if (ChkAutoPreview->Checked) BtnPreviewClick(NULL); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnPreviewClick(TObject *Sender) { if (ChkDrawModule->Checked) m_pEdtDesigner->PreviewDrawModuleForm(ReForm, ReFormTemp, ImgEdtPreview, FVmsRows, FVmsCols); else m_pEdtDesigner->PreviewDrawForm(ReForm, ReFormTemp, ImgEdtPreview); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnReApplyClick(TObject *Sender) { BtnPreviewClick(NULL); m_pEdtDesigner->AddDrawFormToVmsForm(ReForm, ImgEdtPreview); /* * ½Å±Ô·Î µî·ÏÇÑ °´Ã¼ÀÇ °´Ã¼Å¸ÀÔ°ú ÆùÆ®Äڵ带 ¾÷µ¥ÀÌÆ® ÇÑ´Ù. */ CbVmsObjType->ItemIndex = 0; // For °íÁ¤¹®ÀÚ¿­ String sObjType = APP_GetCode(CbVmsObjType); TVmsFormObject *pObj; int nObjCnt = m_pEdtDesigner->GetObjectCount(); for (int ii = 0; ii < nObjCnt; ii++) { pObj = m_pEdtDesigner->GetObject(ii); if (pObj->ObjType == "XXX" && pObj->FontNameCode == "XXX") { pObj->ObjType = sObjType; pObj->FontNameCode = APP_GetCodeIdByName(CbFontName, pObj->FontName); } } PgEdit->ActivePageIndex = 0; SelObjectListData(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbFormKindPropertiesChange(TObject *Sender) { CbVmsObjType->Properties->Items->Clear(); CbObjType->Properties->Items->Clear(); String sFormType = APP_GetCode(CbFormKind); int nFormKind = sFormType.ToIntDef(0); if (nFormKind == eFormTp_evehicle) { if (PnlFormSubType->Visible == false) PnlFormSubType->Visible = true; } else { if (PnlFormSubType->Visible == true) PnlFormSubType->Visible = false; } TVmsObjType *pObj = MyVmsObjTypeManager->FLists.Find(nFormKind); if (!pObj) return; FOR_STL(TFormObjType*, pType, pObj->FLists) { String sType; sType.printf(L"%2d", pType->TYPE); sType = pType->TYPE; CbVmsObjType->Properties->Items->Add(" [" + sType + "] " + pType->NAME); CbObjType->Properties->Items->Add(" [" + sType + "] " + pType->NAME); } CbVmsObjType->ItemIndex = 0; CbObjType->ItemIndex = 0; //EdFocus->SetFocus(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbFormColorClick(TObject *Sender) { m_pEdtDesigner->SetBkColor(String(CbFormColor->ItemIndex)); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnMoveClick(TObject *Sender) { if (m_bEdit) return; TcxButton *pBtn = (TcxButton *)Sender; switch(pBtn->Tag) { case 0: m_pEdtDesigner->StepMoveLeft(); break; case 1: m_pEdtDesigner->StepMoveRight(); break; case 2: m_pEdtDesigner->StepMoveUp(); break; case 3: m_pEdtDesigner->StepMoveDown(); break; } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnAlignClick(TObject *Sender) { if (m_bEdit) return; TcxButton *pBtn = (TcxButton *)Sender; if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; switch(pBtn->Tag) { case 0: m_pEdtDesigner->SetLeftAlign(m_pEdtDesigner->GetLeftAlign()); break; case 1: m_pEdtDesigner->SetRightAlign(m_pEdtDesigner->GetRightAlign()); break; case 2: m_pEdtDesigner->SetTopAlign(m_pEdtDesigner->GetTopAlign()); break; case 3: m_pEdtDesigner->SetBottomAlign(m_pEdtDesigner->GetBottomAlign()); break; } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnCenterClick(TObject *Sender) { if (m_bEdit) return; TcxButton *pBtn = (TcxButton *)Sender; if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; switch(pBtn->Tag) { case 0: m_pEdtDesigner->SetAlignWidthCenter(); break; case 1: m_pEdtDesigner->SetAlignHeightCenter(); break; } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::SePosPropertiesChange(TObject *Sender) { if (m_bEdit) return; if (((TcxSpinEdit*)Sender)->Value < ((TcxSpinEdit*)Sender)->Properties->MinValue) ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MinValue; else if(((TcxSpinEdit*)Sender)->Value > ((TcxSpinEdit*)Sender)->Properties->MaxValue && ((TcxSpinEdit*)Sender)->Properties->MaxValue) ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MaxValue; TcxSpinEdit *pPos = (TcxSpinEdit*)Sender; if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; int nValue = pPos->Value; switch(pPos->Tag) { case 0: m_pEdtDesigner->MoveLeft(nValue); break; case 1: m_pEdtDesigner->MoveUp(nValue); break; } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbBkColorClick(TObject *Sender) { if (m_bEdit) return; //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; m_pEdtDesigner->SetObjectBkColorCode(String(CbBkColor->ItemIndex)); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::ChkBlinkingClick(TObject *Sender) { if (m_bEdit) return; //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; m_pEdtDesigner->SetObjectBlink(ChkBlinking->Checked); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::EdTextDataKeyPress(TObject *Sender, wchar_t &Key) { if (m_bEdit) return; if (Key == '\'') { Key = '`'; } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::EdTextDataPropertiesChange(TObject *Sender) { if (m_bEdit) return; //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; m_pEdtDesigner->SetObejctText(EdTextData->Text); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::SeFontSizePropertiesChange(TObject *Sender) { if (m_bEdit) return; if (((TcxSpinEdit*)Sender)->Value < ((TcxSpinEdit*)Sender)->Properties->MinValue) ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MinValue; else if(((TcxSpinEdit*)Sender)->Value > ((TcxSpinEdit*)Sender)->Properties->MaxValue && ((TcxSpinEdit*)Sender)->Properties->MaxValue) ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MaxValue; //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; int nFontSize = SeFontSize->Value; m_pEdtDesigner->SetObejctFontSize(nFontSize); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbFontNamePropertiesChange(TObject *Sender) { if (m_bEdit) return; //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; String sFontCode = APP_GetCode(CbFontName); String sFontName = APP_GetCodeName(CbFontName, sFontCode); m_pEdtDesigner->SetObejctFontName(sFontName.Trim()); m_pEdtDesigner->SetObejctFontNameCode(sFontCode); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbFontColorClick(TObject *Sender) { if (m_bEdit) return; //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; #if 0 m_pEdtDesigner->SetObejctFontColorCode(String(CbFontColor->ItemIndex)); #else m_pEdtDesigner->SetObejctFontColorCode(String(CDSFontManager->GetColorCode((int)CbFontColor->Selected))); #endif } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbTextAlignPropertiesChange(TObject *Sender) { if (m_bEdit) return; //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; m_pEdtDesigner->SetObejctTextAlign(CbTextAlign->ItemIndex); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::EdObjIdPropertiesChange(TObject *Sender) { if (m_bEdit) return; //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; try { int nObjId; TryStrToInt(EdObjId->Text.Trim(), nObjId); m_pEdtDesigner->SetObejctId(nObjId); } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::ChkFontBoldClick(TObject *Sender) { if (m_bEdit) return; //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; m_pEdtDesigner->SetObejctFontBold(ChkFontBold->Checked); } //--------------------------------------------------------------------------- bool __fastcall TVMSM500M::InsertVmsImage(String ANmbr, String AExpl, String AFileName, String ATypeCd) { String sQry; TADOQuery *pADO = NULL; sQry = "INSERT INTO TB_VMS_SYMB_LIB(SYMB_LIB_NMBR, RGST_DT, SYMB_EXPL, IMAG_DATA, SYMB_FILE_NM, SYMB_TYPE, AVI_DATA, IMAG_SIZE, UPDT_DT, DEL_YN) \r\n" " VALUES(:p01, :p02, :p03, :p04, NULL, :p05, NULL, :p06, :p07, 'N' ) \r\n"; int nRowHeight = 0; TMemoryStream *dataStream = new TMemoryStream(); ImgEdtTemp->Picture->Bitmap->SaveToStream(dataStream); try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", ANmbr); ITSDb_SQLBind(pADO, "p02", Now().FormatString("yyyymmddhhnnss")); ITSDb_SQLBind(pADO, "p03", AExpl); pADO->Parameters->ParamByName("p04")->LoadFromStream(dataStream, ftBlob); ITSDb_SQLBind(pADO, "p05", ATypeCd); ITSDb_SQLBind(pADO, "p06", FFileSize); ITSDb_SQLBind(pADO, "p07", Now().FormatString("yyyymmddhhnnss")); pADO->ExecSQL(); return true; } catch(EDatabaseError &E) { DBERRORMSG("TVMSM500M::InsertVmsImage", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TVMSM500M::InsertVmsImage", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } if (dataStream) delete dataStream; dataStream = NULL; } return true; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::OpenBmpCanClose(TObject *Sender, bool &CanClose) { String sFName = OpenBmp->FileName; //sFName = sFName.UpperCase(); String sFilePath = ExtractFilePath(sFName); String sFileName = ExtractFileName(sFName); String sFileExt = ExtractFileExt(sFName); if (sFileExt.UpperCase() != ".BMP") { if (!APP_CheckBmpFile(sFName, sFName)) { Application->MessageBox(L"À̹ÌÁö ÆÄÀÏÀ» Àоî¿À´Âµ¥ ½ÇÆÐÇÏ¿´½À´Ï´Ù", L"À̹ÌÁö ÆÄÀÏ ÀÐ±â ½ÇÆÐ", MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } sFileExt = ExtractFileExt(sFName); } sFName = sFName.UpperCase(); if (sFName.SubString(sFName.Length()-2, 3) != "BMP") { Application->MessageBox(FrmLang->lblImage11->Caption.c_str(),//L"BMP ÆÄÀϸ¸ Àû¿ë °¡´ÉÇÕ´Ï´Ù.", lblImage1->Caption.c_str(),//L"VMS À̹ÌÁö ¼±ÅÃ", MB_OK|MB_ICONWARNING|MB_APPLMODAL); return; } try { FFileSize = ITSUtil_GetFileSize(sFName); if (FFileSize <= 0) { Application->MessageBox(FrmLang->lblImage12->Caption.c_str(),//L"À̹ÌÁö ÆÄÀÏÀ» ÀÐ¾î ¿À´Âµ¥ ½ÇÆÐÇÏ¿´½À´Ï´Ù.", lblImage1->Caption.c_str(),//L"VMS À̹ÌÁö ¼±ÅÃ", MB_OK|MB_ICONWARNING|MB_APPLMODAL); return; } #if 0 if (FFileSize > (1024 * 32)) // Max 32Kbytes { Application->MessageBox(FrmLang->lblImage13->Caption.c_str(),//L"À̹ÌÁö ÆÄÀÏÀÇ ÃÖ´ë Å©±â´Â 32KBytes¸¦ ³ÑÀ» ¼ö ¾ø½À´Ï´Ù.\r\nÀ̹ÌÁö ÆÄÀÏÀÇ ¿ë·®À» ÁÙ¿© ÁÖ¼¼¿ä.", lblImage1->Caption.c_str(),//L"VMS À̹ÌÁö ¼±ÅÃ", MB_OK|MB_ICONWARNING|MB_APPLMODAL); return; } #endif ImgEdtTemp->Picture->Bitmap->FreeImage(); ImgEdtTemp->Picture->Bitmap = NULL; ImgEdtTemp->Picture->Bitmap->LoadFromFile(sFName); String sExpl = EdFormId->Text.Trim(); int nNmbr; if (!FrmLang->GetNextVmsImgeId(nNmbr, 6000, 6999)) { Application->MessageBox(FrmLang->lblImage4->Caption.c_str(),//L"»õ·Î¿î VMS À̹ÌÁöÁ¤º¸¸¦ »ý¼ºÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.\r\nÇÁ·Î±×·¥ Á¾·áÈÄ¿¡ ´Ù½Ã ½ÃµµÇØ º¸¼¼¿ä.", lblImage1->Caption.c_str(),//L"VMS À̹ÌÁö ¼±ÅÃ", MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } if (!InsertVmsImage(String(nNmbr), sExpl, "", "SBT0")) { Application->MessageBox(FrmLang->lblImage4->Caption.c_str(),//L"»õ·Î¿î VMS À̹ÌÁöÁ¤º¸¸¦ ÀúÀåÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.\r\nÇÁ·Î±×·¥ Á¾·áÈÄ¿¡ ´Ù½Ã ½ÃµµÇØ º¸¼¼¿ä.", lblImage1->Caption.c_str(),//L"VMS À̹ÌÁö ¼±ÅÃ", MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } TVmsFormObject *pObj = m_pEdtDesigner->AddObject(odtBmp); if (!pObj) return; int nNewObjSeq = m_pEdtDesigner->GetNewObjectSeq(); EdObjSeq->Text = String(nNewObjSeq); pObj->ObjSeq = nNewObjSeq; pObj->ObjKind = OBJKIND_IMAGEID;//OBJKIND_IMAGE; // "1" pObj->ObjType = "1";//"2"; pObj->ObjSize = (int)FFileSize; pObj->BkColorCode = m_pEdtDesigner->BkColorCode; pObj->Blink = false; pObj->Tag = "N"; pObj->SetBitmap(ImgEdtTemp->Picture->Bitmap); pObj->Text = lblFile1->Caption;//"ÆÄÀÏÀ̹ÌÁö";//ExtractShortPathName(sFName).c_str(); pObj->ImageId = String(nNmbr); pObj->SetPos(0, 0); #ifdef IMAGE_RESIZE //pObj->GetImage()->AutoSize= false; //pObj->GetImage()->Stretch = true; TNotifyEvent evtW = SeImgW->Properties->OnChange; TNotifyEvent evtH = SeImgH->Properties->OnChange; SeImgW->Properties->OnChange = NULL; SeImgH->Properties->OnChange = NULL; SeImgW->Value = ImgEdtTemp->Picture->Bitmap->Width; SeImgH->Value = ImgEdtTemp->Picture->Bitmap->Height; SeImgW->Properties->OnChange = evtW; SeImgH->Properties->OnChange = evtH; PnlImage->Visible = true; #endif pObj->EditMode = true; pObj->Show(); AddObjectToList(pObj, true); } catch(...) { return; } } //--------------------------------------------------------------------------- bool __fastcall TVMSM500M::CheckVideoStreamImage() { String sQry; TADOQuery *pADO = NULL; sQry = "SELECT SYMB_LIB_NMBR, COUNT(1) AS CNT \r\n" " FROM TB_VMS_SYMB_LIB \r\n" " WHERE SYMB_LIB_NMBR IN (200, 300) \r\n" " GROUP BY SYMB_LIB_NMBR \r\n"; bool bVideo = false; bool bStream = false; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLOpen(pADO); for( ; !pADO->Eof; pADO->Next()) { int SYMB_LIB_NMBR = pADO->FieldByName("SYMB_LIB_NMBR")->AsInteger; int CNT = pADO->FieldByName("CNT")->AsInteger; if (CNT > 0) { if (SYMB_LIB_NMBR == 200) bVideo = true; else bStream = true; } } sQry = "INSERT INTO TB_VMS_SYMB_LIB(SYMB_LIB_NMBR, RGST_DT, SYMB_EXPL, IMAG_DATA, SYMB_FILE_NM, SYMB_TYPE, AVI_DATA, IMAG_SIZE, UPDT_DT, DEL_YN) \r\n" " VALUES(:p01, :p02, :p03, :p04, NULL, 'SBT9', NULL, :p05, :p06, 'N' ) \r\n"; if (!bVideo) { TMemoryStream *imgStream = new TMemoryStream(); ImgVideo->Picture->Bitmap->SaveToStream(imgStream); try { ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", "200"); ITSDb_SQLBind(pADO, "p02", Now().FormatString("yyyymmddhhnnss")); if (g_AppCfg.sLang != "kr") ITSDb_SQLBind(pADO, "p03", "@Video file mame"); else ITSDb_SQLBind(pADO, "p03", "@µ¿¿µ»óÆÄÀϸí"); pADO->Parameters->ParamByName("p04")->LoadFromStream(imgStream, ftBlob); ITSDb_SQLBind(pADO, "p05", ImgVideo->Width*ImgVideo->Height); ITSDb_SQLBind(pADO, "p06", Now().FormatString("yyyymmddhhnnss")); pADO->ExecSQL(); } __finally { if (imgStream) delete imgStream; imgStream = NULL; } } if (!bStream) { TMemoryStream *imgStream = new TMemoryStream(); ImgStream->Picture->Bitmap->SaveToStream(imgStream); try { ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", "300"); ITSDb_SQLBind(pADO, "p02", Now().FormatString("yyyymmddhhnnss")); if (g_AppCfg.sLang != "kr") ITSDb_SQLBind(pADO, "p03", "@Stream URL"); else ITSDb_SQLBind(pADO, "p03", "@½ºÆ®¸®¹Ö¿µ»óÁÖ¼Ò"); pADO->Parameters->ParamByName("p04")->LoadFromStream(imgStream, ftBlob); ITSDb_SQLBind(pADO, "p05", ImgStream->Width*ImgStream->Height); pADO->ExecSQL(); } __finally { if (imgStream) delete imgStream; imgStream = NULL; } } return true; } catch(EDatabaseError &E) { DBERRORMSG("TVMSM500M::CheckVideoStreamImage", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("TVMSM500M::CheckVideoStreamImage", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::MakeDefVideoStreamForm(int AType) { if (CbVmsObjType->ItemIndex < 0) return; for (int ii = 0; ii < CbVmsObjType->Properties->Items->Count; ii++) { CbVmsObjType->ItemIndex = ii; String sFormType = APP_GetCode(CbFormKind); String sObjType = APP_GetCode(CbVmsObjType); int nObjType = sObjType.ToIntDef(0); String sObjText = FindObjectTypeName(sFormType, sObjType); String sFontName = FrmLang->lblFontName->Caption;//"±¼¸²Ã¼"; String sFontNameCode = "1"; String sFontColorCode = "2"; //Green int nFontSize = 22; bool bFontBold = true; if (AType == 90) nFontSize = 14; switch(nObjType) { case 200: //µ¿¿µ»ó case 300: //½ºÆ®¸®¹Ö¿µ»ó { TVmsFormObject *pObj = m_pEdtDesigner->AddObject(odtBmp); if (!pObj) return; int nNewObjSeq = m_pEdtDesigner->GetNewObjectSeq(); EdObjSeq->Text = String(nNewObjSeq); pObj->EditMode = false; pObj->ObjSeq = nNewObjSeq; pObj->ObjKind = OBJKIND_IMAGEID; // "2" pObj->ObjType = sObjType; if (nObjType == 200) pObj->ObjSize = ImgVideo->Width * ImgVideo->Height; else pObj->ObjSize = ImgStream->Width * ImgStream->Height; pObj->BkColorCode = m_pEdtDesigner->BkColorCode; pObj->Blink = false; pObj->Tag = "N"; pObj->Text = sObjText; pObj->ImageId = IntToStr(nObjType); int nW, nH; if (nObjType == 200) { pObj->SetBitmap(ImgVideo->Picture->Bitmap); nW = ImgVideo->Width; nH = ImgVideo->Height; } else { pObj->SetBitmap(ImgStream->Picture->Bitmap); nW = ImgStream->Width; nH = ImgStream->Height; } nW = (FVmsWidth-nW)/2; nH = (FVmsHeight-nH)/2; pObj->SetPos(nW, nH); pObj->Show(); AddObjectToList(pObj, true); } break; case 0: //¹®ÀÚ¿­ case 1: //½Éº¼ case 2: //À̹ÌÁö case 406: //@ÅëÇÕ´ë±âµî±Þ À̹ÌÁö case 407: //@¹Ì¼¼¸ÕÁöµî±Þ À̹ÌÁö case 408: //@Ãʹ̼¼¸ÕÁöµî±Þ À̹ÌÁö case 413: //@¿ÀÁ¸µî±ÞÀ̹ÌÁö break; default: { TVmsFormObject *pObj = m_pEdtDesigner->AddObject(odtText); if (!pObj) return; int nNewObjSeq = m_pEdtDesigner->GetNewObjectSeq(); EdObjSeq->Text = String(nNewObjSeq); pObj->ObjSeq = nNewObjSeq; pObj->ObjType = sObjType; switch(nObjType) { case 409: //@ÅëÇÕ´ë±âµî±Þ case 404: //@PM10µî±Þ case 405: //@PM2.5µî±Þ case 412: //@¿ÀÁ¸µî±Þ //pObj->TextAlign = 2; // center pObj->TextAlign = 0; // left break; case 402: //@PM10 case 403: //@PM2.5 case 410: //@ÅëÇÕ´ë±â case 411: //@¿ÀÁ¸ //pObj->TextAlign = 1; // right pObj->TextAlign = 0; // left break; default: pObj->TextAlign = 0; // left break; } //EdTextData->Properties->ReadOnly = false; pObj->ObjSize = sObjText.Length(); pObj->BkColorCode = m_pEdtDesigner->BkColorCode; pObj->Blink = false; pObj->Text = sObjText; pObj->EditMode = true; pObj->ObjKind = OBJKIND_TEXT; pObj->FontName = sFontName; pObj->FontNameCode = sFontNameCode; pObj->FontColorCode = sFontColorCode; pObj->FontSize = nFontSize; pObj->FontBold = bFontBold; pObj->SetPos(0, 0); pObj->Show(); AddObjectToList(pObj, true); } break; } } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnAddTextClick(TObject *Sender) { if (CbVmsObjType->ItemIndex < 0) return; PnlImage->Visible = false; String sFormType = APP_GetCode(CbFormKind); String sObjType = APP_GetCode(CbVmsObjType); int nObjType = sObjType.ToIntDef(0); String sObjText = FindObjectTypeName(sFormType, sObjType); String sFontName = FrmLang->lblFontName->Caption;//"±¼¸²Ã¼"; String sFontNameCode = "1"; String sFontColorCode = "2"; //Green int nFontSize = 14; bool bFontBold = true; switch(nObjType) { case 201: //µ¿¿µ»ó case 301: //½ºÆ®¸®¹Ö¿µ»ó { TVmsFormObject *pObj = m_pEdtDesigner->AddObject(odtBmp); if (!pObj) return; int nNewObjSeq = m_pEdtDesigner->GetNewObjectSeq(); EdObjSeq->Text = String(nNewObjSeq); pObj->EditMode = false; pObj->ObjSeq = nNewObjSeq; pObj->ObjKind = OBJKIND_IMAGE; // "2" pObj->ObjType = sObjType; pObj->ObjSize = FVmsWidth * FVmsHeight; pObj->BkColorCode = m_pEdtDesigner->BkColorCode; pObj->Blink = false; pObj->Tag = "N"; pObj->Text = sObjText; pObj->ImageId = "0"; int nW, nH; if (nObjType == 201) { pObj->SetBitmap(ImgVideo->Picture->Bitmap); nW = ImgVideo->Width; nH = ImgVideo->Height; } else { pObj->SetBitmap(ImgStream->Picture->Bitmap); nW = ImgStream->Width; nH = ImgStream->Height; } //pObj->SetSize(FVmsWidth, FVmsHeight); nW = (FVmsWidth-nW)/2; nH = (FVmsHeight-nH)/2; pObj->SetPos(nW, nH); pObj->Show(); AddObjectToList(pObj, true); } break; case 1: //À̹ÌÁö ½Éº¼ case 3: //¼ÒÅëÁ¤º¸¹è°æÀ̹ÌÁö case 17: //@¼ÒÅëÀ̹ÌÁö1 case 27: //@¼ÒÅëÀ̹ÌÁö2 case 37: //@¼ÒÅëÀ̹ÌÁö3 case 47: //@¼ÒÅëÀ̹ÌÁö4 case 406: //@ÅëÇÕ´ë±âµî±Þ À̹ÌÁö case 407: //@¹Ì¼¼¸ÕÁöµî±Þ À̹ÌÁö case 408: //@Ãʹ̼¼¸ÕÁöµî±Þ À̹ÌÁö case 413: //@¿ÀÁ¸µî±ÞÀ̹ÌÁö { TVMSM510M *pSelForm = new TVMSM510M(this); if (nObjType == 1 || nObjType == 3) { pSelForm->FImageType = nObjType; } else { pSelForm->FImageType = 2; } if (nObjType >= 406 && nObjType <= 408) { pSelForm->FImageType = 1; } if (nObjType == 413) { pSelForm->FImageType = 1; } String sSymbType = "SBT0"; switch(nObjType) { case 1: //À̹ÌÁö ½Éº¼ sSymbType = "SBT0"; break; case 3: //¼ÒÅëÁ¤º¸¹è°æÀ̹ÌÁö sSymbType = "SBT1"; break; case 17: //@¼ÒÅëÀ̹ÌÁö1 case 27: //@¼ÒÅëÀ̹ÌÁö2 case 37: //@¼ÒÅëÀ̹ÌÁö3 case 47: //@¼ÒÅëÀ̹ÌÁö4 sSymbType = "SBT2"; break; case 406: //@ÅëÇÕ´ë±âµî±Þ À̹ÌÁö case 407: //@¹Ì¼¼¸ÕÁöµî±Þ À̹ÌÁö case 408: //@Ãʹ̼¼¸ÕÁöµî±Þ À̹ÌÁö case 413: //@¿ÀÁ¸µî±Þ À̹ÌÁö sSymbType = "SBT4"; break; default : sSymbType = "SBT0"; break; } pSelForm->SYMB_TYPE = sSymbType; pSelForm->ShowModal(); if (!pSelForm->m_bSelected) { delete pSelForm; return; } TVmsFormObject *pObj = m_pEdtDesigner->AddObject(odtBmp); if (!pObj) return; int nNewObjSeq = m_pEdtDesigner->GetNewObjectSeq(); EdObjSeq->Text = String(nNewObjSeq); pObj->ObjSeq = nNewObjSeq; pObj->ObjKind = OBJKIND_IMAGEID; // "2" pObj->ObjType = sObjType; pObj->ObjSize = pSelForm->ImgPreView->Picture->Bitmap->Width * pSelForm->ImgPreView->Picture->Bitmap->Height; pObj->BkColorCode = m_pEdtDesigner->BkColorCode; pObj->Blink = false; pObj->Tag = "N"; pObj->Text = sObjText; pObj->ImageId = pSelForm->EdNmbr->Text; pObj->SetBitmap(pSelForm->ImgPreView->Picture->Bitmap); #ifdef IMAGE_RESIZE //if (sSymbType == "SBT0") { //pObj->GetImage()->AutoSize= false; //pObj->GetImage()->Stretch = true; TNotifyEvent evtW = SeImgW->Properties->OnChange; TNotifyEvent evtH = SeImgH->Properties->OnChange; SeImgW->Properties->OnChange = NULL; SeImgH->Properties->OnChange = NULL; SeImgW->Value = pSelForm->ImgPreView->Picture->Bitmap->Width; SeImgH->Value = pSelForm->ImgPreView->Picture->Bitmap->Height; SeImgW->Properties->OnChange = evtW; SeImgH->Properties->OnChange = evtH; PnlImage->Visible = true; } #endif pObj->SetPos(0, 0); if (pObj->Left < 0) pObj->Left = 0; if (pObj->Top < 0) pObj->Top = 0; pObj->Show(); AddObjectToList(pObj, true); delete pSelForm; } break; case 2: //ÆÄÀÏÀ̹ÌÁö OpenBmp->FileName = ""; OpenBmp->Execute(); break; #if 0 case 17: //@¹æÇâÀ̹ÌÁö1 case 27: //@¹æÇâÀ̹ÌÁö2 case 37: //@¹æÇâÀ̹ÌÁö3 case 47: //@¹æÇâÀ̹ÌÁö4 { TVmsFormObject *pObj = m_pEdtDesigner->AddObject(odtBmp); if (!pObj) return; int nNewObjSeq = m_pEdtDesigner->GetNewObjectSeq(); EdObjSeq->Text = String(nNewObjSeq); pObj->ObjSeq = nNewObjSeq; pObj->ObjKind = OBJKIND_IMAGEID; // "2" pObj->ObjType = sObjType; pObj->ObjSize = ImgDir->Picture->Bitmap->Width * ImgDir->Picture->Bitmap->Height; pObj->BkColorCode = m_pEdtDesigner->BkColorCode; pObj->Blink = false; //pObj->Text = CbVmsObjType->Text; pObj->Text = sObjText; pObj->ImageId = "0"; pObj->SetBitmap(ImgDir->Picture->Bitmap); pObj->SetPos(0, 0); pObj->Show(); AddObjectToList(pObj, true); } break; #endif default: { TVmsFormObject *pObj = m_pEdtDesigner->AddObject(odtText); if (!pObj) return; int nNewObjSeq = m_pEdtDesigner->GetNewObjectSeq(); EdObjSeq->Text = String(nNewObjSeq); pObj->ObjSeq = nNewObjSeq; pObj->ObjType = sObjType; if (nObjType == 91 || nObjType == 92 || nObjType == 101 || nObjType == 102 || nObjType == 103 || nObjType == 104 || (nObjType >= 401 && nObjType <= 413) ) { pObj->Tag = ""; } else { pObj->Tag = "N"; } pObj->TextAlign = 0; // left if (nObjType == 19) //¼ÒÅëÁ¤º¸(°¡º¯) { #ifdef ENG sObjText = "@Traffic Fast About 0 Min."; #else sObjText = "@¼ÒÅë¿øÈ° ¾à 0 ºÐ"; #endif pObj->TextAlign = 2; // center EdTextData->Properties->ReadOnly = true; } else if (nObjType == 102 || nObjType == 103) { // ÁÖÂ÷¸é¼ö, ÁÖÂ÷°¡´É¸é¼ö sObjText = "000¸é"; pObj->TextAlign = 1; // right } else if (nObjType == 104) { // ÁÖÂ÷ÀåÈ¥Àâµµ sObjText = "@»óȲ"; pObj->TextAlign = 2; // center } else { EdTextData->Properties->ReadOnly = false; } pObj->ObjSize = sObjText.Length(); pObj->BkColorCode = m_pEdtDesigner->BkColorCode; pObj->Blink = false; pObj->Text = sObjText; pObj->EditMode = true; pObj->ObjKind = OBJKIND_TEXT; pObj->FontName = sFontName; pObj->FontNameCode = sFontNameCode; pObj->FontColorCode = sFontColorCode; pObj->FontSize = nFontSize; pObj->FontBold = bFontBold; pObj->SetPos(0, 0); pObj->Show(); AddObjectToList(pObj, true); } break; } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnObjDeleteClick(TObject *Sender) { if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; String sMsgString; sMsgString = lblText6->Caption;//"¼±ÅÃÇÑ °´Ã¼ Á¤º¸¸¦ ¸ðµÎ »èÁ¦ÇϽðڽÀ´Ï±î?"; if (Application->MessageBox(sMsgString.c_str(), lblText7->Caption.c_str(),//L"°´Ã¼ Á¤º¸ »èÁ¦", MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) { return; } bool bUse = false; TVmsFormObject *pObj; int nObjCnt = m_pEdtDesigner->GetObjectCount(); for (int ii = nObjCnt-1; ii >= 0; ii--) { pObj = m_pEdtDesigner->GetObject(ii); if (pObj->Selected) { TVmsObjUse*pObjUse = MyUseManager->FLists.Find(pObj->ObjSeq); if (pObjUse) { bUse = true; continue; } m_pEdtDesigner->DelObject(ii); } } if (bUse) { Application->MessageBox(lblText8->Caption.c_str(),//L"VMS Æû °´Ã¼ »èÁ¦\r\nVMS Æû °´Ã¼ Áß Á¤º¸Á¦°ø±¸°£¿¡ ¼³Á¤µÈ °´Ã¼´Â »èÁ¦ÇÒ ¼ö ¾ø½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); } SelObjectListData(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::ColXGetDataText(TcxCustomGridTableItem *Sender, int ARecordIndex, UnicodeString &AText) { if (ARecordIndex < 0) return; try { int nMemPtr = (int)(TvObjList->DataController->Values[ARecordIndex][ColMem->Index]); TVmsFormObject *pObj = (TVmsFormObject*)nMemPtr; if (pObj) { AText = pObj->GetLeft(); } } catch(Exception &e) {} } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::ColYGetDataText(TcxCustomGridTableItem *Sender, int ARecordIndex, UnicodeString &AText) { if (ARecordIndex < 0) return; try { int nMemPtr = (int)(TvObjList->DataController->Values[ARecordIndex][ColMem->Index]); TVmsFormObject *pObj = (TVmsFormObject*)nMemPtr; if (pObj) { AText = pObj->GetTop(); } } catch(Exception &e) {} } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CbVmsObjTypeClick(TObject *Sender) { if (BtnAddText->CanFocus()) { BtnAddText->SetFocus(); } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::EdIfscIdClick(TObject *Sender) { if (FSelObjType == eSelObjIfsc) { TVMSM530M *pSelForm = new TVMSM530M(this); pSelForm->EdNmbr->Text = EdIfscId->Text.Trim(); pSelForm->ShowModal(); String sIfscId = pSelForm->EdNmbr->Text.Trim(); bool bSelected = pSelForm->m_bSelected; delete pSelForm; pSelForm = NULL; if (!bSelected) { return; } if (sIfscId != "") { EdIfscId->Text = sIfscId; } UpdateObjectIfscId(); } else if (FSelObjType == eSelObjPark) { TVMSM540M *pSelForm = new TVMSM540M(this); pSelForm->EdNmbr->Text = EdIfscId->Text.Trim(); pSelForm->ShowModal(); String sParkNmbr = pSelForm->EdNmbr->Text.Trim(); bool bSelected = pSelForm->m_bSelected; delete pSelForm; pSelForm = NULL; if (!bSelected) { return; } if (sParkNmbr != "") { EdIfscId->Text = sParkNmbr; } UpdateObjectIfscId(); } else if (FSelObjType == eSelObjAtmp) { TVMSM550M *pSelForm = new TVMSM550M(this); pSelForm->EdNmbr->Text = EdIfscId->Text.Trim(); pSelForm->ShowModal(); String sAtmpNmbr = pSelForm->EdNmbr->Text.Trim(); bool bSelected = pSelForm->m_bSelected; delete pSelForm; pSelForm = NULL; if (!bSelected) { return; } if (sAtmpNmbr != "") { EdIfscId->Text = sAtmpNmbr; } UpdateObjectIfscId(); } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnIfscEraseClick(TObject *Sender) { EdIfscId->Text = ""; UpdateObjectIfscId(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::UpdateObjectIfscId() { TVmsFormObject *pObj; int nObjCnt = m_pEdtDesigner->GetObjectCount(); for (int ii = nObjCnt-1; ii >= 0; ii--) { pObj = m_pEdtDesigner->GetObject(ii); if (pObj->Selected) { int nObjType = pObj->ObjType.ToIntDef(0); if (nObjType == 91 || //@ÃàÅëÇà½Ã°£(°íÁ¤) nObjType == 92 || //@Ãà¼ÒÅë»óȲ(°íÁ¤) nObjType == 101 || nObjType == 102 || nObjType == 103 || nObjType == 104 || //@ÁÖÂ÷Àå (nObjType >= 401 && nObjType <= 413) ) { pObj->Tag = EdIfscId->Text.Trim(); } } } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnCopyAddClick(TObject *Sender) { int nIdx = TvList->DataController->FocusedRecordIndex; if (nIdx < 0) return; #if 0 String sFormName = InputBox(lblText9->Caption,//"Æû¸íĪ", lblText10->Caption,//"½Å±Ô Æû¸íĪ ÀÔ·ÂÇϼ¼¿ä(60Byte).", EdFormName->Text);//lblText9->Caption);//"Æû¸íĪ" ); sFormName = sFormName.Trim(); if (sFormName == lblText9->Caption//"Æû¸íĪ" || sFormName == "") #else String sFormName = EdFormName->Text; bool bInput = InputQuery(lblText9->Caption,//"Æû¸íĪ", lblText10->Caption,//"½Å±Ô Æû¸íĪ ÀÔ·ÂÇϼ¼¿ä(60Byte).", sFormName);//lblText9->Caption);//"Æû¸íĪ" ); if (!bInput || sFormName == "") #endif { return; } if (AnsiString(sFormName).Length() > 60) { Application->MessageBox(lblText11->Caption.c_str(),//L"Æû¸íĪÀº 60Byte¸¦ ÃʰúÇÒ ¼ö ¾ø½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } String sFormId = EdFormId->Text; if (sFormId.IsEmpty()) { Application->MessageBox(lblText12->Caption.c_str(),//L"VMS Æû º¹»ç Ãß°¡\r\nº¹»ç Ãß°¡ÇÒ VMS ÆûÀ» ¸ñ·Ï¿¡¼­ ¼±ÅÃÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } int nFormId; if (!GetNextVmsFormId(nFormId)) { Application->MessageBox(lblText1->Caption.c_str(),//L"»õ·Î¿î VMS ÆûÁ¤º¸¸¦ »ý¼ºÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.\r\nÇÁ·Î±×·¥ Á¾·áÈÄ¿¡ ´Ù½Ã ½ÃµµÇØ º¸¼¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } if (CopyFormAdd(sFormId, String(nFormId), sFormName)) { Application->MessageBox(lblText13->Caption.c_str(),//L"VMS Æû º¹»ç Ãß°¡\r\nVMS Æû Á¤º¸¸¦ º¹»ç Ãß°¡ ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); FUpdate = true; LoadVmsForm(); CMM_SetGridRow(CxList, TvList, String(nFormId), Col01->Index); DisplayInfo(); POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0); CComm_VmsFormUpdate(); } } //--------------------------------------------------------------------------- bool __fastcall TVMSM500M::CopyFormAdd(String AOrgFormId, String ANewFormId, String AFormName) { bool bResult = false; String sQry; TADOQuery *pADO = NULL; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); sQry = "INSERT INTO TB_VMS_FORM (VMS_FORM_ID, \r\n" " VMS_TYPE_CD, \r\n" " VMS_FORM_TYPE_CD, \r\n" " VMS_FORM_COLR_CD, \r\n" " VMS_FORM_NM, \r\n" " VMS_FORM_EXPL, \r\n" " VMS_FORM_DSPL_DRCT_CD, \r\n" " VMS_FORM_DSPL_MTHD_CD, \r\n" " SYMB_LIB_NMBR, \r\n" " VMS_FORM_IMAG) \r\n" "SELECT :p01, \r\n" " VMS_TYPE_CD, \r\n" " VMS_FORM_TYPE_CD, \r\n" " VMS_FORM_COLR_CD, \r\n" " :p02, \r\n" " VMS_FORM_EXPL, \r\n" " VMS_FORM_DSPL_DRCT_CD, \r\n" " VMS_FORM_DSPL_MTHD_CD, \r\n" " SYMB_LIB_NMBR, \r\n" " VMS_FORM_IMAG \r\n" " FROM TB_VMS_FORM \r\n" " WHERE VMS_FORM_ID = :p03 \r\n"; ITSDb_GetConnection()->BeginTrans(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", ANewFormId); ITSDb_SQLBind(pADO, "p02", AFormName); ITSDb_SQLBind(pADO, "p03", AOrgFormId); pADO->ExecSQL(); sQry = "INSERT INTO TB_VMS_FORM_OBJECT ( \r\n" " VMS_FORM_OBJECT_ID, \r\n" " VMS_FORM_ID, \r\n" " VMS_FORM_DSPL_ROW, \r\n" " VMS_FORM_DSPL_CLMN, \r\n" " VMS_FORM_OBJECT_TYPE_CD, \r\n" " VMS_FONT_NAME_CD, \r\n" " VMS_FONT_COLR_CD, \r\n" " VMS_FONT_BOLD, \r\n" " VMS_FONT_SIZE, \r\n" " VMS_FONT_ALIGN, \r\n" " VMS_DSPL_TXT, \r\n" " VMS_DSPL_FIGR, \r\n" " VMS_DSPL_XCRDN, \r\n" " VMS_DSPL_YCRDN, \r\n" " VMS_DSPL_WIDTH, \r\n" " VMS_DSPL_HEIGHT, \r\n" " VMS_DSPL_BLINKING, \r\n" " VMS_DSPL_BKCOLOR, \r\n" " VMS_DSPL_SIZE, \r\n" " TRFC_FILL_CD, \r\n" " SYMB_LIB_NMBR, \r\n" " VMS_IFSC_ID \r\n" " ) \r\n" " SELECT \r\n" " VMS_FORM_OBJECT_ID, \r\n" " :p01, \r\n" " VMS_FORM_DSPL_ROW, \r\n" " VMS_FORM_DSPL_CLMN, \r\n" " VMS_FORM_OBJECT_TYPE_CD, \r\n" " VMS_FONT_NAME_CD, \r\n" " VMS_FONT_COLR_CD, \r\n" " VMS_FONT_BOLD, \r\n" " VMS_FONT_SIZE, \r\n" " VMS_FONT_ALIGN, \r\n" " VMS_DSPL_TXT, \r\n" " VMS_DSPL_FIGR, \r\n" " VMS_DSPL_XCRDN, \r\n" " VMS_DSPL_YCRDN, \r\n" " VMS_DSPL_WIDTH, \r\n" " VMS_DSPL_HEIGHT, \r\n" " VMS_DSPL_BLINKING, \r\n" " VMS_DSPL_BKCOLOR, \r\n" " VMS_DSPL_SIZE, \r\n" " TRFC_FILL_CD, \r\n" " SYMB_LIB_NMBR, \r\n" " VMS_IFSC_ID \r\n" " FROM TB_VMS_FORM_OBJECT \r\n" " WHERE VMS_FORM_ID = :p02 \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", ANewFormId); ITSDb_SQLBind(pADO, "p02", AOrgFormId); pADO->ExecSQL(); ITSDb_GetConnection()->CommitTrans(); bResult = true; } catch(EDatabaseError &E) { ITSDb_GetConnection()->RollbackTrans(); DBERRORMSG("TVMSM500M::CopyFormAdd", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { ITSDb_GetConnection()->RollbackTrans(); DBERRORMSG("TVMSM500M::CopyFormAdd", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return bResult; } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnUpClick(TObject *Sender) { try { TvObjList->BeginUpdate(); int nCurIdx = TvObjList->DataController->FocusedRowIndex;//FocusedRecordIndex; if (nCurIdx <= 0) { return; } int nUpIdx = nCurIdx-1; try { String sVal1 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColSeq->Index]); String sVal2 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColId->Index]); String sVal3 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColType->Index]); String sVal4 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColData->Index]); String sVal5 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColIfscId->Index]); int sVal6 = (TvObjList->DataController->Values[nCurIdx][ColMem->Index]); TvObjList->DataController->Values[nCurIdx][ColSeq->Index] = TvObjList->DataController->Values[nUpIdx][ColSeq->Index]; TvObjList->DataController->Values[nCurIdx][ColId->Index] = TvObjList->DataController->Values[nUpIdx][ColId->Index]; TvObjList->DataController->Values[nCurIdx][ColType->Index] = TvObjList->DataController->Values[nUpIdx][ColType->Index]; TvObjList->DataController->Values[nCurIdx][ColData->Index] = TvObjList->DataController->Values[nUpIdx][ColData->Index]; TvObjList->DataController->Values[nCurIdx][ColIfscId->Index] = TvObjList->DataController->Values[nUpIdx][ColIfscId->Index]; TvObjList->DataController->Values[nCurIdx][ColMem->Index] = TvObjList->DataController->Values[nUpIdx][ColMem->Index]; TvObjList->DataController->Values[nUpIdx][ColSeq->Index] = sVal1; TvObjList->DataController->Values[nUpIdx][ColId->Index] = sVal2; TvObjList->DataController->Values[nUpIdx][ColType->Index] = sVal3; TvObjList->DataController->Values[nUpIdx][ColData->Index] = sVal4; TvObjList->DataController->Values[nUpIdx][ColIfscId->Index] = sVal5; TvObjList->DataController->Values[nUpIdx][ColMem->Index] = sVal6; TvObjList->Controller->ClearSelection(); TvObjList->Controller->FocusedRowIndex = nUpIdx; //TvObjList->Controller->FocusedRecordIndex = nUpIdx; TvObjList->ViewData->Records[nUpIdx]->Focused = true; TvObjList->ViewData->Records[nUpIdx]->Selected = true; CxObjList->SetFocus(); //TcxCustomGridRow* ARow = TvObjList->ViewData->Rows[TvObjList->DataController->FocusedRowIndex]; } catch(...) { } } __finally { TvObjList->EndUpdate(); } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnDownClick(TObject *Sender) { try { TvObjList->BeginUpdate(); int nCurIdx = TvObjList->DataController->FocusedRowIndex;//FocusedRecordIndex; //int nCurIdx = TvObjList->DataController->FocusedRecordIndex; if (nCurIdx < 0) { return; } if (nCurIdx == TvObjList->DataController->RecordCount-1) { return; } int nDnIdx = nCurIdx+1; try { String sVal1 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColSeq->Index]); String sVal2 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColId->Index]); String sVal3 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColType->Index]); String sVal4 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColData->Index]); String sVal5 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColIfscId->Index]); int sVal6 = (TvObjList->DataController->Values[nCurIdx][ColMem->Index]); TvObjList->DataController->Values[nCurIdx][ColSeq->Index] = TvObjList->DataController->Values[nDnIdx][ColSeq->Index]; TvObjList->DataController->Values[nCurIdx][ColId->Index] = TvObjList->DataController->Values[nDnIdx][ColId->Index]; TvObjList->DataController->Values[nCurIdx][ColType->Index] = TvObjList->DataController->Values[nDnIdx][ColType->Index]; TvObjList->DataController->Values[nCurIdx][ColData->Index] = TvObjList->DataController->Values[nDnIdx][ColData->Index]; TvObjList->DataController->Values[nCurIdx][ColIfscId->Index] = TvObjList->DataController->Values[nDnIdx][ColIfscId->Index]; TvObjList->DataController->Values[nCurIdx][ColMem->Index] = TvObjList->DataController->Values[nDnIdx][ColMem->Index]; TvObjList->DataController->Values[nDnIdx][ColSeq->Index] = sVal1; TvObjList->DataController->Values[nDnIdx][ColId->Index] = sVal2; TvObjList->DataController->Values[nDnIdx][ColType->Index] = sVal3; TvObjList->DataController->Values[nDnIdx][ColData->Index] = sVal4; TvObjList->DataController->Values[nDnIdx][ColIfscId->Index] = sVal5; TvObjList->DataController->Values[nDnIdx][ColMem->Index] = sVal6; TvObjList->Controller->ClearSelection(); TvObjList->Controller->FocusedRowIndex = nDnIdx; //TvObjList->Controller->FocusedRecordIndex = nDnIdx; TvObjList->ViewData->Records[nDnIdx]->Focused = true; TvObjList->ViewData->Records[nDnIdx]->Selected = true; CxObjList->SetFocus(); //TcxCustomGridRow* ARow = TvObjList->ViewData->Rows[TvObjList->DataController->FocusedRowIndex]; } catch(...) { } } __finally { TvObjList->EndUpdate(); } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnSaveClick(TObject *Sender) { if (EdFormId->Text.IsEmpty()) { Application->MessageBox(lblText14->Caption.c_str(),//L"VMS Æû ÀúÀå\r\nVMS Æû ID¸¦ ÀÔ·ÂÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } if (EdFormName->Text.Trim().IsEmpty()) { Application->MessageBox(lblText15->Caption.c_str(),//L"VMS Æû ÀúÀå\r\nVMS Æû À̸§À» ÀÔ·ÂÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } int nObjType; TVmsFormObject *pObj; TcxGridDataController *pGDC = TvObjList->DataController; int nObjCnt = pGDC->RecordCount; String sFormId = EdFormId->Text; //String sVmsType = FVmsTypeCd; String sFormType = APP_GetCode(CbFormKind); //String sFormColor = String(CbFormColor->ItemIndex); //String sName = EdFormName->Text.Trim(); //String sExpl = EdFormDesc->Text.Trim(); //String sDispDir = APP_GetCode(CbFormDispDir); //String sDispMode = APP_GetCode(CbFormDispMode); String sVALID_YN = "Y"; if ( sFormType == String(eFormtp_figure) || sFormType == String(eFormTp_atmp) || sFormType == String(eFormTp_park) ) { for (int ii = 0; ii < nObjCnt; ii++) { String sObjSeq = VarToStr(pGDC->Values[ii][ColSeq->Index]); pObj = m_pEdtDesigner->FindObject(sObjSeq.ToInt()); if (!pObj) continue; String sObjId = pObj->Tag; nObjType = pObj->ObjType.ToIntDef(0); if (nObjType == 91 || nObjType == 92) { //@ÃàÅëÇà½Ã°£(°íÁ¤), @Ãà¼ÒÅë»óȲ(°íÁ¤) TVmsIfsc *pIfscObj = VmsIfscManager->FLists.Find(sObjId.ToIntDef(-1)); if (!pIfscObj) { sVALID_YN = "N"; break; } } if (nObjType == 101 || nObjType == 102 || nObjType == 103 || nObjType == 104) { //@ÁÖÂ÷Àå¸í, @ÁÖÂ÷¸é¼ö, @ÁÖÂ÷°¡´É¸é¼ö, @ÁÖÂ÷È¥Àâµµ TCDSPark *pParkObj = CDSParkManager->FLists.Find(sObjId); if (!pParkObj) { sVALID_YN = "N"; break; } } if (pObj->ObjType.ToIntDef(0) >= 401 && pObj->ObjType.ToIntDef(0) <= 413) { //´ë±âȯ°æ °üÃø¼Ò TCDSAtmp *pAtmpObj = CDSAtmpManager->FLists.Find(sObjId); if (pAtmpObj) { if (pAtmpObj->DEL_YN == "Y") { sVALID_YN = "N"; break; } } else { sVALID_YN = "N"; break; } } } } if (sVALID_YN != "Y") { String sMsg; sMsg = " \r\n"; sMsg += "<<< VMS Æû °´Ã¼ Áß¿¡ ¼³Á¤µÇÁö ¾ÊÀº Á¤º¸°¡ ÀÖ½À´Ï´Ù. >>>\r\n"; sMsg += " *** VMS ½ºÄÉÁì ¼³Á¤È­¸é¿¡ Ç¥ÃâµÇÁö ¾Ê½À´Ï´Ù.\r\n"; sMsg += " *** VMS ½ºÄÉÁì ¸ñ·Ï¿¡ ÀÌ¹Ì µî·ÏµÇ¾î ÀÖ´Â °æ¿ì VMS ¸Þ½ÃÁö°¡ Ç¥ÃâµÇÁö ¾Ê½À´Ï´Ù.\r\n"; sMsg += " VMS Æû Á¤º¸¸¦ ÀúÀå ÇϽðڽÀ´Ï±î?"; sMsg += " \r\n"; if (Application->MessageBox(sMsg.c_str(), L"VMS Æû À¯È¿¼º È®ÀÎ", MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) return; } bool bResult = false; m_pEdtDesigner->GetVmsFormImage(ImgForm); bResult = SaveVmsForm(sVALID_YN); if (!bResult) return; String sQry; TADOQuery *pADO = NULL; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); sQry = "DELETE TB_VMS_FORM_OBJECT \r\n" " WHERE VMS_FORM_ID = :p01 \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", sFormId); pADO->ExecSQL(); sQry = "INSERT INTO TB_VMS_FORM_OBJECT ( \r\n" " VMS_FORM_OBJECT_ID, \r\n" //N NUMBER(5) N FORM OBJECT ID " VMS_FORM_ID, \r\n" //N NUMBER(5) N VMS FORM ID " VMS_FORM_DSPL_ROW, \r\n" //N NUMBER(2) Y VMS FORM Ç¥Ãâ Çà " VMS_FORM_DSPL_CLMN, \r\n" //N NUMBER(2) Y VMS FORM Ç¥Ãâ Ä®·³ " VMS_FORM_OBJECT_TYPE_CD, \r\n" //N NUMBER(3) N VMS FORM OBJECT À¯Çü ÄÚµå " VMS_FONT_NAME_CD, \r\n" //N NUMBER(3) N VMS ±Û²Ã À¯Çü ÄÚµå " VMS_FONT_COLR_CD, \r\n" //N NUMBER(9) N VMS ±Û²Ã »ö»ó ÄÚµå " VMS_FONT_BOLD, \r\n" //N NUMBER(3) Y VMS ±Û²Ã ¹æ½Ä ÄÚµå " VMS_FONT_SIZE, \r\n" //N NUMBER(3) Y 0 VMS ±Û²Ã Å©±â " VMS_FONT_ALIGN, \r\n" //N NUMBER(1) Y 0 VMS Ç¥Ãâ ¹®ÀÚ¿­Á¤¿­¹æ½Ä(0:LEFT,1:RIGHT,2:CENTER) " VMS_DSPL_TXT, \r\n" //N VARCHAR2(200) Y VMS Ç¥Ãâ ÅØ½ºÆ® " VMS_DSPL_FIGR, \r\n" //N BLOB Y VMS Ç¥Ãâ µµÇü " VMS_DSPL_XCRDN, \r\n" //N NUMBER(5) Y VMS Ç¥Ãâ XÁÂÇ¥ " VMS_DSPL_YCRDN, \r\n" //N NUMBER(5) Y VMS Ç¥Ãâ YÁÂÇ¥ " VMS_DSPL_WIDTH, \r\n" //N NUMBER(5) Y 0 VMS Ç¥Ãâ ³ÐÀÌ " VMS_DSPL_HEIGHT, \r\n" //N NUMBER(5) Y 0 VMS Ç¥Ãâ ³ôÀÌ " VMS_DSPL_BLINKING, \r\n" //N NUMBER(1) Y 0 VMS Ç¥Ãâ Á¡¸ê ¿©ºÎ(0:Áö¼Ó, 1:Á¡¸ê) " VMS_DSPL_BKCOLOR, \r\n" //N NUMBER(1) Y 0 VMS Ç¥Ãâ ¹è°æ»ö»óÄÚµå " VMS_DSPL_SIZE, \r\n" //N NUMBER(7) Y 0 VMS Ç¥Ãâ Å©±â(¹®ÀÚ:¹®ÀÚ±æÀÌ,À̹ÌÁö:À̹ÌÁöÀüüũ±â) " TRFC_FILL_CD, \r\n" //N CHAR(1) Y 'N' FILL-IN ¸Þ½ÃÁö ¿©ºÎ " SYMB_LIB_NMBR, \r\n" //N NUMBER(4) N 0 ½É¹ú¶óÀ̺귯¸® ¹øÈ£ " VMS_IFSC_ID \r\n" //N NUMBER(10) N 0 VMS Á¤º¸Á¦°ø±¸°£ ID " ) \r\n" " VALUES ( \r\n" " :p01, \r\n" //N NUMBER(5) N FORM OBJECT ID " :p02, \r\n" //N NUMBER(5) N VMS FORM ID " 0, \r\n" //N NUMBER(2) Y VMS FORM Ç¥Ãâ Çà " 0, \r\n" //N NUMBER(2) Y VMS FORM Ç¥Ãâ Ä®·³ " :p05, \r\n" //N NUMBER(3) N VMS FORM OBJECT À¯Çü ÄÚµå " :p06, \r\n" //N NUMBER(3) N VMS ±Û²Ã À¯Çü ÄÚµå " :p07, \r\n" //N NUMBER(9) N VMS ±Û²Ã »ö»ó ÄÚµå " :p08, \r\n" //N NUMBER(3) Y VMS ±Û²Ã ¹æ½Ä ÄÚµå " :p09, \r\n" //N NUMBER(3) Y 0 VMS ±Û²Ã Å©±â " :p10, \r\n" //N NUMBER(1) Y 0 VMS Ç¥Ãâ ¹®ÀÚ¿­Á¤¿­¹æ½Ä(0:LEFT,1:RIGHT,2:CENTER) " :p11, \r\n" //N VARCHAR2(200) Y VMS Ç¥Ãâ ÅØ½ºÆ® " :p12, \r\n" //N BLOB Y VMS Ç¥Ãâ µµÇü " :p13, \r\n" //N NUMBER(5) Y VMS Ç¥Ãâ XÁÂÇ¥ " :p14, \r\n" //N NUMBER(5) Y VMS Ç¥Ãâ YÁÂÇ¥ " :p15, \r\n" //N NUMBER(5) Y 0 VMS Ç¥Ãâ ³ÐÀÌ " :p16, \r\n" //N NUMBER(5) Y 0 VMS Ç¥Ãâ ³ôÀÌ " :p17, \r\n" //N NUMBER(1) Y 0 VMS Ç¥Ãâ Á¡¸ê ¿©ºÎ(0:Áö¼Ó, 1:Á¡¸ê) " :p18, \r\n" //N NUMBER(1) Y 0 VMS Ç¥Ãâ ¹è°æ»ö»óÄÚµå " :p19, \r\n" //N NUMBER(7) Y 0 VMS Ç¥Ãâ Å©±â(¹®ÀÚ:¹®ÀÚ±æÀÌ,À̹ÌÁö:À̹ÌÁöÀüüũ±â) " :p23, \r\n" //N CHAR(1) Y 'N' FILL-IN ¸Þ½ÃÁö ¿©ºÎ " :p21, \r\n" //N NUMBER(4) N 0 ½É¹ú¶óÀ̺귯¸® ¹øÈ£ " :p22 \r\n" //N NUMBER(10) N 0 VMS Á¤º¸Á¦°ø±¸°£ ID " ) \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_GetConnection()->BeginTrans(); for (int ii = 0; ii < nObjCnt; ii++) { String sObjSeq = VarToStr(pGDC->Values[ii][ColSeq->Index]); pObj = m_pEdtDesigner->FindObject(sObjSeq.ToInt()); if (!pObj) continue; //ÀÌ·ÂÀ¸·Î Á¶È¸Çϴ°÷¿¡¼­ ÁÂÇ¥¸¦ 0x02·Î ÀúÀåÇϴµ¥ À½¼ö°¡ ³ª¿À´Â °æ¿ì //2ÀÚ¸®·Î 󸮰¡ µÇÁö ¾Ê±â ¶§¹®¿¡ ¿©±â¼­ ¸·¾ÆÁØ´Ù. if (pObj->Left < 0) pObj->Left = 0; if (pObj->Top < 0) pObj->Top = 0; nObjType = pObj->ObjType.ToIntDef(0); ITSDb_SQLBind(pADO, "p01", String(ii+1)); ITSDb_SQLBind(pADO, "p02", sFormId); //ITSDb_SQLBind(pADO, "p03", ); //ITSDb_SQLBind(pADO, "p04", ); ITSDb_SQLBind(pADO, "p05", pObj->ObjType); ITSDb_SQLBind(pADO, "p06", pObj->FontNameCode); ITSDb_SQLBind(pADO, "p07", pObj->FontColorCode); if (pObj->FontBold) ITSDb_SQLBind(pADO, "p08", "1"); else ITSDb_SQLBind(pADO, "p08", "0"); ITSDb_SQLBind(pADO, "p09", String(pObj->FontSize)); ITSDb_SQLBind(pADO, "p10", String(pObj->TextAlign)); ITSDb_SQLBind(pADO, "p11", pObj->Text); ITSDb_SQLBind(pADO, "p13", String(pObj->GetLeft())); ITSDb_SQLBind(pADO, "p14", String(pObj->GetTop())); ITSDb_SQLBind(pADO, "p15", String(pObj->GetWidth())); ITSDb_SQLBind(pADO, "p16", String(pObj->GetHeight())); if (pObj->Blink) ITSDb_SQLBind(pADO, "p17", "1"); else ITSDb_SQLBind(pADO, "p17", "0"); ITSDb_SQLBind(pADO, "p18", pObj->BkColorCode); ITSDb_SQLBind(pADO, "p19", String(pObj->ObjSize)); //ITSDb_SQLBind(pADO, "p20", ); ITSDb_SQLBind(pADO, "p21", pObj->ImageId); String sIfscId = ""; if (nObjType == 91 || nObjType == 92 || nObjType == 101 || nObjType == 102 || nObjType == 103 || nObjType == 104 || (nObjType >= 401 && nObjType <= 413) ) { sIfscId = pObj->Tag; } if (sIfscId.Trim() == "N") { sIfscId = ""; } ITSDb_SQLBind(pADO, "p22", sIfscId); String sFillIn = "N"; if (sFormType == "15") { if (nObjType == 0 || nObjType == 1 || nObjType == 2) { sFillIn = pObj->Tag; } } ITSDb_SQLBind(pADO, "p23", sFillIn); TMemoryStream *dataStream = NULL; TImage *pImg = pObj->GetImage(); dataStream = new TMemoryStream(); if (!pImg) { ImgNull->Picture->Bitmap->SaveToStream(dataStream); } else { pImg->Picture->Bitmap->SaveToStream(dataStream); } pADO->Parameters->ParamByName("p12")->LoadFromStream(dataStream, ftBlob); ITSDb_SQLExec(pADO); if (dataStream) delete dataStream; dataStream = NULL; } ITSDb_GetConnection()->CommitTrans(); bResult = true; } catch(EDatabaseError &E) { ITSDb_GetConnection()->RollbackTrans(); DBERRORMSG("TVMSM500M::BtnSaveClick", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { ITSDb_GetConnection()->RollbackTrans(); DBERRORMSG("TVMSM500M::BtnSaveClick", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } if (bResult) { Application->MessageBox(lblText16->Caption.c_str(),//L"VMS Æû Á¤º¸ ÀúÀå\r\nVMS Æû Á¤º¸¸¦ ÀúÀå ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); FUpdate = true; LoadVmsForm(); CMM_SetGridRow(CxList, TvList, sFormId, Col01->Index); DisplayInfo(); POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0); CComm_VmsFormUpdate(); } //ReForm->Lines->Clear(); //ReFormTemp->Lines->Clear(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::Cb99PropertiesChange(TObject *Sender) { if (m_bEdit) return; #if 1 String sFormType = APP_GetCode(CbFormKind); if (sFormType == "15") { String sFillIn = APP_GetCode(Cb99); if (sFillIn == "") sFillIn = "N"; TVmsFormObject *pObj = m_pEdtDesigner->FindObject(EdObjSeq->Text.ToIntDef(-1), false); if (pObj) { int nObjType = pObj->ObjType.ToIntDef(-1); if (nObjType == 0 || nObjType == 1 || nObjType == 2) { pObj->Tag = sFillIn; } } } #endif } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::CheckImageSelected() { #ifdef IMAGE_RESIZE bool selImage = false; int nImgW = 0; int nImgH = 0; int nObjCnt = m_pEdtDesigner->GetObjectCount(); for(int ii = 0; ii < nObjCnt; ii++) { TVmsFormObject *pObj = m_pEdtDesigner->GetObject(ii); if (!pObj) continue; if (!pObj->Selected) continue; #if 0 if (pObj->ObjType.ToIntDef(0) == 1 || pObj->ObjType.ToIntDef(0) == 2) { selImage = true; nImgW = pObj->GetWidth(); nImgH = pObj->GetHeight(); } else { selImage = false; break; } #else switch(pObj->ObjType.ToIntDef(0)) { case 1: //½Éº¼ case 2: //À̹ÌÁö case 3: //¼ÒÅëÁ¤º¸¹è°æÀ̹ÌÁö case 17: //¼ÒÅëÁ¤º¸À̹ÌÁö1 case 27: //¼ÒÅëÁ¤º¸À̹ÌÁö2 case 37: //¼ÒÅëÁ¤º¸À̹ÌÁö3 case 47: //¼ÒÅëÁ¤º¸À̹ÌÁö4 case 167: //@¿ìȸ¼ÒÅëÁ¤º¸À̹ÌÁö case 200: //µ¿¿µ»óÀ̹ÌÁö case 300: //½ºÆ®¸®¹Ö¿µ»óÀ̹ÌÁö case 406: //@ÅëÇÕ´ë±âµî±Þ À̹ÌÁö case 407: //@¹Ì¼¼¸ÕÁöµî±Þ À̹ÌÁö case 408: //@Ãʹ̼¼¸ÕÁöµî±Þ À̹ÌÁö case 413: //@¿ÀÁ¸µî±ÞÀ̹ÌÁö selImage = true; nImgW = pObj->GetWidth(); nImgH = pObj->GetHeight(); break; default: selImage = false; break; } if (selImage == false) { break; } #endif } if (selImage) { TNotifyEvent evtW = SeImgW->Properties->OnChange; TNotifyEvent evtH = SeImgH->Properties->OnChange; SeImgW->Properties->OnChange = NULL; SeImgH->Properties->OnChange = NULL; SeImgW->Value = nImgW; SeImgH->Value = nImgH; SeImgW->Properties->OnChange = evtW; SeImgH->Properties->OnChange = evtH; PnlImage->Visible = true; } else { PnlImage->Visible = false; } #endif } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::SeImgWHPropertiesChange(TObject *Sender) { if (m_bEdit) return; if (((TcxSpinEdit*)Sender)->Value < ((TcxSpinEdit*)Sender)->Properties->MinValue) ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MinValue; else if(((TcxSpinEdit*)Sender)->Value > ((TcxSpinEdit*)Sender)->Properties->MaxValue && ((TcxSpinEdit*)Sender)->Properties->MaxValue) ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MaxValue; #ifdef IMAGE_RESIZE int nImgW = SeImgW->Value; int nImgH = SeImgH->Value; int nObjCnt = m_pEdtDesigner->GetObjectCount(); for(int ii = 0; ii < nObjCnt; ii++) { TVmsFormObject *pObj = m_pEdtDesigner->GetObject(ii); if (!pObj) continue; if (!pObj->Selected) continue; #if 0 if (pObj->ObjType.ToIntDef(0) == 1 || pObj->ObjType.ToIntDef(0) == 2) { pObj->GetImage()->AutoSize= false; pObj->GetImage()->Stretch = true; pObj->GetImage()->Width = nImgW; pObj->GetImage()->Height = nImgH; pObj->SetSize(nImgW, nImgH); } #else switch(pObj->ObjType.ToIntDef(0)) { case 1: //½Éº¼ case 2: //À̹ÌÁö case 3: //¼ÒÅëÁ¤º¸¹è°æÀ̹ÌÁö case 17: //¼ÒÅëÁ¤º¸À̹ÌÁö1 case 27: //¼ÒÅëÁ¤º¸À̹ÌÁö2 case 37: //¼ÒÅëÁ¤º¸À̹ÌÁö3 case 47: //¼ÒÅëÁ¤º¸À̹ÌÁö4 case 167: //@¿ìȸ¼ÒÅëÁ¤º¸À̹ÌÁö case 200: //µ¿¿µ»óÀ̹ÌÁö case 300: //½ºÆ®¸®¹Ö¿µ»óÀ̹ÌÁö case 406: //@ÅëÇÕ´ë±âµî±Þ À̹ÌÁö case 407: //@¹Ì¼¼¸ÕÁöµî±Þ À̹ÌÁö case 408: //@Ãʹ̼¼¸ÕÁöµî±Þ À̹ÌÁö case 413: //@¿ÀÁ¸µî±ÞÀ̹ÌÁö pObj->GetImage()->AutoSize= false; pObj->GetImage()->Stretch = true; pObj->GetImage()->Width = nImgW; pObj->GetImage()->Height = nImgH; pObj->SetSize(nImgW, nImgH); break; default: break; } #endif } #endif } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnCopyAdd212Click(TObject *Sender) { int nIdx = TvList->DataController->FocusedRecordIndex; if (nIdx < 0) return; #if 0 String sFormName = InputBox(lblText9->Caption,//"Æû¸íĪ", lblText10->Caption,//"½Å±Ô Æû¸íĪ ÀÔ·ÂÇϼ¼¿ä(60Byte).", EdFormName->Text);//lblText9->Caption);//"Æû¸íĪ" ); sFormName = sFormName.Trim(); if (sFormName == lblText9->Caption//"Æû¸íĪ" || sFormName == "") #else String sFormName = EdFormName->Text; bool bInput = InputQuery(lblText9->Caption,//"Æû¸íĪ", lblText10->Caption,//"½Å±Ô Æû¸íĪ ÀÔ·ÂÇϼ¼¿ä(60Byte).", sFormName);//lblText9->Caption);//"Æû¸íĪ" ); if (!bInput || sFormName == "") #endif { return; } if (AnsiString(sFormName).Length() > 60) { Application->MessageBox(lblText11->Caption.c_str(),//L"Æû¸íĪÀº 60Byte¸¦ ÃʰúÇÒ ¼ö ¾ø½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } String sFormId = EdFormId->Text; if (sFormId.IsEmpty()) { Application->MessageBox(lblText12->Caption.c_str(),//L"VMS Æû º¹»ç Ãß°¡\r\nº¹»ç Ãß°¡ÇÒ VMS ÆûÀ» ¸ñ·Ï¿¡¼­ ¼±ÅÃÇϼ¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } int nFormId; if (!GetNextVmsFormId(nFormId)) { Application->MessageBox(lblText1->Caption.c_str(),//L"»õ·Î¿î VMS ÆûÁ¤º¸¸¦ »ý¼ºÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.\r\nÇÁ·Î±×·¥ Á¾·áÈÄ¿¡ ´Ù½Ã ½ÃµµÇØ º¸¼¼¿ä.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } if (CopyFormAdd212(sFormId, String(nFormId), sFormName)) { Application->MessageBox(lblText13->Caption.c_str(),//L"VMS Æû º¹»ç Ãß°¡\r\nVMS Æû Á¤º¸¸¦ º¹»ç Ãß°¡ ÇÏ¿´½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); FUpdate = true; LoadVmsForm(); CMM_SetGridRow(CxList, TvList, String(nFormId), Col01->Index); DisplayInfo(); POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0); CComm_VmsFormUpdate(); } } //--------------------------------------------------------------------------- bool __fastcall TVMSM500M::CopyFormAdd212(String AOrgFormId, String ANewFormId, String AFormName) { bool bResult = false; String sQry; TADOQuery *pADO = NULL; //2*10 ==> 2*12(ÀÛÀº°Å->Å«°Å·Î) try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); sQry = "INSERT INTO TB_VMS_FORM (VMS_FORM_ID, \r\n" " VMS_TYPE_CD, \r\n" " VMS_FORM_TYPE_CD, \r\n" " VMS_FORM_COLR_CD, \r\n" " VMS_FORM_NM, \r\n" " VMS_FORM_EXPL, \r\n" " VMS_FORM_DSPL_DRCT_CD, \r\n" " VMS_FORM_DSPL_MTHD_CD, \r\n" " SYMB_LIB_NMBR, \r\n" " VMS_FORM_IMAG) \r\n" "SELECT :p01, \r\n" " 'VMP2', \r\n" " VMS_FORM_TYPE_CD, \r\n" " VMS_FORM_COLR_CD, \r\n" " :p02, \r\n" " VMS_FORM_EXPL, \r\n" " VMS_FORM_DSPL_DRCT_CD, \r\n" " VMS_FORM_DSPL_MTHD_CD, \r\n" " SYMB_LIB_NMBR, \r\n" " VMS_FORM_IMAG \r\n" " FROM TB_VMS_FORM \r\n" " WHERE VMS_FORM_ID = :p03 \r\n"; ITSDb_GetConnection()->BeginTrans(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", ANewFormId); ITSDb_SQLBind(pADO, "p02", AFormName); ITSDb_SQLBind(pADO, "p03", AOrgFormId); pADO->ExecSQL(); sQry = "INSERT INTO TB_VMS_FORM_OBJECT ( \r\n" " VMS_FORM_OBJECT_ID, \r\n" " VMS_FORM_ID, \r\n" " VMS_FORM_DSPL_ROW, \r\n" " VMS_FORM_DSPL_CLMN, \r\n" " VMS_FORM_OBJECT_TYPE_CD, \r\n" " VMS_FONT_NAME_CD, \r\n" " VMS_FONT_COLR_CD, \r\n" " VMS_FONT_BOLD, \r\n" " VMS_FONT_SIZE, \r\n" " VMS_FONT_ALIGN, \r\n" " VMS_DSPL_TXT, \r\n" " VMS_DSPL_FIGR, \r\n" " VMS_DSPL_XCRDN, \r\n" " VMS_DSPL_YCRDN, \r\n" " VMS_DSPL_WIDTH, \r\n" " VMS_DSPL_HEIGHT, \r\n" " VMS_DSPL_BLINKING, \r\n" " VMS_DSPL_BKCOLOR, \r\n" " VMS_DSPL_SIZE, \r\n" " TRFC_FILL_CD, \r\n" " SYMB_LIB_NMBR, \r\n" " VMS_IFSC_ID \r\n" " ) \r\n" " SELECT \r\n" " VMS_FORM_OBJECT_ID, \r\n" " :p01, \r\n" " VMS_FORM_DSPL_ROW, \r\n" " VMS_FORM_DSPL_CLMN, \r\n" " VMS_FORM_OBJECT_TYPE_CD, \r\n" " VMS_FONT_NAME_CD, \r\n" " VMS_FONT_COLR_CD, \r\n" " VMS_FONT_BOLD, \r\n" " VMS_FONT_SIZE, \r\n" " VMS_FONT_ALIGN, \r\n" " VMS_DSPL_TXT, \r\n" " VMS_DSPL_FIGR, \r\n" " 32+VMS_DSPL_XCRDN, \r\n" //32Çȼ¿ 2°³Â÷À̴ϱî 32Çȼ¿¸¸Å­ 1°³¸¸Å­ °¡·ÎÀ§Ä¡ À̵¿ " VMS_DSPL_YCRDN, \r\n" " VMS_DSPL_WIDTH, \r\n" " VMS_DSPL_HEIGHT, \r\n" " VMS_DSPL_BLINKING, \r\n" " VMS_DSPL_BKCOLOR, \r\n" " VMS_DSPL_SIZE, \r\n" " TRFC_FILL_CD, \r\n" " SYMB_LIB_NMBR, \r\n" " VMS_IFSC_ID \r\n" " FROM TB_VMS_FORM_OBJECT \r\n" " WHERE VMS_FORM_ID = :p02 \r\n"; ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", ANewFormId); ITSDb_SQLBind(pADO, "p02", AOrgFormId); pADO->ExecSQL(); ITSDb_GetConnection()->CommitTrans(); bResult = true; } catch(EDatabaseError &E) { ITSDb_GetConnection()->RollbackTrans(); DBERRORMSG("TVMSM500M::CopyFormAdd212", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { ITSDb_GetConnection()->RollbackTrans(); DBERRORMSG("TVMSM500M::CopyFormAdd212", String(e.ClassName()), e.Message, sQry); throw Exception(String(e.ClassName()) + e.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return bResult; } void __fastcall TVMSM500M::PgEditClick(TObject *Sender) { try { if (PgEdit->Properties->ActivePage == TsDirect) { if (ReForm->Enabled) ReForm->SetFocus(); } } catch(Exception &e) { } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtrnReFormClearClick(TObject *Sender) { ReForm->Lines->Clear(); } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnRedClick(TObject *Sender) { TcxButton *pClrBtn = (TcxButton*)Sender; switch(pClrBtn->Tag) { case 0 : ReForm->SelAttributes->Color = clLime; break; case 1 : ReForm->SelAttributes->Color = clYellow; break; case 2 : ReForm->SelAttributes->Color = clRed; break; } } //--------------------------------------------------------------------------- void __fastcall TVMSM500M::BtnObjLimeClick(TObject *Sender) { if (m_bEdit) return; //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return; TcxButton *pClrBtn = (TcxButton*)Sender; m_pEdtDesigner->SetObejctFontColorCode(String(pClrBtn->Tag)); } //---------------------------------------------------------------------------