//--------------------------------------------------------------------------- #include #include #include #include #include "ITSSkinF.h" #include "ITSUtilF.h" #include "AppGlobalF.h" #include "CDSFontF.h" #include "CDSVmsIfscF.h" #include "CDSVmsFormF.h" #include "CDSVmsTextItemF.h" #pragma hdrstop #include "FrmVmsMsgUserDispF.h" #include "FrmVmsFormSelF.h" #include "VMSM710MF.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 link "cxHint" #pragma link "dxCustomHint" #pragma link "dxScreenTip" #pragma link "dxSkinsForm" #pragma link "dxGDIPlusClasses" #pragma link "FRAME_VmsSchListF" #pragma resource "*.dfm" TFrmVmsMsgUserDisp *FrmVmsMsgUserDisp = NULL; //--------------------------------------------------------------------------- __fastcall TFrmVmsMsgUserDisp::TFrmVmsMsgUserDisp(TComponent* Owner) : TForm(Owner) { //CMM_SetFormPosition(g_AppCfg.bSaveForm); ITSSkin_Initialize(Application, g_AppCfg.sLang); ITSSkin_Caption(false); ITSSkin_Load(this); //CMM_LoadForm(g_sFormsDir, this); SetColorScheme(g_AppCfg.sSkinName); FUpdate= false; FTitle = Caption;//"VMS ¹®ÀÚ½Ä Æû°ü¸®"; FListSymb = new TList; EditMode = false; FSelVmsIds = new TStringList(); PgEdit->ActivePage = TsEdit;//TsDirect;//TsEdit; //PgFormTab->ActivePage = TsForm; FRAMEVmsSchList1->PnlTop->Visible = true; FRAMEVmsSchList1->PnlBottom->Visible = false; FRAMEVmsSchList1->ColumnSel->Visible = true; //FSelObjType = eSelObjNone; PnlObjCctv->Align = alClient; PnlObjSymb->Align = alClient; PnlObjText->Align = alClient; 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 = ""; FLastImageFileName = ""; EdFormName->Clear(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::SetColorScheme(String ASkinName) { dxSkinController1->SkinName = ASkinName; dxSkinController1->Refresh(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::CommClose() { try { if (m_pEdtDesigner) { delete m_pEdtDesigner; m_pEdtDesigner = NULL; } APP_DelVmsSizeCombo(CbSizeType); ClearSymbloList(); SAFE_DELETE(FListSymb); CComm_Terminate(); ITSSkin_Term(); //CMM_SaveForm(g_sFormsDir, this); } catch(...) { } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::FormCreate(TObject *Sender) { ScrollBox1->ParentColor = true; InitDbLoading(); m_pEdtDesigner = new TVmsFormDesigner(PnlEditForm); FOR_STL(TCDSFontColor*, pObj, CDSFontManager->FFontColors) { m_pEdtDesigner->InitFontColor(pObj->VMS_FONT_COLR_CD, (TColor)pObj->VMS_FONT_COLR_VAL); } FOR_STL(TCDSBackColor*, pObj, CDSFontManager->FBackColors) { m_pEdtDesigner->InitBackColor(pObj->VMS_BACK_COLR_CD, (TColor)pObj->VMS_BACK_COLR_VAL); } FOR_STL(TCDSFontName*, pObj, CDSFontManager->FFontNames) { m_pEdtDesigner->InitFontName(pObj->VMS_FONT_NAME_CD, pObj->VMS_FONT_NAME_NM); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::InitDbLoading() { // INITDATA Application->ProcessMessages(); if (!VmsCtlrManager) { VmsCtlrManager = new TVmsCtlrManager(); } VmsCtlrManager->LoadVmsModlSize(); VmsCtlrManager->LoadFromDb(); if (SysCodeManager == NULL) { SysCodeManager = new TSysCodeManager(); } SysCodeManager->LoadFromDb(); if (!VmsTextItemManager) { VmsTextItemManager = new TVmsTextItemManager(); } VmsTextItemManager->LoadFromDb(); if(!CDSFontManager) { CDSFontManager = new TCDSFontManager(); } CDSFontManager->LoadFontInfo(); if (!CenterCommManager) { CenterCommManager = new TCenterCommManager(); } CenterCommManager->LoadFromDb(g_AppCfg.PRCS_ID); FCommCtrlTarget = CenterCommManager->FLists.Find("24"); // ±ä±Þ¹®¾Èµî·Ï } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::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)); TDateTime dtEnd = Now() + ((double)1 / (double)24); DtStrDate->Date = Now(); DtEndDate->Date = dtEnd; DtStrTime->Time = Now(); DtEndTime->Time = dtEnd; Refresh(); FormInit(); ChangeEditMode(1); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::FormInit() { //TvList->OptionsView->NoDataToDisplayInfoText = "<µî·ÏµÇ¾î ÀÖ´Â Æû Á¤º¸°¡ ¾ø½À´Ï´Ù>"; m_pEdtDesigner->ApplicationHandle = (long)Handle; //VMS»çÀÌÁî APP_FillVmsSizeType(CbSizeType, false); //ÆûÀ¯Çü APP_FillCode(CbFormType, "VMS_FORM_TYPE_CD"); //Ç¥Ãâ¹æ¹ý APP_FillCode(CbFormDsplEff, "VMS_FORM_DSPL_EFF_CD"); //Æû°´Ã¼Á¾·ù APP_FillCode(CbObjKind, "VMS_FORM_OBJ_KIND_CD"); CbObjKind->ItemIndex = -1; FormObjectInit(); ReForm->Paragraph->Numbering = nsNone; ReForm->Paragraph->Alignment = taCenter;//enum TAlignment { taLeftJustify, taRightJustify, taCenter }; FNewDb = false; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::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; //Æû»ö»ó CbFormBkClr->Items->Clear(); CbObjBkClr->Items->Clear(); FOR_STL(TCDSBackColor*, pObj, CDSFontManager->FBackColors) { CbFormBkClr->Items->AddObject("", (TObject*)pObj->VMS_BACK_COLR_VAL); CbObjBkClr->Items->AddObject("", (TObject*)pObj->VMS_BACK_COLR_VAL); } CbFormBkClr->ItemIndex = 0; CbObjBkClr->ItemIndex = 0; //CbFormBkClr->Items->AddObject("", (TObject*)clBlack); //CbFormBkClr->Items->AddObject("", (TObject*)clRed); //CbFormBkClr->Items->AddObject("", (TObject*)clLime); //CbFormBkClr->Items->AddObject("", (TObject*)clYellow); //°´Ã¼¹è°æ»ö»ó //CbObjBkClr->Items->AddObject("", (TObject*)clBlack); //CbObjBkClr->Items->AddObject("", (TObject*)clRed); //CbObjBkClr->Items->AddObject("", (TObject*)clLime); //CbObjBkClr->Items->AddObject("", (TObject*)clYellow); //¹®ÀÚ¿­»ö»ó CbFontClr->Items->Clear(); FOR_STL(TCDSFontColor*, pObj, CDSFontManager->FFontColors) { CbFontClr->Items->AddObject("", (TObject*)pObj->VMS_FONT_COLR_VAL); } CbFontClr->ItemIndex = 0; //Á÷Á¢ÀÔ·Â ¹®ÀÚ¿­»ö»ó CbFontColorRe->Items->Clear(); CbFontColorRe->Items = CbFontClr->Items; CbFontColorRe->ItemIndex = 0; //VMS Font APP_FillCode(CbFontName, "FONT_KIND_CD"); APP_FillCode(CbFontNameRe, "FONT_KIND_CD"); APP_SetCode(CbFontNameRe, "02"); // ±¼¸²Ã¼ CbFillIn->Properties->Items->Clear(); CbFillIn1->Properties->Items->Clear(); CbTextFillIn->Properties->Items->Clear(); CbFillIn->Properties->Items->AddObject("¹®ÀÚ¿­(Fill In) Ãß°¡", (TObject*)NULL); CbFillIn1->Properties->Items->AddObject("-Fill In-", (TObject*)NULL); CbTextFillIn->Properties->Items->AddObject("-¹®ÀÚ¿­ ¼Ó¼º-", (TObject*)NULL); FOR_STL(TVmsTextItem*, pObj, VmsTextItemManager->FLists) { CbFillIn->Properties->Items->AddObject(pObj->TXT_ITEM_FILLIN, (TObject*)pObj); //CbTextFillIn->Properties->Items->AddObject(pObj->TXT_ITEM_ID, (TObject*)pObj); CbTextFillIn->Properties->Items->Add(" [" + pObj->TXT_ITEM_ID + "] " + pObj->TXT_ITEM_FILLIN); if (pObj->TXT_ITEM_ID == DFLT_TEXT_TYPE) { continue; } CbFillIn1->Properties->Items->AddObject(pObj->TXT_ITEM_FILLIN, (TObject*)pObj); } CbFillIn->ItemIndex = 0; CbFillIn1->ItemIndex = 0; CbTextFillIn->ItemIndex = 0; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; CbSizeType->ItemIndex = -1; CbSizeType->ItemIndex = 0; //BtnInsertClick((TObject*)BtnInsert); int nResult = CComm_Initialize((long)Handle, g_AppCfg.PRCS_ID, "P04010", 0); if (!EditMode && g_AppCfg.PARAM1 != "" && g_AppCfg.PARAM2 != "") { APP_SetCode(CbSizeType, g_AppCfg.PARAM1); CheckedVmsList(false); String sSelVmsCtlrId = g_AppCfg.PARAM2; int nSelVmsIdx = CMM_FindGridData(FRAMEVmsSchList1->TvList->DataController, sSelVmsCtlrId, FRAMEVmsSchList1->Column01->Index); if (nSelVmsIdx >= 0) { CMM_SetGridRow(FRAMEVmsSchList1->CxList, FRAMEVmsSchList1->TvList, sSelVmsCtlrId, FRAMEVmsSchList1->Column01->Index); FRAMEVmsSchList1->TvList->DataController->Values[nSelVmsIdx][FRAMEVmsSchList1->ColumnSel->Index] = true; } } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::BtnCloseClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::FormClose(TObject *Sender, TCloseAction &Action) { CommClose(); FrmVmsMsgUserDisp = NULL; Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::FormCloseQuery(TObject *Sender, bool &CanClose) { if (FUpdate) { } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::ChangeEditMode(int AEdit) { bool bEnabled = false; CbFormType->Enabled = false; switch(AEdit) { case 0: //ÆíÁý¹öưŬ¸¯ { BtnEdit->Enabled = true; //BtnInsert->Enabled = false; BtnDelete->Enabled = false; BtnSave->Enabled = true; BtnEdit->Caption = "Ãë¼Ò";//"Ãë¼Ò"; BtnEdit->Hint = "µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò";//µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò"; EditMode = true; } break; case 1: //ÆíÁý[Ãë¼Ò]¹öưŬ¸¯ { FormClear(); //È­¸éÀ» ¸ðµÎ Áö¿î´Ù. BtnEdit->Enabled = false; BtnInsert->Enabled = true; BtnDelete->Enabled = false; BtnSave->Enabled = false; BtnEdit->Caption = "ÆíÁý";//"ÆíÁý"; BtnEdit->Hint = "µ¥ÀÌÅÍ ÆíÁý";//µ¥ÀÌÅÍ ÆíÁý"; //bEnabled = true; EditMode = false; } break; case 2: //Ãß°¡ { BtnEdit->Enabled = true; //BtnInsert->Enabled = false; BtnDelete->Enabled = false; BtnSave->Enabled = true; BtnEdit->Caption = "Ãë¼Ò";//"Ãë¼Ò"; BtnEdit->Hint = "µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò";//µ¥ÀÌÅÍ ÆíÁý Ãë¼Ò"; EditMode = true; //CbFormType->Enabled = true; } break; case 3: //¼öÁ¤¸ðµå { BtnEdit->Enabled = true; BtnInsert->Enabled = true; BtnDelete->Enabled = true; BtnSave->Enabled = false; BtnEdit->Caption = "ÆíÁý";//"ÆíÁý"; BtnEdit->Hint = "µ¥ÀÌÅÍ ÆíÁý";//µ¥ÀÌÅÍ ÆíÁý"; bEnabled = true; EditMode = false; } break; } BtnSaveImgFile->Enabled = false; if (ImgForm->Picture->Bitmap != NULL) { if (ImgForm->Picture->Bitmap->Height != 0) { BtnSaveImgFile->Enabled = true; } } #if 0 if (AEdit == 0 || AEdit == 2) { GrpList->Enabled = false; } else { GrpList->Enabled = true; } #endif //PnlFormInfo->Enabled = EditMode; PnlObjProperty->Enabled = EditMode; PnlFormObjCmd->Enabled = EditMode; BtnReApply->Enabled = EditMode; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::BtnInsertClick(TObject *Sender) { if (BtnInsert->Caption.Pos("Ãß°¡")) { String sFormMsgType = CbMsgType->Text; if (sFormMsgType.Pos("±ä±Þ")) { FVMS_FORM_TYPE = FORM_TYPE_EMER; } else { FVMS_FORM_TYPE = FORM_TYPE_PUBR; } FormClear(); String newFormId = GetNextVmsFormId(FVMS_FORM_TYPE.SubString(1,1)); EdFormId->Text = newFormId; ChangeEditMode(2); FNewDb = true; //ÆûÀ¯ÇüÀ» ¼³Á¤ APP_SetCode(CbFormType, FVMS_FORM_TYPE); CbFormDsplEff->ItemIndex = CbFormDsplEff->Properties->Items->Count-1; EdFormName->SetFocus(); PgEdit->ActivePage = TsDirect; ReForm->SetFocus(); BtnSendForm->Enabled = true; BtnLoadForm->Enabled = true; CbMsgType->Enabled = false; BtnInsert->Caption = "Ãë¼Ò"; } else { BtnInsert->Caption = "¸Þ½ÃÁö Ãß°¡"; ChangeEditMode(1); BtnSendForm->Enabled = false; BtnLoadForm->Enabled = false; CbMsgType->Enabled = true; EdFormId->Clear(); } } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgUserDisp::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 = "00"; //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 TFrmVmsMsgUserDisp::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 TFrmVmsMsgUserDisp::BtnDeleteClick(TObject *Sender) { #if 0 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; ITSDb_GetConnection()->BeginTrans(); if (DelVmsForm(sFormId)) { ITSDb_GetConnection()->CommitTrans(); 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(); } else { ITSDb_GetConnection()->RollbackTrans(); } #endif } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::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 TFrmVmsMsgUserDisp::ClearSymbloList() { for(int ii = 0; ii < FListSymb->Count; ii++) { Graphics::TBitmap *bitmap = (Graphics::TBitmap *)FListSymb->Items[ii]; delete bitmap; } FListSymb->Clear(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::CbSizeTypePropertiesChange(TObject *Sender) { EdSizeType->Text = CbSizeType->Text; BtnSearchClick(NULL); FRAMEVmsSchList1->CxList->SetFocus(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::BtnSearchClick(TObject *Sender) { RefreshData(); MakeVmsEditPanel(); EdFocus->SetFocus(); ChangeEditMode(1); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::MakeVmsEditPanel() { TVmsSizeType *pVmsSizeType = APP_GetVmsSizeTypeObject(CbSizeType); if (pVmsSizeType == NULL) return; FVmsTypeCd = pVmsSizeType->TypeCd; FVmsWidth = pVmsSizeType->Width; FVmsHeight = pVmsSizeType->Height; FVmsCols = pVmsSizeType->Cols; FVmsRows = pVmsSizeType->Rows; ImgForm->Width = FVmsWidth; ImgForm->Height = FVmsHeight; ImgForm->Picture->Bitmap->Width = FVmsWidth; ImgForm->Picture->Bitmap->Height = FVmsHeight; { PnlEdtBack->Width = FVmsWidth+4; PnlEdtBack->Height= FVmsHeight+4; PnlRePreview->Width = FVmsWidth+4; PnlRePreview->Height= FVmsHeight+4; PnlRePreview->Color = clWhite; ImgEdtPreview->Left = 2; ImgEdtPreview->Top = 2; ImgEdtPreview->Width = FVmsWidth; ImgEdtPreview->Height= FVmsHeight; ImgEdtPreview->Picture->Bitmap->Width = FVmsWidth; ImgEdtPreview->Picture->Bitmap->Height = FVmsHeight; m_pEdtDesigner->DrawPreviewModuleBack(ImgEdtPreview, clBlack, FVmsRows, FVmsCols); ReForm->Color = clBlack; m_pEdtDesigner->Clear(); m_pEdtDesigner->SizeType = FVmsTypeCd; m_pEdtDesigner->SetSize(FVmsWidth, FVmsHeight); m_pEdtDesigner->SetPos(0, 0); m_pEdtDesigner->BkColorCode = "00"; m_pEdtDesigner->EditMode = true; m_pEdtDesigner->Show(); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::RefreshData() { FormClear(); TVmsSizeType *pVmsSizeType = APP_GetVmsSizeTypeObject(CbSizeType); if (pVmsSizeType == NULL) return; FVmsTypeCd = pVmsSizeType->TypeCd; FVmsWidth = pVmsSizeType->Width; FVmsHeight = pVmsSizeType->Height; PnlEdtBack->Width = FVmsWidth+4; PnlEdtBack->Height= FVmsHeight+4; m_pEdtDesigner->Clear(); m_pEdtDesigner->SizeType = FVmsTypeCd; m_pEdtDesigner->SetSize(FVmsWidth, FVmsHeight); m_pEdtDesigner->SetPos(0, 0); m_pEdtDesigner->BkColorCode = "00"; m_pEdtDesigner->EditMode = true; m_pEdtDesigner->Show(); FRAMEVmsSchList1->UpdateList(FVmsTypeCd); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::FormClear() { //FSelObjType = eSelObjNone; FSelIdx = -1; ImgForm->Picture->Bitmap->FreeImage(); ImgForm->Picture->Bitmap = NULL; EdFormId->Clear(); //EdFormName->Clear(); CbFormType->ItemIndex = 0; CbFormDsplEff->ItemIndex = 1; CbFormBkClr->ItemIndex = 0; FormObjectClear(); FNewDb = false; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::FormObjectClear() { m_pEdtDesigner->Clear(); CMM_ClearGridTableView(TvObjList); //ReForm->Lines->Clear(); EdDsplTxt->Text = ""; EdCctvId->Text = ""; EdPictNm->Text = ""; SeLeft->Value = 0; SeTop->Value = 0; ChkBlinking->Checked = false; SePictW->Value = 0; SePictH->Value = 0; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::DisplayInfo() { //TcxTabSheet* pActive = PgFormTab->ActivePage; #if 0 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); } #endif } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::DisplayFormInfo(int AIdx) { #if 0 TcxGridDataController *pDc = TvList->DataController; EdSizeType->Text = CbSizeType->Text; EdFormId->Text = VarToStr(pDc->Values[AIdx][ColVMS_FORM_ID->Index]); EdFormName->Text = VarToStr(pDc->Values[AIdx][ColVMS_FORM_NM->Index]); CbFormBkClr->ItemIndex = CDSFontManager->GetBackColorIndex(VarToStr(pDc->Values[AIdx][ColBACK_CLR->Index]).ToIntDef(0)); m_sFormTypeCd = VarToStr(pDc->Values[AIdx][ColVMS_FORM_TYPE->Index]); APP_SetCode(CbFormType, m_sFormTypeCd); APP_SetCode(CbFormDsplEff, VarToStr(pDc->Values[AIdx][ColDSPL_EFF->Index])); m_pEdtDesigner->BkColorCode = CDSFontManager->GetBackColorCode((int)CbFormBkClr->Selected); LoadFormObjectInfo(EdFormId->Text, m_pEdtDesigner, m_sFormTypeCd); SelObjectListData(); #endif } //--------------------------------------------------------------------------- String __fastcall TFrmVmsMsgUserDisp::FindObjectKindName(String AObjKind, String AFillIn) { if (AFillIn != NULL && AFillIn != "") { TVmsTextItem *pObj = VmsTextItemManager->FLists.Find(AFillIn); if (pObj != NULL) { return pObj->TXT_ITEM_NM; } } TSysClssCode *pSysClssCd = SysCodeManager->FLists.Find("VMS_FORM_OBJ_KIND_CD"); if (pSysClssCd) { TSysCode *pSysCode = pSysClssCd->FLists.Find(AObjKind); if (pSysCode != NULL) { return pSysCode->CD_NM; } } return "--???--"; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::CheckedVmsList(bool ASelected) { int nRows = FRAMEVmsSchList1->TvList->DataController->DataRowCount; for (int ii = 0; ii < nRows; ii++) { FRAMEVmsSchList1->TvList->DataController->Values[ii][FRAMEVmsSchList1->ColumnSel->Index] = ASelected; } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::OnWindowIpcMessage(TMessage &Msg) { COPYDATASTRUCT *pCopyData = (COPYDATASTRUCT*) Msg.LParam; if (pCopyData) { ST_WM_IPC_DATA *pIpcData = (ST_WM_IPC_DATA*)pCopyData->lpData; if (pIpcData && !EditMode) { ST_WM_IPC_DATA wmData; memcpy((char*)&wmData, (char*)pIpcData, sizeof(ST_WM_IPC_DATA)); ReplyMessage(0); APP_SetCode(CbSizeType, String(wmData.Param1)); CheckedVmsList(false); String sSelVmsCtlrId = String(wmData.Param2); int nSelVmsIdx = CMM_FindGridData(FRAMEVmsSchList1->TvList->DataController, sSelVmsCtlrId, FRAMEVmsSchList1->Column01->Index); if (nSelVmsIdx >= 0) { CMM_SetGridRow(FRAMEVmsSchList1->CxList, FRAMEVmsSchList1->TvList, sSelVmsCtlrId, FRAMEVmsSchList1->Column01->Index); FRAMEVmsSchList1->TvList->DataController->Values[nSelVmsIdx][FRAMEVmsSchList1->ColumnSel->Index] = true; } } } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::FnFormObjectSelected(TMessage &Msg) { m_bEdit = true; try { TVmsFormObject *pObj = (TVmsFormObject *)Msg.LParam; if (!pObj) return; if (!pObj->Selected) return; String sFormType = APP_GetCode(CbFormType); String sObjKind = pObj->ObjType; APP_SetCode(CbObjKind, sObjKind); EdObjSeq->Text = String(pObj->ObjSeq); EdObjId->Text = pObj->ObjId; ChkBlinking->Checked = pObj->Blink; CbObjBkClr->ItemIndex = pObj->BkColorCode.ToInt(); SeLeft->Value = pObj->GetLeft(); SeTop->Value = pObj->GetTop(); if (sObjKind == FORM_OBJ_KIND_CCTV) { EdCctvId->Text = pObj->Text; } else if (sObjKind == FORM_OBJ_KIND_TEXT) { APP_SetCode(CbObjKind, pObj->ObjKind); APP_SetCode(CbTextFillIn, pObj->FillIn); CbFontClr->ItemIndex = CDSFontManager->GetFontColorIndex(pObj->FontColorCode); SeFontSize->Value = pObj->FontSize; ChkFontBold->Checked = pObj->FontBold; CbTextAlign->ItemIndex = pObj->TextAlign; APP_SetCode(CbFontName, pObj->FontNameCode); if (EdDsplTxt->Text != pObj->Text) { EdDsplTxt->Text = pObj->Text; } if (pObj->FillIn == DFLT_TEXT_TYPE) { // ±âŸ¹®ÀÚ¿­ EdDsplTxt->Properties->ReadOnly = false; } else { // Fill In EdDsplTxt->Properties->ReadOnly = true; } } else if (sObjKind == FORM_OBJ_KIND_IMAGE) { EdPictNm->Text = pObj->Text; SePictW->Value = pObj->GetWidth(); SePictH->Value = pObj->GetHeight(); } if (pObj->DrawType == odtText) { APP_SetCode(CbFontName, pObj->FontNameCode); CbFontClr->ItemIndex = CDSFontManager->GetFontColorIndex(pObj->FontColorCode); SeFontSize->Value = pObj->FontSize; ChkFontBold->Checked = pObj->FontBold; CbTextAlign->ItemIndex = pObj->TextAlign; } else { APP_SetCode(CbObjKind, pObj->ObjType); if (EdDsplTxt->Text != pObj->Text) EdDsplTxt->Text = pObj->Text; } 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 TFrmVmsMsgUserDisp::TvObjListFocusedRecordChanged(TcxCustomGridTableView *Sender, TcxCustomGridRecord *APrevFocusedRecord, TcxCustomGridRecord *AFocusedRecord, bool ANewItemRecordFocusingChanged) { 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) { #if 0 String sObjKind = pObj->ObjType; APP_SetCode(CbObjKind, sObjKind); ChangeFormObjectPanel(sObjKind); EdObjId->Text = pObj->ObjId; SeLeft->Value = pObj->GetLeft(); SeTop->Value = pObj->GetTop(); #endif } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::AddObjectToList(TVmsFormObject *pObj, bool bSelect/*=false*/) { int nAddRow = -1; String sFormType = APP_GetCode(CbFormType); 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][ColObjKind->Index] = FindObjectKindName(pObj->ObjType,pObj->FillIn); pGDC->Values[nAddRow][ColData->Index] = pObj->Text; //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][ColObjMem->Index] = (int)pObj; } __finally { pGDC->EndUpdate(); TvObjList->EndUpdate(); if (bSelect && pGDC->RecordCount > 0) if (nAddRow >= 0) pGDC->FocusedRecordIndex = nAddRow; } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::BtnSortReClick(TObject *Sender) { TcxButton *pBtn = (TcxButton *)Sender; ReForm->Paragraph->Numbering = nsNone; ReForm->Paragraph->Alignment = (TAlignment)pBtn->Tag; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::BtnBoldReClick(TObject *Sender) { if (ReForm->SelAttributes->Style.Contains(fsBold)) ReForm->SelAttributes->Style = TFontStyles() >> fsBold; else ReForm->SelAttributes->Style = TFontStyles() << fsBold; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::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 TFrmVmsMsgUserDisp::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 TFrmVmsMsgUserDisp::CbFontNameReClick(TObject *Sender) { String sFontCode = APP_GetCode(CbFontNameRe); String sFontName = APP_GetCodeName(CbFontNameRe); ReForm->SelAttributes->Name = sFontName; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::ReFormChange(TObject *Sender) { if (ChkAutoPreview->Checked) BtnPreviewClick(NULL); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::ChkAutoPreviewClick(TObject *Sender) { if (ChkAutoPreview->Checked) BtnPreviewClick(NULL); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::BtnPreviewClick(TObject *Sender) { if (ChkDrawModule->Checked) m_pEdtDesigner->PreviewDrawModuleForm(ReForm, ReFormTemp, ImgEdtPreview, FVmsRows, FVmsCols); else m_pEdtDesigner->PreviewDrawForm(ReForm, ReFormTemp, ImgEdtPreview); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::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->IsAddByEditor) { // Á÷Á¢ÀÔ·ÂÈ­¸é¿¡¼­ Æû¿¡Àû¿ëÀ» Ŭ¸¯ÇÏ¿© »ý¼ºÇÑ ¹®ÀÚ¿­ °´Ã¼ String sDsplText = pObj->Text; pObj->ObjId = "";//String(ii+1); // TODO: µðºñ¿¡¼­ »ý¼ºÇؾßÇÔ pObj->ObjKind = FORM_OBJ_KIND_TEXT; pObj->ObjType = FORM_OBJ_KIND_TEXT; pObj->Tag = 0; pObj->ObjSize = sDsplText.Length(); pObj->BkColorCode = "00"; pObj->Blink = false; pObj->ImageId = pObj->ObjId; pObj->Text = sDsplText; pObj->RunText = pObj->Text; TCDSFontName *pObjFont = CDSFontManager->FindFontCodeByName(pObj->FontName); if (pObjFont != NULL) { pObj->FontNameCode = pObjFont->VMS_FONT_NAME_CD; } else { pObj->FontNameCode = "00"; } pObj->FillIn = DFLT_TEXT_TYPE; // ¹®ÀÚ¿­ À¯Çü String DSPL_TEXT = pObj->Text.Trim(); TVmsTextItem *pFillInObj = VmsTextItemManager->FFillInLists.Find(DSPL_TEXT); if (pFillInObj != NULL) { pObj->FillIn = pFillInObj->TXT_ITEM_ID; } } } PgEdit->ActivePageIndex = 0; SelObjectListData(); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::CbFormTypePropertiesChange(TObject *Sender) { //VMSÆûÀ¯Çü ÀÌ º¯°æ µÉ °æ¿ì ó¸®ÇØ¾ß ÇÒ ³»¿ë } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::CbFormBkClrClick(TObject *Sender) { m_pEdtDesigner->SetBkColor(CDSFontManager->GetBackColorCode((int)CbFormBkClr->Selected)); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::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 TFrmVmsMsgUserDisp::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 TFrmVmsMsgUserDisp::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 TFrmVmsMsgUserDisp::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 TFrmVmsMsgUserDisp::CbObjBkClrClick(TObject *Sender) { if (m_bEdit) return; m_pEdtDesigner->SetObjectBkColorCode(String(CbObjBkClr->ItemIndex)); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::ChkBlinkingClick(TObject *Sender) { if (m_bEdit) return; m_pEdtDesigner->SetObjectBlink(ChkBlinking->Checked); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::EdDsplTxtKeyPress(TObject *Sender, wchar_t &Key) { if (m_bEdit) return; if (Key == '\'') { Key = '`'; } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::EdDsplTxtPropertiesChange(TObject *Sender) { if (m_bEdit) return; m_pEdtDesigner->SetObejctText(EdDsplTxt->Text); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::BtnObjFontColorClick(TObject *Sender) { if (m_bEdit) return; //00 Èæ»ö(Black) #000000 //01 Àû»ö(Red) #FF0000 //02 ¿¬³ì»ö(Lime) #00FF00 //03 Ȳ»ö(Amber) #FFFF00 TcxButton *pClrBtn = (TcxButton*)Sender; String sFontColorCd; sFontColorCd.printf(L"%02d", pClrBtn->Tag); m_pEdtDesigner->SetObejctFontColorCode(sFontColorCd); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::CbFontClrClick(TObject *Sender) { if (m_bEdit) return; if (CbFontClr->ItemIndex == CbFontClr->Items->Count-1) { m_pEdtDesigner->SetObejctFontColorCode("99"); } else { m_pEdtDesigner->SetObejctFontColorCode(CDSFontManager->GetFontColorCode((int)CbFontClr->Selected)); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::BtnFontSizeClick(TObject *Sender) { if (m_bEdit) return; TcxButton *pBtn = (TcxButton*)Sender; String sFontSize = pBtn->Caption; int nFontSize = sFontSize.Trim().ToIntDef(16); m_pEdtDesigner->SetObejctFontSize(nFontSize); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::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; int nFontSize = SeFontSize->Value; m_pEdtDesigner->SetObejctFontSize(nFontSize); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::CbFontNamePropertiesChange(TObject *Sender) { if (m_bEdit) return; String sFontCode = APP_GetCode(CbFontName); String sFontName = APP_GetCodeName(CbFontName); m_pEdtDesigner->SetObejctFontName(sFontName.Trim()); m_pEdtDesigner->SetObejctFontNameCode(sFontCode); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::CbTextAlignPropertiesChange(TObject *Sender) { if (m_bEdit) return; m_pEdtDesigner->SetObejctTextAlign(CbTextAlign->ItemIndex); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::EdObjIdPropertiesChange(TObject *Sender) { if (m_bEdit) return; try { m_pEdtDesigner->SetObjectId(EdObjId->Text.Trim()); } catch(...) {} } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::ChkFontBoldClick(TObject *Sender) { if (m_bEdit) return; m_pEdtDesigner->SetObejctFontBold(ChkFontBold->Checked); } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgUserDisp::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("FrmVmsMsgMngr::InsertVmsImage", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &e) { DBERRORMSG("FrmVmsMsgMngr::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 TFrmVmsMsgUserDisp::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(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(L"À̹ÌÁö ÆÄÀÏÀ» ÀÐ¾î ¿À´Âµ¥ ½ÇÆÐÇÏ¿´½À´Ï´Ù.", lblImage1->Caption.c_str(),//L"VMS À̹ÌÁö ¼±ÅÃ", MB_OK|MB_ICONWARNING|MB_APPLMODAL); return; } #if 0 if (FFileSize > (1024 * 32)) // Max 32Kbytes { Application->MessageBox(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 0 if (!FrmLang->GetNextVmsImgeId(nNmbr, 6000, 6999)) { Application->MessageBox(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(L"»õ·Î¿î VMS À̹ÌÁöÁ¤º¸¸¦ ÀúÀåÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.\r\nÇÁ·Î±×·¥ Á¾·áÈÄ¿¡ ´Ù½Ã ½ÃµµÇØ º¸¼¼¿ä.", lblImage1->Caption.c_str(),//L"VMS À̹ÌÁö ¼±ÅÃ", MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } #endif 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; } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::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) { 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 TFrmVmsMsgUserDisp::ColXGetDataText(TcxCustomGridTableItem *Sender, int ARecordIndex, UnicodeString &AText) { if (ARecordIndex < 0) return; try { int nMemPtr = (int)(TvObjList->DataController->Values[ARecordIndex][ColObjMem->Index]); TVmsFormObject *pObj = (TVmsFormObject*)nMemPtr; if (pObj) { AText = pObj->GetLeft(); } } catch(Exception &e) {} } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::ColYGetDataText(TcxCustomGridTableItem *Sender, int ARecordIndex, UnicodeString &AText) { if (ARecordIndex < 0) return; try { int nMemPtr = (int)(TvObjList->DataController->Values[ARecordIndex][ColObjMem->Index]); TVmsFormObject *pObj = (TVmsFormObject*)nMemPtr; if (pObj) { AText = pObj->GetTop(); } } catch(Exception &e) {} } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::CbVmsObjTypeClick(TObject *Sender) { if (BtnAddText->CanFocus()) { BtnAddText->SetFocus(); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::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 TFrmVmsMsgUserDisp::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][ColObjKind->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][ColObjMem->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][ColObjKind->Index] = TvObjList->DataController->Values[nUpIdx][ColObjKind->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][ColObjMem->Index] = TvObjList->DataController->Values[nUpIdx][ColObjMem->Index]; TvObjList->DataController->Values[nUpIdx][ColSeq->Index] = sVal1; TvObjList->DataController->Values[nUpIdx][ColId->Index] = sVal2; TvObjList->DataController->Values[nUpIdx][ColObjKind->Index] = sVal3; TvObjList->DataController->Values[nUpIdx][ColData->Index] = sVal4; TvObjList->DataController->Values[nUpIdx][ColIfscId->Index] = sVal5; TvObjList->DataController->Values[nUpIdx][ColObjMem->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 TFrmVmsMsgUserDisp::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][ColObjKind->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][ColObjMem->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][ColObjKind->Index] = TvObjList->DataController->Values[nDnIdx][ColObjKind->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][ColObjMem->Index] = TvObjList->DataController->Values[nDnIdx][ColObjMem->Index]; TvObjList->DataController->Values[nDnIdx][ColSeq->Index] = sVal1; TvObjList->DataController->Values[nDnIdx][ColId->Index] = sVal2; TvObjList->DataController->Values[nDnIdx][ColObjKind->Index] = sVal3; TvObjList->DataController->Values[nDnIdx][ColData->Index] = sVal4; TvObjList->DataController->Values[nDnIdx][ColIfscId->Index] = sVal5; TvObjList->DataController->Values[nDnIdx][ColObjMem->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 TFrmVmsMsgUserDisp::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 TFrmVmsMsgUserDisp::SeImgSizePropertiesChange(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 (pObj->ObjKind != FORM_OBJ_KIND_TEXT) { pObj->GetImage()->AutoSize= false; pObj->GetImage()->Stretch = true; pObj->GetImage()->Width = nImgW; pObj->GetImage()->Height = nImgH; pObj->SetSize(nImgW, nImgH); } } #endif } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::PgEditClick(TObject *Sender) { try { if (PgEdit->Properties->ActivePage == TsDirect) { if (ReForm->Enabled) ReForm->SetFocus(); } else { if (PnlEditForm->Enabled) PnlEditForm->SetFocus(); } } catch(Exception &e) { } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::BtrnReFormClearClick(TObject *Sender) { ReForm->Lines->Clear(); ReForm->SelAttributes->Style = TFontStyles() >> fsUnderline; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::BtnRedClick(TObject *Sender) { TcxButton *pClrBtn = (TcxButton*)Sender; Graphics::TFontStyles fontStyle = ReForm->SelAttributes->Style; switch(pClrBtn->Tag) { case 0: ReForm->SelAttributes->Color = clLime; break; case 1: ReForm->SelAttributes->Color = clYellow; break; case 2: ReForm->SelAttributes->Color = clRed; break; } ReForm->SelAttributes->Style = fontStyle; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::BtnObjDeleteAllClick(TObject *Sender) { String sMsgString; sMsgString = "Àüü °´Ã¼ Á¤º¸¸¦ ¸ðµÎ »èÁ¦ÇϽðڽÀ´Ï±î?"; 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); 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 TFrmVmsMsgUserDisp::SeDsplHrPropertiesChange(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; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::ChkDrawModuleClick(TObject *Sender) { if (ChkDrawModule->Checked) m_pEdtDesigner->PreviewDrawModuleForm(ReForm, ReFormTemp, ImgEdtPreview, FVmsRows, FVmsCols); else m_pEdtDesigner->PreviewDrawForm(ReForm, ReFormTemp, ImgEdtPreview); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::CbFillIn1PropertiesChange(TObject *Sender) { int nItemIndex = CbFillIn1->ItemIndex; TVmsTextItem *pObj = (TVmsTextItem*)CbFillIn1->Properties->Items->Objects[nItemIndex]; if (pObj != NULL) { //ReForm->SelAttributes->Style = TFontStyles() >> fsUnderline; //ReForm->SelText = " "; ReForm->SelAttributes->Style = ReForm->SelAttributes->Style << fsUnderline; ReForm->SelText = pObj->TXT_ITEM_FILLIN; ReForm->SelAttributes->Style = TFontStyles() >> fsUnderline; ReForm->SelText = " "; ReForm->SetFocus(); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::ReFormClick(TObject *Sender) { #if 0 for(int i=0;iProperties->Items->Count;i++){ if(CBFontName->Properties->Items->Strings[i]== VmsMsgEdit->GetSelFontName() ){ CBFontName->ItemIndex = i; break; } } CBFontSize->SelKey( VmsMsgEdit->GetSelFontSize() ); CbFontClr->ColorValue = VmsMsgEdit->GetSelFontColor(); CBBgColor->ColorValue = VmsMsgEdit->GetBgColor(); #endif } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::BtnAddFormObjClick(TObject *Sender) { AddSymbObj(); //PopupFormObjAdd->Popup(BtnAddFormObj->ClientOrigin.x, BtnAddFormObj->ClientOrigin.y + BtnAddFormObj->Height); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::MnuPouupFormObjAddClick(TObject *Sender) { TMenuItem *pMenu = (TMenuItem*)Sender; bool result = false; switch(pMenu->Tag) { case 1: result = AddSymbObj(); break; case 2: result = AddBackObj(); break; case 3: result = AddCctvObj(); break; case 4: break; case 5: break; case 6: break; case 7: break; default: return; } if (result) { } } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgUserDisp::AddSymbObj() { TVMSM710M *pSelForm = new TVMSM710M(this); pSelForm->FImageType = 1; pSelForm->SYMB_TYPE = "SBT1"; // ÀÏ¹Ý pSelForm->ShowModal(); if (!pSelForm->m_bSelected) { delete pSelForm; return false; } TVmsFormObject *pObj = m_pEdtDesigner->AddObject(odtBmp); if (!pObj) { delete pSelForm; return false; } String sPictId = pSelForm->EdPictId->Text; String sImagePath = pSelForm->EdImagePath->Text; String sPictNm = pSelForm->EdPictNm->Text; String sPictSize = pSelForm->EdPictSize->Text; int nPictW = pSelForm->EdPictW->Text.ToIntDef(10); int nPictH = pSelForm->EdPictH->Text.ToIntDef(10); String sPictExt = pSelForm->EdPictExt->Text; int nNewObjSeq = m_pEdtDesigner->GetNewObjectSeq(); EdObjSeq->Text = String(nNewObjSeq); pObj->ObjSeq = nNewObjSeq; pObj->ObjId = sPictId; pObj->ObjKind = FORM_OBJ_KIND_IMAGE; pObj->ObjType = pObj->ObjKind; pObj->ObjSize = sPictSize.ToIntDef(0); pObj->BkColorCode = m_pEdtDesigner->BkColorCode; pObj->Blink = false; pObj->Tag = "N"; pObj->Text = sPictNm; pObj->ImageId = sPictId; LoadingImage(pObj, sImagePath, nPictW, nPictH); 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; return true; } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgUserDisp::AddBackObj() { return true; } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgUserDisp::AddCctvObj() { return true; } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgUserDisp::AddTextObj(String ATxtItemId, String ADsplText) { TVmsFormObject *pObj = m_pEdtDesigner->AddObject(odtText); if (!pObj) return false; int nNewObjSeq = m_pEdtDesigner->GetNewObjectSeq(); EdObjSeq->Text = String(nNewObjSeq); pObj->ObjSeq = nNewObjSeq; pObj->ObjId = ""; pObj->ObjKind = FORM_OBJ_KIND_TEXT; pObj->ObjType = pObj->ObjKind; pObj->ObjSize = ADsplText.Length(); pObj->BkColorCode = m_pEdtDesigner->BkColorCode; pObj->Blink = false; pObj->Tag = "N"; pObj->EditMode = true; pObj->Text = ADsplText; pObj->ImageId = pObj->ObjId; pObj->RunText = pObj->Text; pObj->FillIn = ATxtItemId; int nTextAlign = 0; String sFontCode = APP_GetCode(CbFontName); String sFontName = APP_GetCodeName(CbFontName); pObj->FontName = sFontName; pObj->FontNameCode = sFontCode; pObj->FontColorCode = "02"; pObj->FontSize = 16; pObj->FontBold = true; pObj->TextAlign = nTextAlign; if (ATxtItemId == DFLT_TEXT_TYPE) { EdDsplTxt->Properties->ReadOnly = true; } else { EdDsplTxt->Properties->ReadOnly = false; } pObj->SetPos(0, 0); pObj->Show(); AddObjectToList(pObj, true); return true; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::BtnAddTextClick(TObject *Sender) { AddTextObj(DFLT_TEXT_TYPE, "¹®ÀÚ¿­"); return; if (CbVmsObjType->ItemIndex < 0) return; String sFormType = APP_GetCode(CbFormType); String sObjType = APP_GetCode(CbVmsObjType); int nObjType = sObjType.ToIntDef(0); String sObjText = FindObjectKindName(sObjType, ""); String sFontNameCode = "00"; String sFontName = "¸íÁ¶Ã¼";//"±¼¸²Ã¼"; 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: //@¿ÀÁ¸µî±ÞÀ̹ÌÁö { TVMSM710M *pSelForm = new TVMSM710M(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 EdDsplTxt->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 { EdDsplTxt->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 TFrmVmsMsgUserDisp::CbFillInClick(TObject *Sender) { int nItemIndex = CbFillIn->ItemIndex; if (nItemIndex == 0) return; TVmsTextItem *pObj = (TVmsTextItem*)CbFillIn->Properties->Items->Objects[CbFillIn->ItemIndex]; if (pObj != NULL) { AddTextObj(pObj->TXT_ITEM_ID, pObj->TXT_ITEM_FILLIN); } if (PnlEdtBack->Enabled) PnlEdtBack->SetFocus(); CbFillIn->ItemIndex = 0; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::ChangeFormObjectPanel(String AObjKind) { //H µµÇü °´Ã¼ //I ±×·¡ÇÈ °´Ã¼ //P ÅØ½ºÆ® °´Ã¼ if (AObjKind == FORM_OBJ_KIND_TEXT) { PnlObjCctv->Visible = false; PnlObjSymb->Visible = false; PnlObjText->Visible = true; } else if (AObjKind == FORM_OBJ_KIND_IMAGE) { PnlObjCctv->Visible = false; PnlObjText->Visible = false; PnlObjSymb->Visible = true; } else { PnlObjCctv->Visible = false; PnlObjSymb->Visible = false; PnlObjText->Visible = false; } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::CbObjKindPropertiesChange(TObject *Sender) { //°´Ã¼Á¾·ù°¡ º¯°æµÇ¾úÀ» °æ¿ì ó¸® String sObjKind = APP_GetCode(CbObjKind); ChangeFormObjectPanel(sObjKind); } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::LoadingImage(TVmsFormObject *AFormObj, String AFileName, int AW, int AH) { FLastImageFileName = AFileName; try { TImage *symbImag = AFormObj->GetImage(); symbImag->Picture->LoadFromFile(AFileName); #if 0 symbImag->Width = AW; symbImag->Height= AH; if (symbImag->Picture->Bitmap != NULL) { symbImag->Picture->Bitmap->Width = AW; symbImag->Picture->Bitmap->Height= AH; } #endif if (symbImag->Picture->Graphic->ClassName() == "TGIFImage") { ((TGIFImage *)symbImag->Picture->Graphic)->Animate = true; symbImag->Transparent = true; } else { symbImag->Transparent = false; } symbImag->Refresh(); AFormObj->SetSize(AW, AH); } catch(Exception &e) { String errMsg = "À̹ÌÁö¸¦ Àоî¿À´Â Áß¿¡ ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù.\r\n" + e.Message; Application->MessageBox(errMsg.c_str(), L"À̹ÌÁö ·Îµù ½ÇÆÐ", MB_OK|MB_ICONERROR|MB_APPLMODAL); } #ifdef IMAGE_RESIZE TNotifyEvent evtW = SeImgW->Properties->OnChange; TNotifyEvent evtH = SeImgH->Properties->OnChange; SeImgW->Properties->OnChange = NULL; SeImgH->Properties->OnChange = NULL; SeImgW->Value = AW; SeImgH->Value = AH; SeImgW->Properties->OnChange = evtW; SeImgH->Properties->OnChange = evtH; #endif } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::ReFormKeyPress(TObject *Sender, wchar_t &Key) { if (Key == '[') { ReForm->SelAttributes->Style = ReForm->SelAttributes->Style << fsUnderline; } //else //if (Key == ' ') { // ReForm->SelAttributes->Style = TFontStyles() >> fsUnderline; //} } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::ReFormKeyUp(TObject *Sender, WORD &Key, TShiftState Shift) { //VK_RETURN if (Key == ']' || Key == 221) { ReForm->SelAttributes->Style = TFontStyles() >> fsUnderline; } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::BtnEditClick(TObject *Sender) { if (BtnEdit->Caption == "ÆíÁý") { ChangeEditMode(0); FNewDb = false; } else { String sId = EdFormId->Text; ChangeEditMode(1); //if (CMM_FindGridData(TvList->DataController, sId, ColVMS_FORM_ID->Index) >= 0) { // CMM_SetGridRow(CxList, TvList, sId, ColVMS_FORM_ID->Index); // DisplayInfo(); //} } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::BtnSendFormClick(TObject *Sender) { // ¼öµ¿¸Þ½ÃÁö Àü¼Û String sMsg; int nSelCnt = GetSelListItems(false); if (0 == nSelCnt) { sMsg = "VMS°¡ ¼±ÅõÇÁö ¾Ê¾Ò½À´Ï´Ù.\r\nVMS ¸ñ·Ï¿¡¼­ VMS¸¦ ¼±ÅÃÇϽʽÿä."; Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); FRAMEVmsSchList1->CxList->SetFocus(); return; } TcxGridDataController *pGDC = TvObjList->DataController; int nObjCnt = pGDC->RecordCount; if (0 == nObjCnt) { sMsg = "*************************************************************\r\n" " VMS ¸Þ½ÃÁö¿¡ °´Ã¼ Á¤º¸°¡ ¾ø½À´Ï´Ù.\r\n" " ºó ¸Þ½ÃÁö¸¦ Àü¼ÛÇϽðڽÀ´Ï±î?\r\n" "*************************************************************"; //if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONQUESTION|MB_ICONERROR|MB_APPLMODAL) != IDYES) return; if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONERROR|MB_APPLMODAL) != IDYES) return; } 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; } if (AnsiString(EdFormName->Text.Trim()).Length() > 50) { Application->MessageBox(lblText11->Caption.c_str(),//L"Æû¸íĪÀº 60Byte¸¦ ÃʰúÇÒ ¼ö ¾ø½À´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL); return; } FStrDay = DtStrDate->Date.FormatString("yyyymmdd"); FStrTime = DtStrTime->DateTime.FormatString("HHnn"); FEndDay = DtEndDate->Date.FormatString("yyyymmdd"); FEndTime = DtEndTime->DateTime.FormatString("HHnn"); String sStrTime = FStrDay + FStrTime; String sEndTime = FEndDay + FEndTime; if (sStrTime > sEndTime) { Application->MessageBox(L"Ç¥Ãâ ½ÃÀ۽ð¢ÀÌ Ç¥Ãâ Á¾·á½Ã°¢ º¸´Ù Å®´Ï´Ù.", FTitle.c_str(), MB_OK|MB_ICONWARNING|MB_APPLMODAL); ActiveControl = DtStrDate; return; } FWeek = ""; FWeek = FWeek + (ChkWeek0->Checked ? "1" : "0"); FWeek = FWeek + (ChkWeek1->Checked ? "1" : "0"); FWeek = FWeek + (ChkWeek2->Checked ? "1" : "0"); FWeek = FWeek + (ChkWeek3->Checked ? "1" : "0"); FWeek = FWeek + (ChkWeek4->Checked ? "1" : "0"); FWeek = FWeek + (ChkWeek5->Checked ? "1" : "0"); FWeek = FWeek + (ChkWeek6->Checked ? "1" : "0"); String sFormMsgType = CbMsgType->Text; if (sFormMsgType.Pos("±ä±Þ")) { FVMS_FORM_TYPE = FORM_TYPE_EMER; sMsg = "[[[ VMS ¼öµ¿ ***** ±ä±Þ ***** ¸Þ½ÃÁö ]]]\r\n\r\nÆû¸íĪ: "; if (Application->MessageBox(L"[[[ VMS ¼öµ¿ ***** ±ä±Þ ***** ¸Þ½ÃÁö ]]]]\r\n±ä±Þ ¸Þ½ÃÁö ¼öµ¿ Ç¥ÃâÀ» ¼±ÅÃÇϼ̽À´Ï´Ù.\r\n±ä±Þ¸Þ½ÃÁö¸¦ ¼öµ¿À¸·Î Ç¥ÃâÇÏ´Â °æ¿ì ±ä±Þ¸Þ½ÃÁö¸¸ Ç¥ÃâµË´Ï´Ù.\r\n±ä±Þ¸Þ½ÃÁö ¼öµ¿Ç¥ÃâÀ» ÁøÇàÇϽðڽÀ´Ï±î?", FTitle.c_str(), MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) return; } else { FVMS_FORM_TYPE = FORM_TYPE_PUBR; sMsg = "[[[ VMS ¼öµ¿ ***** ÀÏ¹Ý ***** ¸Þ½ÃÁö ]]]\r\nÆû¸íĪ: "; } sMsg = sMsg + EdFormName->Text.Trim() + "\r\n\r\n¼öµ¿ ¸Þ½ÃÁö¸¦ Àü¼ÛÇϽðڽÀ´Ï±î?\r\n"; if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) return; FVMS_FORM_ID = EdFormId->Text; FVMS_MODL_KIND = APP_GetCode(CbSizeType); // FVmsTypeCd //FVMS_FORM_TYPE = APP_GetCode(CbFormType); FVMS_FORM_NM = EdFormName->Text.Trim(); FDSPL_EFF = APP_GetCode(CbFormDsplEff); FDSPL_HR = SeDsplHr->Value; FBACK_CLR = CDSFontManager->GetBackColorCode(CbFormBkClr->ItemIndex); FOPER_ID = g_AppCfg.OPER_ID; bool bResult = false; m_pEdtDesigner->GetVmsFormImage(ImgForm); /////////////////////////////////// ÆûÁ¤º¸ ÀúÀå ITSDb_GetConnection()->BeginTrans(); if (!CheckExistForm(FVMS_FORM_ID)) { // Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì¿¡¸¸ µ¥ÀÌÅÍ ÀúÀå // ¸Þ½ÃÁö Àü¼ÛÀ» µÎ¹ø ´©¸¦ °æ¿ì¿¡ ÀÌÀü¿¡ ÀÌ¹Ì ÀúÀåµÇ¾î Àֱ⠶§¹®¿¡ ÀúÀåÇÏÁö ¾Ê±â À§Çؼ­ bResult = SaveVmsForm("Y"); if (!bResult) { ITSDb_GetConnection()->RollbackTrans(); return; } /////////////////////////////////// ÆûÁ¤º¸ ¿Ï·á /////////////////////////////////// Æû°´Ã¼Á¤º¸ ÀúÀå bResult = SaveVmsFormObject(); if (!bResult) { ITSDb_GetConnection()->RollbackTrans(); return; } /////////////////////////////////// Æû°´Ã¼Á¤º¸ ¿Ï·á } if (FVMS_FORM_TYPE == FORM_TYPE_EMER) { bResult = SaveEmerForm(); } else { bResult = SavePubrForm(); } if (!bResult) { ITSDb_GetConnection()->RollbackTrans(); return; } #if 0 if (FVMS_FORM_TYPE == FORM_TYPE_EMER) { // ±ä±Þ¸Þ½ÃÁöÀÎ °æ¿ì ¿î¿µ¸ðµå º¯°æ bResult = SaveEmerFormOperMode(); } if (!bResult) { ITSDb_GetConnection()->RollbackTrans(); return; } #endif ITSDb_GetConnection()->CommitTrans(); // ³»ºÎÅë½ÅÀ¸·Î ¼­¹ö¿¡°Ô Àü¼Û if (FVMS_FORM_TYPE == FORM_TYPE_EMER) { FCommCtrlTarget = CenterCommManager->FLists.Find("24"); // ±ä±Þ¹®¾Èµî·Ï if (FCommCtrlTarget != NULL) { for (int ii = 0; ii < FSelVmsIds->Count; ii++) { String sVmsCtlrId = FSelVmsIds->Strings[ii]; FOR_STL(TCommInfo*, pCommInfo, FCommCtrlTarget->FLists) { int sendResult = CComm_VmsNotiRegEmgnMsg(pCommInfo->SRVR_IP, pCommInfo->CMNC_PORT, sVmsCtlrId); if (VERR_NONE == sendResult) { } Sleep(200); Application->ProcessMessages(); } } } } else {//FORM_TYPE_PUBR FCommCtrlTarget = CenterCommManager->FLists.Find("22"); // VMSÇ¥Ãâ¹®¾È µî·Ï ¾Ë¸² if (FCommCtrlTarget != NULL) { FOR_STL(TCommInfo*, pCommInfo, FCommCtrlTarget->FLists) { int sendResult = CComm_VmsNotiRegDsplMsg(pCommInfo->SRVR_IP, pCommInfo->CMNC_PORT); if (VERR_NONE == sendResult) { } Sleep(200); Application->ProcessMessages(); } } } // OK Application->MessageBox(L"VMS ¼öµ¿ ¸Þ½ÃÁö¸¦ Á¤»óÀûÀ¸·Î Àü¼Û ÇÏ¿´½À´Ï´Ù", FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL); BtnSendForm->Enabled = false; BtnLoadForm->Enabled = false; ChangeEditMode(1); } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgUserDisp::SavePubrForm() { String sQry; TADOQuery *pADO = NULL; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); #if 0 sQry = "INSERT INTO TB_VMS_PUBRL_FORM ( \r\n" " VMS_CTLR_ID, \r\n" " VMS_FORM_ID, \r\n" " DSPL_BGN_YMD, \r\n" " DSPL_FNSH_YMD, \r\n" " DSPL_WEEK, \r\n" " DSPL_BGN_HM, \r\n" " DSPL_FNSH_HM, \r\n" " RGSTR_ID, \r\n" " REG_DT ) \r\n" " VALUES ( \r\n" " :p01, \r\n" " :p02, \r\n" " :p03, \r\n" " :p04, \r\n" " :p05, \r\n" " :p06, \r\n" " :p07, \r\n" " :p08, \r\n" " SYSDATE ) \r\n"; #else sQry = "MERGE INTO TB_VMS_PUBRL_FORM L \r\n" "USING (SELECT \r\n" " :p01 AS VMS_CTLR_ID, \r\n" " :p02 AS VMS_FORM_ID, \r\n" " :p03 AS DSPL_BGN_YMD, \r\n" " :p04 AS DSPL_FNSH_YMD, \r\n" " :p05 AS DSPL_WEEK, \r\n" " :p06 AS DSPL_BGN_HM, \r\n" " :p07 AS DSPL_FNSH_HM, \r\n" " :p08 AS RGSTR_ID, \r\n" " SYSDATE AS REG_DT \r\n" " FROM DUAL) M \r\n" " ON (L.VMS_CTLR_ID = M.VMS_CTLR_ID \r\n" " AND L.VMS_FORM_ID = M.VMS_FORM_ID) \r\n" "WHEN MATCHED THEN \r\n" " UPDATE SET \r\n" " L.DSPL_BGN_YMD = M.DSPL_BGN_YMD, \r\n" " L.DSPL_FNSH_YMD = M.DSPL_FNSH_YMD, \r\n" " L.DSPL_WEEK = M.DSPL_WEEK, \r\n" " L.DSPL_BGN_HM = M.DSPL_BGN_HM, \r\n" " L.DSPL_FNSH_HM = M.DSPL_FNSH_HM, \r\n" " L.CHNGR_ID = M.RGSTR_ID, \r\n" " L.CHG_DT = M.REG_DT \r\n" "WHEN NOT MATCHED THEN \r\n" " INSERT ( \r\n" " VMS_CTLR_ID, \r\n" " VMS_FORM_ID, \r\n" " DSPL_BGN_YMD, \r\n" " DSPL_FNSH_YMD, \r\n" " DSPL_WEEK, \r\n" " DSPL_BGN_HM, \r\n" " DSPL_FNSH_HM, \r\n" " RGSTR_ID, \r\n" " REG_DT ) \r\n" " VALUES ( \r\n" " M.VMS_CTLR_ID, \r\n" " M.VMS_FORM_ID, \r\n" " M.DSPL_BGN_YMD, \r\n" " M.DSPL_FNSH_YMD, \r\n" " M.DSPL_WEEK, \r\n" " M.DSPL_BGN_HM, \r\n" " M.DSPL_FNSH_HM, \r\n" " M.RGSTR_ID, \r\n" " M.REG_DT ) \r\n"; #endif ITSDb_SQLText(pADO, sQry); for (int ii = 0; ii < FSelVmsIds->Count; ii++) { String VMS_CTLR_ID = FSelVmsIds->Strings[ii]; pADO->Parameters->ParamByName("p01")->Value = VMS_CTLR_ID; pADO->Parameters->ParamByName("p02")->Value = FVMS_FORM_ID; pADO->Parameters->ParamByName("p03")->Value = FStrDay; pADO->Parameters->ParamByName("p04")->Value = FEndDay; pADO->Parameters->ParamByName("p05")->Value = FWeek; pADO->Parameters->ParamByName("p06")->Value = FStrTime; pADO->Parameters->ParamByName("p07")->Value = FEndTime; pADO->Parameters->ParamByName("p08")->Value = FOPER_ID; ITSDb_SQLExec(pADO); } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgUserDisp::SavePubrForm", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgUserDisp::SavePubrForm", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgUserDisp::SaveEmerForm() { String sQry; TADOQuery *pADO = NULL; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); #if 0 sQry = "INSERT INTO TB_VMS_EMGNC_FORM ( \r\n" " VMS_CTLR_ID, \r\n" " VMS_FORM_ID, \r\n" " DSPL_BGN_DT, \r\n" " DSPL_FNSH_DT, \r\n" " RGSTR_ID, \r\n" " REG_DT ) \r\n" " VALUES ( \r\n" " :p01, \r\n" " :p02, \r\n" " :p03, \r\n" " :p04, \r\n" " :p08, \r\n" " SYSDATE ) \r\n"; #else sQry = "MERGE INTO TB_VMS_EMGNC_FORM L \r\n" "USING (SELECT \r\n" " :p01 AS VMS_CTLR_ID, \r\n" " :p02 AS VMS_FORM_ID, \r\n" " :p03 AS DSPL_BGN_DT, \r\n" " :p04 AS DSPL_FNSH_DT, \r\n" " :p08 AS RGSTR_ID, \r\n" " SYSDATE AS REG_DT \r\n" " FROM DUAL) M \r\n" " ON (L.VMS_CTLR_ID = M.VMS_CTLR_ID \r\n" " AND L.VMS_FORM_ID = M.VMS_FORM_ID \r\n" " AND TO_CHAR(L.DSPL_BGN_DT, \r\n" " 'YYYYMMDDHH24MISS') = M.DSPL_BGN_DT) \r\n" "WHEN MATCHED THEN \r\n" " UPDATE SET \r\n" " L.DSPL_FNSH_DT = \r\n" " TO_DATE(M.DSPL_FNSH_DT, 'YYYYMMDDHH24MISS'), \r\n" " L.RGSTR_ID = M.RGSTR_ID, \r\n" " L.REG_DT = M.REG_DT \r\n" "WHEN NOT MATCHED THEN \r\n" " INSERT ( \r\n" " VMS_CTLR_ID, \r\n" " VMS_FORM_ID, \r\n" " DSPL_BGN_DT, \r\n" " DSPL_FNSH_DT, \r\n" " RGSTR_ID, \r\n" " REG_DT ) \r\n" " VALUES ( \r\n" " M.VMS_CTLR_ID, \r\n" " M.VMS_FORM_ID, \r\n" " TO_DATE(M.DSPL_BGN_DT, 'YYYYMMDDHH24MISS'), \r\n" " TO_DATE(M.DSPL_FNSH_DT, 'YYYYMMDDHH24MISS'), \r\n" " M.RGSTR_ID, \r\n" " M.REG_DT ) \r\n"; #endif ITSDb_SQLText(pADO, sQry); for (int ii = 0; ii < FSelVmsIds->Count; ii++) { String VMS_CTLR_ID = FSelVmsIds->Strings[ii]; pADO->Parameters->ParamByName("p01")->Value = VMS_CTLR_ID; pADO->Parameters->ParamByName("p02")->Value = FVMS_FORM_ID; pADO->Parameters->ParamByName("p03")->Value = FStrDay + FStrTime + "00"; pADO->Parameters->ParamByName("p04")->Value = FEndDay + FEndTime + "00"; pADO->Parameters->ParamByName("p08")->Value = FOPER_ID; ITSDb_SQLExec(pADO); } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgUserDisp::SaveEmerForm", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgUserDisp::SaveEmerForm", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- bool __fastcall TFrmVmsMsgUserDisp::SaveEmerFormOperMode() { String sQry; TADOQuery *pADO = NULL; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); sQry = "UPDATE TB_VMS_CTLR \r\n" " SET OPER_MODE = 'E' \r\n" " WHERE VMS_CTLR_ID = :p01 \r\n"; ITSDb_SQLText(pADO, sQry); for (int ii = 0; ii < FSelVmsIds->Count; ii++) { String VMS_CTLR_ID = FSelVmsIds->Strings[ii]; pADO->Parameters->ParamByName("p01")->Value = VMS_CTLR_ID; ITSDb_SQLExec(pADO); } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgUserDisp::SaveEmerFormOperMode", String(E.ClassName()), E.Message, sQry); return false; } catch(Exception &e) { DBERRORMSG("TFrmVmsMsgUserDisp::SaveEmerFormOperMode", String(e.ClassName()), e.Message, sQry); return false; } } __finally { if (pADO) { pADO->Close(); delete pADO; } } return true; } //--------------------------------------------------------------------------- int __fastcall TFrmVmsMsgUserDisp::GetSelListItems(bool ACommCheck/*=true*/) { TcxGridTableView *pTvList = FRAMEVmsSchList1->TvList; TcxDataController *pGDC = pTvList->DataController; FSelVmsIds->Clear(); try { bool bSelected; pTvList->BeginUpdate(); int nRows = pTvList->ViewData->RecordCount; for (int ii = 0; ii < nRows; ii++) { TcxCustomGridRow* ARow = pTvList->ViewData->Rows[ii]; bSelected = (bool)ARow->Values[FRAMEVmsSchList1->ColumnSel->Index]; if (bSelected) { String sVmsCtlrId = ARow->Values[FRAMEVmsSchList1->Column01->Index]; //VMS ID FSelVmsIds->Add(sVmsCtlrId); } } } __finally { pTvList->EndUpdate(); } return FSelVmsIds->Count; } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::CbMsgTypeClick(TObject *Sender) { if (BtnInsert->Enabled) { BtnInsert->SetFocus(); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::BtnLoadFormClick(TObject *Sender) { TFrmVmsFormSel *pSelForm = new TFrmVmsFormSel(this); pSelForm->FVmsModlKind = FVmsTypeCd; pSelForm->FVmsMsgType = FVMS_FORM_TYPE; pSelForm->ShowModal(); if (!pSelForm->m_bSelected) { delete pSelForm; return; } String sVmsFormId = pSelForm->EdVmsFormId->Text; String sVmsFormNm = pSelForm->EdVmsFormNm->Text; delete pSelForm; try { LockWindowUpdate(Handle); FormClear(); //String newFormId = GetNextVmsFormId(FVMS_FORM_TYPE.SubString(1,1)); EdFormId->Text = sVmsFormId; EdFormName->Text = sVmsFormNm; PgEdit->ActivePage = TsEdit; //DisplayFormInfo(FSelIdx); LoadFormObjectInfo(sVmsFormId, m_pEdtDesigner); SelObjectListData(); } __finally { LockWindowUpdate(0); } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::LoadFormObjectInfo(String AFormId, TVmsFormDesigner *ADesigner) { ADesigner->Clear(); String sQry; TADOQuery *pADO = NULL; String imageFilePath; String saveDirPath = TPath::GetTempPath() + "VMS-FORM\\"; ForceDirectories(saveDirPath.c_str()); sQry = "SELECT A.VMS_FORM_ID, A.VMS_FORM_OBJ_ID, A.SN AS OBJ_SEQ, A.VMS_FORM_OBJ_KIND, \r\n" " NVL(A.BACK_CLR, '00') AS BACK_CLR, \r\n" " A.FORM_OBJ_PSTN_X, A.FORM_OBJ_PSTN_Y, A.FORM_OBJ_BLNK_YN, \r\n" " NVL(A.FORM_OBJ_DSPL_WDTH, 0) AS FORM_OBJ_DSPL_WDTH, \r\n" " NVL(A.FORM_OBJ_DSPL_HGHT, 0) AS FORM_OBJ_DSPL_HGHT, \r\n" " DECODE(B.VMS_FORM_OBJ_ID, NULL, 0, 1) AS IS_CCTV_OBJ, \r\n" " DECODE(C.VMS_FORM_OBJ_ID, NULL, 0, 1) AS IS_TEXT_OBJ, \r\n" " DECODE(D.VMS_FORM_OBJ_ID, NULL, 0, 1) AS IS_SYMB_OBJ, \r\n" " DECODE(E.VMS_FORM_OBJ_ID, NULL, 0, 1) AS IS_MOVE_OBJ, \r\n" // " B.CCTV_ID, B.DSPL_WDTH, B.DSPL_HGHT, \r\n" " B.CCTV_ID, \r\n" " C.TXT_WDTH, C.TXT_HGHT, C.TXT_ALGN_MTHD, \r\n" " C.FONT_CLR, C.FONT_TYPE, C.FONT_SZ, NVL(C.FONT_THCK, 'N') AS FONT_THCK, \r\n" " C.VMS_TXT_ITEM_ID, C.DSPL_TXT, \r\n" " D.PICT_NM, D.PICT_WDTH, D.PICT_HGHT, \r\n" " D.PICT_DATA_SZ, D.PICT_DATA, D.PICT_TYPE, \r\n" " E.MOV_NM, E.MOV_DATA_SZ, E.MOV_TYPE, E.THMB_IMG \r\n" " FROM TB_VMS_FORM_VMS_FORM_OBJ A, \r\n" " TB_VMS_FORM_OBJ_CCTV B, \r\n" " TB_VMS_FORM_OBJ_TXT C, \r\n" " TB_VMS_FORM_OBJ_PICT D, \r\n" " TB_VMS_FORM_OBJ_MOV E \r\n" " WHERE 1=1 \r\n" " AND A.VMS_FORM_ID = :p01 \r\n" " AND A.VMS_FORM_OBJ_ID = B.VMS_FORM_OBJ_ID(+) \r\n" " AND A.VMS_FORM_OBJ_ID = C.VMS_FORM_OBJ_ID(+) \r\n" " AND A.VMS_FORM_OBJ_ID = D.VMS_FORM_OBJ_ID(+) \r\n" " AND A.VMS_FORM_OBJ_ID = E.VMS_FORM_OBJ_ID(+) \r\n" " ORDER BY A.VMS_FORM_ID, A.SN \r\n"; try { try { pADO = new TADOQuery(NULL); pADO->Close(); pADO->Connection = ITSDb_GetConnection(); ITSDb_SQLText(pADO, sQry); ITSDb_SQLBind(pADO, "p01", AFormId); ITSDb_SQLOpen(pADO); int nDrawType; String sObjKind; for( ; !pADO->Eof; pADO->Next()) { String sFormId = pADO->FieldByName("VMS_FORM_ID")->AsString; String sObjId = pADO->FieldByName("VMS_FORM_OBJ_ID")->AsString; int nObjSeq = pADO->FieldByName("OBJ_SEQ")->AsInteger; String sObjKind = pADO->FieldByName("VMS_FORM_OBJ_KIND")->AsString; String sBackClr = pADO->FieldByName("BACK_CLR")->AsString; int nPosX = pADO->FieldByName("FORM_OBJ_PSTN_X")->AsInteger; int nPosY = pADO->FieldByName("FORM_OBJ_PSTN_Y")->AsInteger; bool bBlinking = pADO->FieldByName("FORM_OBJ_BLNK_YN")->AsString == "N" ? false : true; int nDsplWdth = pADO->FieldByName("FORM_OBJ_DSPL_WDTH")->AsInteger; int nDsplHght = pADO->FieldByName("FORM_OBJ_DSPL_HGHT")->AsInteger; int isCctvObj = pADO->FieldByName("IS_CCTV_OBJ")->AsInteger; int isTextObj = pADO->FieldByName("IS_TEXT_OBJ")->AsInteger; int isSymbObj = pADO->FieldByName("IS_SYMB_OBJ")->AsInteger; int isMoveObj = pADO->FieldByName("IS_MOVE_OBJ")->AsInteger; int nObjType = 0; int nDsplSize = 0; String sDsplText = ""; if (sObjKind == FORM_OBJ_KIND_CCTV && isCctvObj == 1) { sDsplText = pADO->FieldByName("CCTV_ID")->AsString; //nDsplWdth = pADO->FieldByName("DSPL_WDTH")->AsInteger; //nDsplHght = pADO->FieldByName("DSPL_HGHT")->AsInteger; nDrawType = 1; //À̹ÌÁö±×¸®±â nObjType = 2; //À̹ÌÁö nDsplSize = nDsplWdth * nDsplHght; } else if (sObjKind == FORM_OBJ_KIND_TEXT && isTextObj == 1) { sDsplText = pADO->FieldByName("DSPL_TXT")->AsString; nDsplWdth = pADO->FieldByName("TXT_WDTH")->AsInteger; nDsplHght = pADO->FieldByName("TXT_HGHT")->AsInteger; nDsplSize = sDsplText.Length(); nDrawType = 0; //¹®ÀÚ¿­±×¸®±â nObjType = 0; //¹®ÀÚ¿­ } else if (sObjKind == FORM_OBJ_KIND_IMAGE && isSymbObj == 1) { sDsplText = pADO->FieldByName("PICT_NM")->AsString; nDsplSize = pADO->FieldByName("PICT_DATA_SZ")->AsInteger; if (nDsplWdth <= 0 || nDsplHght <= 0) { nDsplWdth = pADO->FieldByName("PICT_WDTH")->AsInteger; nDsplHght = pADO->FieldByName("PICT_HGHT")->AsInteger; } //TMemoryStream *pictData = pADO->CreateBlobStream(pADO->FieldByName("PICT_DATA"), bmRead); //SAFE_DELETE(pictData); nDrawType = 1; //À̹ÌÁö±×¸®±â nObjType = 1; //À̹ÌÁö½É¹ú } else if (sObjKind == FORM_OBJ_KIND_MOVIE && isMoveObj == 1) { sDsplText = pADO->FieldByName("MOV_NM")->AsString; nDsplSize = pADO->FieldByName("MOV_DATA_SZ")->AsInteger; //TMemoryStream *pictData = pADO->CreateBlobStream(pADO->FieldByName("PICT_DATA"), bmRead); //SAFE_DELETE(pictData); nDrawType = 1; //À̹ÌÁö±×¸®±â nObjType = 1; //À̹ÌÁö½É¹ú } else { continue; } /////// Æû°´Ã¼¸¦ »ý¼ºÇؼ­ Ãß°¡ÇÑ´Ù. TVmsFormObject *pObj = ADesigner->AddObject((VmsObjectDrawType)nDrawType); if (!pObj) continue; if (sObjKind == FORM_OBJ_KIND_CCTV && isCctvObj == 1) { pObj->EditMode = false; } pObj->ObjSeq = nObjSeq; pObj->ObjId = sObjId; pObj->ObjKind = sObjKind; pObj->ObjType = sObjKind; pObj->Tag = 0; pObj->ObjSize = nDsplSize; pObj->BkColorCode = sBackClr; pObj->Blink = bBlinking; pObj->ImageId = sObjId; pObj->Text = sDsplText; pObj->RunText = pObj->Text; pObj->SetPos(nPosX, nPosY); if (sObjKind == FORM_OBJ_KIND_TEXT && isTextObj == 1) // ¹®ÀÚ¿­ { String sTxtItemId = pADO->FieldByName("VMS_TXT_ITEM_ID")->AsString; String sTxtAlgn = pADO->FieldByName("TXT_ALGN_MTHD")->AsString; String sFontClr = pADO->FieldByName("FONT_CLR")->AsString; String sFontType = pADO->FieldByName("FONT_TYPE")->AsString; int nFontSize = pADO->FieldByName("FONT_SZ")->AsInteger; bool bFontThck = pADO->FieldByName("FONT_THCK")->AsString == "N" ? false : true; int nTextAlign = 0; if (sTxtAlgn == "R") nTextAlign = 1; if (sTxtAlgn == "C") nTextAlign = 2; pObj->FillIn = sTxtItemId; pObj->FontNameCode = sFontType; TCDSFontName *pFontName = CDSFontManager->FFontNames.Find(pObj->FontNameCode); if (pFontName != NULL) { pObj->FontName = pFontName->VMS_FONT_NAME_NM; } else { pObj->FontName = "¸íÁ¶Ã¼"; pObj->FontNameCode = "00"; } pObj->FontColorCode = sFontClr; pObj->FontSize = nFontSize; pObj->FontBold = bFontThck; pObj->TextAlign = nTextAlign; } else if (sObjKind == FORM_OBJ_KIND_IMAGE && isSymbObj == 1) { if (pObj->ObjKind == OBJKIND_IMAGEID) { if (pObj->Text.Trim() == "") { pObj->Text = pObj->ImageId; } } TMemoryStream *pictData = new TMemoryStream(); try { String sPictType = pADO->FieldByName("PICT_TYPE")->AsString; String sPictExt = DbPictTypeToReal(sPictType); pictData->LoadFromStream(pADO->CreateBlobStream(pADO->FieldByName("PICT_DATA"), bmRead)); if (pictData && pictData->Size > 0) { imageFilePath = saveDirPath + sObjId + "." + sPictExt; pictData->SaveToFile(imageFilePath); LoadingImage(pObj, imageFilePath, nDsplWdth, nDsplHght); pObj->GetImage()->AutoSize= false; pObj->GetImage()->Stretch = true; pObj->GetImage()->Width = nDsplWdth; pObj->GetImage()->Height = nDsplHght; pObj->SetSize(nDsplWdth, nDsplHght); pObj->SetPos(nPosX, nPosY); } } __finally { SAFE_DELETE(pictData); } } else if (sObjKind == FORM_OBJ_KIND_MOVIE && isMoveObj == 1) { if (pObj->ObjKind == OBJKIND_IMAGEID) { if (pObj->Text.Trim() == "") { pObj->Text = pObj->ImageId; } } TMemoryStream *imagData = new TMemoryStream(); try { String sPictExt = "bmp"; imagData->LoadFromStream(pADO->CreateBlobStream(pADO->FieldByName("THMB_IMG"), bmRead)); if (imagData && imagData->Size > 0) { imageFilePath = saveDirPath + sObjId + "." + sPictExt; imagData->SaveToFile(imageFilePath); LoadingImage(pObj, imageFilePath, nDsplWdth, nDsplHght); pObj->GetImage()->AutoSize= false; pObj->GetImage()->Stretch = true; pObj->GetImage()->Width = nDsplWdth; pObj->GetImage()->Height = nDsplHght; pObj->SetSize(nDsplWdth, nDsplHght); pObj->SetPos(nPosX, nPosY); } } __finally { SAFE_DELETE(imagData); } } pObj->Show(); pObj->BringToFront(); } } catch(EDatabaseError &E) { DBERRORMSG("TFrmVmsMsgUserDisp::LoadFormObjectInfo", String(E.ClassName()), E.Message, sQry); throw Exception(String(E.ClassName()) + E.Message); } catch(Exception &exception) { DBERRORMSG("TFrmVmsMsgUserDisp::LoadFormObjectInfo", String(exception.ClassName()), exception.Message, sQry); throw Exception(String(exception.ClassName()) + exception.Message); } } __finally { if (pADO) { pADO->Close(); delete pADO; } } } //--------------------------------------------------------------------------- void __fastcall TFrmVmsMsgUserDisp::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 TFrmVmsMsgUserDisp::BtnDirectEditClick(TObject *Sender) { SeFontSizeRe->Value = ((TcxButton*)Sender)->Caption.Trim().ToIntDef(16); } //---------------------------------------------------------------------------