/**************************************************************************** * @source : * @description : **************************************************************************** * DATE AUTHOR DESCRIPTION * -------------------------------------------------------------------------- * 2011/12/24 Á¤½ÂÈ£ ÃÖÃÊÀÛ¼º * ****************************************************************************/ //--------------------------------------------------------------------------- #include #pragma hdrstop #include "VMS04001F.h" #include "VMS04002F.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "cxButtons" #pragma link "cxCheckBox" #pragma link "cxClasses" #pragma link "cxContainer" #pragma link "cxControls" #pragma link "cxCustomData" #pragma link "cxData" #pragma link "cxDataStorage" #pragma link "cxDropDownEdit" #pragma link "cxEdit" #pragma link "cxFilter" #pragma link "cxGraphics" #pragma link "cxGrid" #pragma link "cxGridCustomTableView" #pragma link "cxGridCustomView" #pragma link "cxGridLevel" #pragma link "cxGridTableView" #pragma link "cxGroupBox" #pragma link "cxLabel" #pragma link "cxLookAndFeelPainters" #pragma link "cxLookAndFeels" #pragma link "cxMaskEdit" #pragma link "cxPC" #pragma link "cxPCdxBarPopupMenu" #pragma link "cxSpinEdit" #pragma link "cxStyles" #pragma link "cxTextEdit" #pragma link "dxSkinBlack" #pragma link "dxSkinMcSkin" #pragma link "dxSkinsCore" #pragma link "dxSkinscxPCPainter" #pragma resource "*.dfm" //TVMS0400M *VMS0400M; //--------------------------------------------------------------------------- __fastcall TVMS04001::TVMS04001(TComponent* Owner) : TPlugInForm(Owner) { //Á¾·á ¸Þ½ÃÁö¸¦ ¸ÞÀÎÀ©µµ¿ì·Î Àü¼ÛÇÏÁö ¾Ê´Â´Ù. SendCloseMsg = false; } //--------------------------------------------------------------------------- /* * ´Ý±â¹öư À̳ª x¹öư Ŭ¸¯½Ã °øÅëÀ¸·Î ó¸®ÇÏ´Â ·ÎÁ÷À̵é¾î°£´Ù.. * Form°ú DataModule class¸¦ delete½ÃŲ´Ù. * arguments * * return * void */ void __fastcall TVMS04001::CommClose() { try { DeleteComboBox(CbFontName); DeleteComboBox(CbTextType); DeleteComboBox(CbAddTextType); DeleteComboBox(CbImageType); DeleteComboBox(CbFontNameRe); if (m_pDesigner) { delete m_pDesigner; m_pDesigner = NULL; } } catch(...) { } } //--------------------------------------------------------------------------- /* * È­¸é FormDestroy½Ã È£ÃâµÇ´Â Method * FormÀÇ ÀÚ¿øÀÌ ÇØÁ¦ µÇ±â ÀÌÀü¿¡ ¹Ýµå½Ã ÀÌ Method°¡ È£ÃâµÈ´Ù. * ±×·¯¹Ç·Î ÃÖÁ¾ÀûÀ¸·Î ÀÚ¿øÀ» ÇØÁ¦ ÇϰíÀÚ ÇÑ´Ù¸é À̰÷¿¡¼­ ó¸®ÇÏ´Â°Ô È®½ÇÇÔ. * parameter * Sender : Event¸¦ º¸³½ °´Ã¼ * return * None */ void __fastcall TVMS04001::FormDestroy(TObject *Sender) { TPlugInForm::FormDestroy(Sender); } //--------------------------------------------------------------------------- /* * FormÀÌ ¸Þ¸ð¸®¿¡¼­ »ý¼ºµÉ¶§ È£ÃâµÇ´Â »ý¼ºÀÚ À̺¥Æ® Çڵ鷯 * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TVMS04001::FormCreate(TObject *Sender) { m_pDesigner = new TITSVmsFormDesigner(PnlForm); CbTextType->Visible = true; CbImageType->Visible= false; CbImageType->Top = CbTextType->Top; CbImageType->Left= CbTextType->Left; } //--------------------------------------------------------------------------- /* * FormÀ» º¸¿©ÁÙ¶§ È£ÃâµÇ´Â event ¸Þ¼­µåÀÌ´Ù. * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TVMS04001::FormShow(TObject *Sender) { Refresh(); FormInit(); TmrShow->Enabled = true; } //--------------------------------------------------------------------------- /* * form ÃʱâÈ­ * * arguments * * return * void */ void __fastcall TVMS04001::FormInit() { m_bEdit = false; PgEdit->ActivePageIndex = 0; PnlForm->Caption = ""; PnlPreview->Caption = ""; PnlEdit->Caption = ""; PnlReForm->Caption = ""; PnlReFormView->Caption = ""; PnlRePreview->Caption = ""; FillComboBox(CbFontName, "VMS10"); // ÆùÆ® FillComboBox(CbTextType, "VMS11"); // Text Object Type FillComboBox(CbAddTextType, "VMS11"); FillComboBox(CbImageType, "VMS12"); // Image Object Type FillComboBox(CbFontNameRe, "VMS10"); // ÆùÆ® FormClear(); TvObjList->OptionsView->NoDataToDisplayInfoText = "<µî·ÏµÇ¾î ÀÖ´Â °´Ã¼ Á¤º¸°¡ ¾ø½À´Ï´Ù>"; m_pDesigner->ApplicationHandle = (long)Handle; OpenBmp->InitialDir = ExtractFilePath(Application->ExeName) + "vms\\image"; } //--------------------------------------------------------------------------- /* * form ÀÔ·Â Çʵå Clear * arguments * return * void */ void __fastcall TVMS04001::FormClear() { JobType = enJobNone; CbFontName->ItemIndex = 0; CbTextType->ItemIndex = 0; CbAddTextType->ItemIndex = 0; CbImageType->ItemIndex = 0; CbBkColor->ItemIndex = 0; CbFontNameRe->ItemIndex = 0; CbFontNameRe->ItemIndex = 0; } //--------------------------------------------------------------------------- /* * FormÀ» Hide¶§ È£ÃâµÇ´Â event ¸Þ¼­µåÀÌ´Ù. * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TVMS04001::FormHide(TObject *Sender) { // } //--------------------------------------------------------------------------- /* * FormÀÌ È­¸é¿¡ Ȱ¼ºÈ­ µÉ¶§ È£ÃâµÇ´Â event ¸Þ¼­µåÀÌ´Ù. * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TVMS04001::FormActivate(TObject *Sender) { // } //--------------------------------------------------------------------------- /* * FormÀÌ È­¸é¿¡¼­ ºñȰ¼ºÈ­ µÉ¶§ È£ÃâµÇ´Â event ¸Þ¼­µåÀÌ´Ù. * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TVMS04001::FormDeactivate(TObject *Sender) { // } //--------------------------------------------------------------------------- /* * FormÀÇ Skin ÃʱâÈ­ ÀÛ¾÷À» ¼öÇàÇÑ´Ù. * arguments * void * return * void */ void __fastcall TVMS04001::LoadLocalSkin() { PnlForm->ParentColor = false; PnlForm->Color = clBlack; PnlPreview->ParentColor = false; PnlPreview->Color = clSilver; PnlEdit->ParentColor = false; PnlEdit->Color = clSilver; PnlReForm->ParentColor = false; PnlReForm->Color = clSilver; PnlReFormView->ParentColor = false; PnlReFormView->Color = clSilver; PnlRePreview->ParentColor = false; PnlRePreview->Color = true; } //--------------------------------------------------------------------------- /* * FormÀÇ ÃʱâÈ­ ÀÛ¾÷À» ¼öÇàÇÑ´Ù. * arguments * void * return * void */ bool __fastcall TVMS04001::Initialize() { return true; } //--------------------------------------------------------------------------- /* * FormÀÌ ShowµÇ°í ³­ ÈÄ ÃÖÃÊ 1ȸ ¼öÇàµÇ´Â ŸÀÌ¸Ó À̺¥Æ® * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TVMS04001::TmrShowTimer(TObject *Sender) { TmrShow->Enabled = false; BtnSearchClick((TObject*)BtnSearch); } //--------------------------------------------------------------------------- /* * Refresh Data Event Function * arguments * * return * void */ void __fastcall TVMS04001::RefreshData() { // °Ë»öÁ¶°Ç¿¡ ÀÇÇÑ ¸µÅ© µ¥ÀÌÅÍ Á¶È¸ try { ClearGridTableView(TvObjList); SelListData(); } __finally { } } //--------------------------------------------------------------------------- void __fastcall TVMS04001::SelListData() { int nObjCnt = m_pDesigner->GetObjectCount(); TITSVmsFormObject *pObj; for(int ii = 0; ii < nObjCnt; ii++) { pObj = m_pDesigner->GetObject(ii); if (pObj) { AddObjectToList(pObj); } } if (TvObjList->DataController->RecordCount > 0) TvObjList->DataController->FocusedRecordIndex = 0; } //--------------------------------------------------------------------------- /* * Search ¹öư Ŭ¸¯ À̺¥Æ® Çڵ鷯 * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TVMS04001::BtnSearchClick(TObject *Sender) { RefreshData(); EdFocus->SetFocus(); } //--------------------------------------------------------------------------- /* * Close ¹öư Ŭ¸¯ À̺¥Æ® Çڵ鷯 * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TVMS04001::BtnCloseClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TVMS04001::SeFontSizePropertiesChange(TObject *Sender) { if (m_bEdit) return; if (((TcxSpinEdit*)Sender)->Value < ((TcxSpinEdit*)Sender)->Properties->MinValue) ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MinValue; else if(((TcxSpinEdit*)Sender)->Value > ((TcxSpinEdit*)Sender)->Properties->MaxValue && ((TcxSpinEdit*)Sender)->Properties->MaxValue) ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MaxValue; //if (m_pDesigner->GetSelectedObjectCount() < 1) return; int nFontSize = SeFontSize->Value; m_pDesigner->SetObejctFontSize(nFontSize); } //--------------------------------------------------------------------------- void __fastcall TVMS04001::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_pDesigner->GetSelectedObjectCount() < 1) return; int nValue = pPos->Value; switch(pPos->Tag) { case 0: m_pDesigner->MoveLeft(nValue); break; case 1: m_pDesigner->MoveUp(nValue); break; } } //--------------------------------------------------------------------------- void __fastcall TVMS04001::CbBkColorPropertiesChange(TObject *Sender) { if (m_bEdit) return; //if (m_pDesigner->GetSelectedObjectCount() < 1) return; m_pDesigner->SetObjectBkColorCode(String(CbBkColor->ItemIndex)); } //--------------------------------------------------------------------------- void __fastcall TVMS04001::ChkBlinkingClick(TObject *Sender) { if (m_bEdit) return; //if (m_pDesigner->GetSelectedObjectCount() < 1) return; m_pDesigner->SetObjectBlink(ChkBlinking->Checked); } //--------------------------------------------------------------------------- void __fastcall TVMS04001::CbFontNamePropertiesChange(TObject *Sender) { if (m_bEdit) return; //if (m_pDesigner->GetSelectedObjectCount() < 1) return; m_pDesigner->SetObejctFontName(CbFontName->Text); m_pDesigner->SetObejctFontNameCode(GetComboBoxCodeId(CbFontName)); } //--------------------------------------------------------------------------- void __fastcall TVMS04001::BtnMoveClick(TObject *Sender) { if (m_bEdit) return; TcxButton *pBtn = (TcxButton *)Sender; switch(pBtn->Tag) { case 0: m_pDesigner->StepMoveLeft(); break; case 1: m_pDesigner->StepMoveRight(); break; case 2: m_pDesigner->StepMoveUp(); break; case 3: m_pDesigner->StepMoveDown(); break; } } //--------------------------------------------------------------------------- void __fastcall TVMS04001::BtnAlignClick(TObject *Sender) { if (m_bEdit) return; TcxButton *pBtn = (TcxButton *)Sender; if (m_pDesigner->GetSelectedObjectCount() < 1) return; switch(pBtn->Tag) { case 0: m_pDesigner->SetLeftAlign(m_pDesigner->GetLeftAlign()); break; case 1: m_pDesigner->SetRightAlign(m_pDesigner->GetRightAlign()); break; case 2: m_pDesigner->SetTopAlign(m_pDesigner->GetTopAlign()); break; case 3: m_pDesigner->SetBottomAlign(m_pDesigner->GetBottomAlign()); break; } } //--------------------------------------------------------------------------- void __fastcall TVMS04001::BtnCenterClick(TObject *Sender) { if (m_bEdit) return; TcxButton *pBtn = (TcxButton *)Sender; if (m_pDesigner->GetSelectedObjectCount() < 1) return; switch(pBtn->Tag) { case 0: m_pDesigner->SetAlignWidthCenter(); break; case 1: m_pDesigner->SetAlignHeightCenter(); break; } } //--------------------------------------------------------------------------- void __fastcall TVMS04001::CbFontColorPropertiesChange(TObject *Sender) { if (m_bEdit) return; //if (m_pDesigner->GetSelectedObjectCount() < 1) return; m_pDesigner->SetObejctFontColorCode(String(CbFontColor->ItemIndex)); } //--------------------------------------------------------------------------- void __fastcall TVMS04001::EdTextDataKeyPress(TObject *Sender, wchar_t &Key) { if (m_bEdit) return; if (Key == '\'') { Key = '`'; } } //--------------------------------------------------------------------------- void __fastcall TVMS04001::CbTextAlignPropertiesChange(TObject *Sender) { if (m_bEdit) return; //if (m_pDesigner->GetSelectedObjectCount() < 1) return; m_pDesigner->SetObejctTextAlign(CbTextAlign->ItemIndex); } //--------------------------------------------------------------------------- void __fastcall TVMS04001::EdTextDataPropertiesChange(TObject *Sender) { if (m_bEdit) return; //if (m_pDesigner->GetSelectedObjectCount() < 1) return; m_pDesigner->SetObejctText(EdTextData->Text); } //--------------------------------------------------------------------------- /* * ¼±ÅÃµÈ °´Ã¼ÀÇ Á¤º¸¸¦ Edit component¿¡ Ç¥ÃâÇÑ´Ù. * argumemts * * return * void */ void __fastcall TVMS04001::FnFormObjectSelected(TMessage &Msg) { m_bEdit = true; try { TITSVmsFormObject *pObj = (TITSVmsFormObject *)Msg.LParam; if (!pObj) return; if (!pObj->Selected) return; EdObjId->Text = pObj->ObjId; ChkBlinking->Checked = pObj->Blink; CbBkColor->ItemIndex = pObj->BkColorCode.ToInt(); SeLeft->Value = pObj->GetLeft(); SeTop->Value = pObj->GetTop(); if (pObj->DrawType == enText) { SelectComboBoxItem(CbTextType, pObj->ObjType); SelectComboBoxItem(CbFontName, pObj->FontNameCode); CbFontColor->ItemIndex = pObj->FontColorCode.ToInt(); SeFontSize->Value = pObj->FontSize; ChkFontBold->Checked = pObj->FontBold; CbTextAlign->ItemIndex = pObj->TextAlign; if (EdTextData->Text != pObj->Text) EdTextData->Text = pObj->Text; CbTextType->Visible = true; CbImageType->Visible= false; } else { SelectComboBoxItem(CbImageType, pObj->ObjType); CbTextType->Visible = false; CbImageType->Visible= true; } } catch(...) {} m_bEdit = false; } //--------------------------------------------------------------------------- ///////////////////////////////////////////////// RichEdit Interface void __fastcall TVMS04001::BtnSortReClick(TObject *Sender) { TcxButton *pBtn = (TcxButton *)Sender; ReForm->Paragraph->Numbering = nsNone; ReForm->Paragraph->Alignment = (TAlignment)pBtn->Tag; } //--------------------------------------------------------------------------- void __fastcall TVMS04001::BtnBoldReClick(TObject *Sender) { if (ReForm->SelAttributes->Style.Contains(fsBold)) ReForm->SelAttributes->Style = TFontStyles() >> fsBold; else ReForm->SelAttributes->Style = TFontStyles() << fsBold; } //--------------------------------------------------------------------------- void __fastcall TVMS04001::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 TVMS04001::CbFontColorReClick(TObject *Sender) { 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; } } //--------------------------------------------------------------------------- void __fastcall TVMS04001::CbFontNameReClick(TObject *Sender) { ReForm->SelAttributes->Name = CbFontNameRe->Text; } //--------------------------------------------------------------------------- /* * °´Ã¼ Ãß°¡ À̺¥Æ® Çڵ鷯 * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TVMS04001::BtnAddTextClick(TObject *Sender) { TCodeValue *pCode = (TCodeValue*)GetComboBoxObject(CbAddTextType); if (!pCode) return; String sDefText = pCode->GetOprCodeName(); int nNewObjSeq = m_pDesigner->GetNewObjectSeq(); TITSVmsFormObject *pObj = m_pDesigner->AddObject(enText); if (!pObj) return; pObj->ObjSeq = nNewObjSeq; pObj->ObjKind = OBJKIND_TEXT; // "0" pObj->ObjType = pCode->GetCode(); pObj->ObjSize = sDefText.Length(); pObj->BkColorCode = m_pDesigner->BkColorCode; pObj->Blink = false; pObj->Text = sDefText; String sFontName = "±¼¸²Ã¼"; String sFontNameCode = "3"; String sFontColorCode= "2"; String sFontSize = 18; bool bFontBold = true; try { TStringList *sList= new TStringList; sList->Delimiter = '^'; sList->StrictDelimiter = true; sList->DelimitedText = pCode->GetRemark(); for(int nCnt=0; nCnt < sList->Count; nCnt++) { switch(nCnt) { case 0: sFontName = sList->Strings[nCnt]; break; case 1: sFontNameCode = sList->Strings[nCnt]; break; case 2: sFontColorCode = sList->Strings[nCnt]; break; case 3: sFontSize = sList->Strings[nCnt]; break; case 4: bFontBold = sList->Strings[nCnt] == "1" ? true : false; break; } } delete sList; } catch(...) { } pObj->FontName = sFontName; pObj->FontNameCode = sFontNameCode; pObj->FontColorCode = sFontColorCode; pObj->FontSize = sFontSize.ToInt(); pObj->FontBold = bFontBold; pObj->TextAlign = 0; // left pObj->SetPos(0, 0); pObj->EditMode = true; pObj->Show(); AddObjectToList(pObj, true); } //--------------------------------------------------------------------------- void __fastcall TVMS04001::BtnAddImageClick(TObject *Sender) { TcxButton *pBtn = (TcxButton *)Sender; int nImageType = pBtn->Tag; TITSVmsFormObject *pObj = NULL; int nNewObjSeq = m_pDesigner->GetNewObjectSeq(); if (nImageType == 0 || nImageType == 1) { try { TVMS04002 *pSelForm = new TVMS04002(this); pSelForm->m_sImageKind = String(nImageType); pSelForm->ShowModal(); if (!pSelForm->m_bSelected) { delete pSelForm; return; } pObj = m_pDesigner->AddObject(enBmp); if (!pObj) return; pObj->ObjSeq = nNewObjSeq; pObj->ObjKind = OBJKIND_IMAGEID; // "2" pObj->ObjType = String(201+nImageType); pObj->ObjSize = pSelForm->m_nImageSize; pObj->BkColorCode = m_pDesigner->BkColorCode; pObj->Blink = false; pObj->Text = pSelForm->m_sImageName; pObj->ImageId = pSelForm->m_sImageId; pObj->SetBitmap(pSelForm->ImgPreView->Picture->Bitmap); pObj->SetPos(0, 0); pObj->EditMode = true; pObj->Show(); AddObjectToList(pObj, true); delete pSelForm; } catch(...) { } } else { OpenBmp->FileName = ""; OpenBmp->Execute(); } } //--------------------------------------------------------------------------- void __fastcall TVMS04001::OpenBmpCanClose(TObject *Sender, bool &CanClose) { String sFName = OpenBmp->FileName; sFName = sFName.UpperCase(); if (sFName.SubString(sFName.Length()-2, 3) != "BMP") { Application->MessageBox(L"BMP ÆÄÀϸ¸ Àû¿ë °¡´ÉÇÕ´Ï´Ù.", L"VMS À̹ÌÁö ¼±ÅÃ", MB_OK|MB_ICONWARNING|MB_APPLMODAL); return; } try { DWORD dwFileSize = GetFileSize(sFName); if (dwFileSize <= 0) { Application->MessageBox(L"À̹ÌÁö ÆÄÀÏÀ» ÀÐ¾î ¿À´Âµ¥ ½ÇÆÐÇÏ¿´½À´Ï´Ù.", L"VMS À̹ÌÁö ¼±ÅÃ", MB_OK|MB_ICONWARNING|MB_APPLMODAL); return; } if (dwFileSize > (1024 * 32)) // Max 32Kbytes { Application->MessageBox(L"À̹ÌÁö ÆÄÀÏÀÇ ÃÖ´ë Å©±â´Â 32KBytes¸¦ ³ÑÀ» ¼ö ¾ø½À´Ï´Ù.\r\nÀ̹ÌÁö ÆÄÀÏÀÇ ¿ë·®À» ÁÙ¿© ÁÖ¼¼¿ä.", L"VMS À̹ÌÁö ¼±ÅÃ", MB_OK|MB_ICONWARNING|MB_APPLMODAL); return; } ImgTemp->Picture->Bitmap->FreeImage(); ImgTemp->Picture->Bitmap = NULL; ImgTemp->Picture->Bitmap->LoadFromFile(sFName); TITSVmsFormObject *pObj = NULL; int nNewObjSeq = m_pDesigner->GetNewObjectSeq(); pObj = m_pDesigner->AddObject(enBmp); if (!pObj) return; pObj->ObjSeq = nNewObjSeq; pObj->ObjKind = OBJKIND_IMAGE; // "1" pObj->ObjType = String(201); pObj->ObjSize = (int)dwFileSize; pObj->SetBitmap(ImgTemp->Picture->Bitmap); pObj->BkColorCode = m_pDesigner->BkColorCode; pObj->Blink = false; pObj->Text = ExtractShortPathName(sFName).c_str(); pObj->ImageId = String(nNewObjSeq); pObj->SetPos(0, 0); pObj->EditMode = true; pObj->Show(); AddObjectToList(pObj, true); } catch(...) { return; } } //--------------------------------------------------------------------------- void __fastcall TVMS04001::AddObjectToList(TITSVmsFormObject *pObj, bool bSelect/*=false*/) { int nAddRow = -1; TcxGridDataController *pGDC = (TcxGridDataController *)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); if (pObj->ObjKind == OBJKIND_TEXT) { pGDC->Values[nAddRow][ColKind->Index] = "¹®ÀÚ¿­"; pGDC->Values[nAddRow][ColType->Index] = GetComboBoxCodeName(CbTextType, pObj->ObjType); pGDC->Values[nAddRow][ColData->Index] = pObj->Text; } else if (pObj->ObjKind == OBJKIND_IMAGE) { pGDC->Values[nAddRow][ColKind->Index] = "À̹ÌÁö"; pGDC->Values[nAddRow][ColType->Index] = GetComboBoxCodeName(CbImageType, pObj->ObjType); pGDC->Values[nAddRow][ColData->Index] = pObj->Text; } else if (pObj->ObjKind == OBJKIND_IMAGEID) { pGDC->Values[nAddRow][ColKind->Index] = "À̹ÌÁöID"; pGDC->Values[nAddRow][ColType->Index] = GetComboBoxCodeName(CbImageType, pObj->ObjType); pGDC->Values[nAddRow][ColData->Index] = pObj->Text + " [" + pObj->ImageId + "]"; } pGDC->Values[nAddRow][ColX->Index] = String(pObj->GetLeft()); pGDC->Values[nAddRow][ColY->Index] = String(pObj->GetTop()); } __finally { pGDC->EndUpdate(); TvObjList->EndUpdate(); if (bSelect && pGDC->RecordCount > 0) if (nAddRow >= 0) pGDC->FocusedRecordIndex = nAddRow; } } //--------------------------------------------------------------------------- void __fastcall TVMS04001::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]; m_pDesigner->SelectObject(sObjSeq.ToInt()); } //--------------------------------------------------------------------------- /* * »èÁ¦ ¹öư Ŭ¸¯ À̺¥Æ® Çڵ鷯 * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TVMS04001::BtnObjDeleteClick(TObject *Sender) { if (m_pDesigner->GetSelectedObjectCount() < 1) return; String sMsgString; sMsgString = "¼±ÅÃÇÑ °´Ã¼ Á¤º¸¸¦ ¸ðµÎ »èÁ¦ÇϽðڽÀ´Ï±î?"; if (Application->MessageBox(sMsgString.c_str(), L"°´Ã¼ Á¤º¸ »èÁ¦", MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) { return; } TITSVmsFormObject *pObj; int nObjCnt = m_pDesigner->GetObjectCount(); for (int ii = nObjCnt-1; ii >= 0; ii--) { pObj = m_pDesigner->GetObject(ii); if (pObj->Selected) m_pDesigner->DelObject(ii); } BtnSearchClick(NULL); } //--------------------------------------------------------------------------- /* * ÀúÀå ¹öư Ŭ¸¯ À̺¥Æ® Çڵ鷯 * arguments * Sender : event handler °´Ã¼ * return * void */ void __fastcall TVMS04001::BtnFormSaveClick(TObject *Sender) { String sFormId = EdID->Text; if (sFormId == "") return; String sMsgString; sMsgString = "°´Ã¼ Á¤º¸¸¦ ¸ðµÎ ÀúÀåÇϽðڽÀ´Ï±î?"; if (Application->MessageBox(sMsgString.c_str(), L"°´Ã¼ Á¤º¸ ÀúÀå", MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) { return; } // ÀÌÀü µ¥ÀÌÅ͸¦ ¸ðµÎ »èÁ¦ DeleteData(sFormId); String sQry; #if 0 sQry = "INSERT INTO TB_MS_VMS_FORMOBJECT(" " FORMID , OBJECTSEQ , OBJECTID, " " OBJECTKIND , OBJECTTYPE ," " OBJECTSIZE , ISBLINKING ," " POSX , POSY ," " WIDTH , HEIGHT ," " BKCOLOR , TEXTFONTNAME," " TEXTFONTCOLOR, TEXTFONTSIZE," " TEXTFONTBOLD , TEXTALIGN ," " TEXTDATA , IMAGEID ," " IMAGETYPE , IMAGEDATA " " ) VALUES ( " " :p01 , :p02 , :p20, " " :p03 , :p04 ," " :p05 , :p06 ," " :p07 , :p08 ," " :p09 , :p10 ," " :p11 , :p12 ," " :p13 , :p14 ," " :p15 , :p16 ," " :p17 , :p18 ," " :p21 , :p19 " ") "; #else sQry = "INSERT INTO TB_MS_VMS_FORMOBJECT(" " FORMID , OBJECTSEQ , OBJECTID, " " OBJECTKIND , OBJECTTYPE ," " OBJECTSIZE , ISBLINKING ," " POSX , POSY ," " WIDTH , HEIGHT ," " BKCOLOR , TEXTFONTNAME," " TEXTFONTCOLOR, TEXTFONTSIZE," " TEXTFONTBOLD , TEXTALIGN ," " TEXTDATA , IMAGEID " " ) VALUES ( " " :p01 , :p02 , :p19, " " :p03 , :p04 ," " :p05 , :p06 ," " :p07 , :p08 ," " :p09 , :p10 ," " :p11 , :p12 ," " :p13 , :p14 ," " :p15 , :p16 ," " :p17 , :p18 " ") "; #endif ITSDb_GetConnection()->BeginTrans(); try { ADOQry->Connection = ITSDb_GetConnection(); ClearQry(); SetQry(sQry); String sImageType = "0"; TITSVmsFormObject *pObj; int nObjCnt = m_pDesigner->GetObjectCount(); for (int ii = 0; ii < nObjCnt; ii++) { pObj = m_pDesigner->GetObject(ii); if (!pObj) continue; pObj->ObjSeq = ii+1; ParamBind("p01", sFormId); ParamBind("p02", String(pObj->ObjSeq)); ParamBind("p03", pObj->ObjKind); ParamBind("p04", pObj->ObjType); ParamBind("p05", String(pObj->ObjSize)); if (pObj->Blink) ParamBind("p06", "1"); else ParamBind("p06", "0"); ParamBind("p07", String(pObj->GetLeft())); ParamBind("p08", String(pObj->GetTop())); ParamBind("p09", String(pObj->GetWidth())); ParamBind("p10", String(pObj->GetHeight())); ParamBind("p11", pObj->BkColorCode); ParamBind("p12", pObj->FontNameCode); ParamBind("p13", pObj->FontColorCode); ParamBind("p14", String(pObj->FontSize)); if (pObj->FontBold) ParamBind("p15", "1"); else ParamBind("p15", "0"); ParamBind("p16", String(pObj->TextAlign)); ParamBind("p17", pObj->Text); #if 0 ParamBind("p18", pObj->ImageId); if (pObj->ObjKind == OBJKIND_IMAGE) { String sTmpFile; sTmpFile.printf(L"c:\\tmpobj%d_%d.bmp", ii, GetTickCount()); try { Graphics::TBitmap *Bitmap = pObj->GetBitmap(); Bitmap->SaveToFile(sTmpFile); ADOQry->Parameters->ParamByName("p19")->LoadFromFile(sTmpFile, ftBlob); } __finally { DeleteFile(sTmpFile); } } else ParamBind("p19", ""); #else if (pObj->ObjKind == OBJKIND_IMAGE) { String sImageId = pObj->ImageId; if (sImageId.Length() != 10) { /* * ÆÄÀÏÀ̹ÌÁö¸¦ ¼±ÅÃÇÑ °æ¿ì */ String sNewImageId; GetImageNewID(sNewImageId); pObj->ImageId = sNewImageId; InsertFileImage(sFormId, pObj); } } ParamBind("p18", pObj->ImageId); #endif ParamBind("p19", pObj->ObjId); // ParamBind("p21", sImageType); ExecuteQry(); } ITSDb_GetConnection()->CommitTrans(); } catch (Exception &exception) { ITSDb_GetConnection()->RollbackTrans(); throw Exception(String(exception.ClassName()) + exception.Message); } BtnSearchClick(NULL); } //--------------------------------------------------------------------------- bool __fastcall TVMS04001::InsertFileImage(String sFormId, TITSVmsFormObject *pObj) { bool bResult = false; String sQry; sQry = "INSERT INTO TB_MS_VMS_IMAGE ( " " IMAGEID, " " IMAGEKIND, " " IMAGETYPE, " " IMAGENAME, " " IMAGEDESC, " " IMAGE , " " IMAGESIZE, " " IMAGEWIDTH, " " IMAGEHEIGHT," " VMSID " " ) VALUES( " " :p01, " " :p02, " " :p03, " " :p04, " " :p05, " " :p06, " " :p07, " " :p08, " " :p09, " " :p10 " " ) "; try { ClearQry(ADO); SetQry(ADO, sQry); ParamBind(ADO, "p01", pObj->ImageId); ParamBind(ADO, "p02", "0"); ParamBind(ADO, "p03", "0"); // IMAGE TYPE(0:BITMAP,1:GIF,2:JPG,3:PCX) ParamBind(ADO, "p04", sFormId + " Image File"); ParamBind(ADO, "p05", "Image File"); ParamBind(ADO, "p07", String(pObj->ObjSize)); String sTmpFile; sTmpFile.printf(L"c:\\IMG%s_%d.bmp", sFormId.Trim().c_str(), GetTickCount()); try { Graphics::TBitmap *Bitmap = pObj->GetBitmap(); Bitmap->SaveToFile(sTmpFile); ADO->Parameters->ParamByName("p06")->LoadFromFile(sTmpFile, ftBlob); ParamBind(ADO, "p08", String(Bitmap->Width)); ParamBind(ADO, "p09", String(Bitmap->Height)); } __finally { DeleteFile(sTmpFile); } ParamBind(ADO, "p10", ""); bResult = (ExecuteQry(ADO) > 0) ? true : false; } catch (Exception &exception) { throw Exception(String(exception.ClassName()) + exception.Message); } return bResult; } //--------------------------------------------------------------------------- bool __fastcall TVMS04001::GetImageNewID(String &sNewID) { bool bResult = false; String sQry; sQry = "select 'FILE' || lpad(nvl(max(substr(a.imageid, -4)), '000000') + 1, 6, '0') as nid " " from tb_ms_vms_image a where substr(a.imageid, 1, 4) = 'FILE' "; try { ADO->Connection = ITSDb_GetConnection(); ClearQry(ADO); SetQry(ADO, sQry); bResult = OpenQry(ADO); if (bResult) { ADO->First(); sNewID = ADO->FieldByName("nid")->AsString; } } catch(EDatabaseError &E) { throw Exception(String(E.ClassName()) + E.Message); } catch (Exception &exception) { throw Exception(String(exception.ClassName()) + exception.Message); } catch(...) { throw Exception("¾Ë¼ö¾ø´Â ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù."); } ADO->Close(); return bResult; } //--------------------------------------------------------------------------- /* * µ¥ÀÌÅÍ »èÁ¦ * arguments * pCTV_ID - CTV ID * return * »èÁ¦ ¼º°ø - true, ½ÇÆÐ - false */ bool __fastcall TVMS04001::DeleteData(String sID) { String sQry; bool bResult = false; sQry = "DELETE TB_MS_VMS_FORMOBJECT" " WHERE FORMID = :pID "; try { ADOQry->Connection = ITSDb_GetConnection(); ClearQry(); SetQry(sQry); ParamBind("pID", sID); int nRowCnt = ExecuteQry(); bResult = nRowCnt > 0 ? true : false; } catch (Exception &exception) { throw Exception(String(exception.ClassName()) + exception.Message); } return bResult; } //--------------------------------------------------------------------------- void __fastcall TVMS04001::ReFormChange(TObject *Sender) { if (ChkAutoPreview->Checked) BtnPreviewClick(NULL); } //--------------------------------------------------------------------------- void __fastcall TVMS04001::BtnReApplyClick(TObject *Sender) { BtnPreviewClick(NULL); m_pDesigner->AddDrawFormToVmsForm(ReForm, ImgPreview); /* * ½Å±Ô·Î µî·ÏÇÑ °´Ã¼ÀÇ °´Ã¼Å¸ÀÔ°ú ÆùÆ®Äڵ带 ¾÷µ¥ÀÌÆ® ÇÑ´Ù. */ CbAddTextType->ItemIndex = 0; // For °íÁ¤¹®ÀÚ¿­ String sObjType = GetComboBoxCodeId(CbAddTextType); TITSVmsFormObject *pObj; int nObjCnt = m_pDesigner->GetObjectCount(); for (int ii = 0; ii < nObjCnt; ii++) { pObj = m_pDesigner->GetObject(ii); if (pObj->ObjType == "XXX" && pObj->FontNameCode == "XXX") { pObj->ObjType = sObjType; pObj->FontNameCode = GetComboBoxCodeIdByName(CbFontName, pObj->FontName); } } PgEdit->ActivePageIndex = 0; BtnSearchClick(NULL); } //--------------------------------------------------------------------------- void __fastcall TVMS04001::BtnPreviewClick(TObject *Sender) { m_pDesigner->PreviewDrawForm(ReForm, ReFormTemp, ImgPreview); } //--------------------------------------------------------------------------- void __fastcall TVMS04001::ChkAutoPreviewClick(TObject *Sender) { if (ChkAutoPreview->Checked) BtnPreviewClick(NULL); } //--------------------------------------------------------------------------- void __fastcall TVMS04001::Button1Click(TObject *Sender) { TITSVmsFormObject *pObj; int nObjCnt = m_pDesigner->GetObjectCount(); for (int ii = 0; ii < nObjCnt; ii++) { pObj = m_pDesigner->GetObject(ii); if (!pObj->Selected) continue; if (pObj->ObjKind != OBJKIND_TEXT) continue; pObj->SetRuntimeText(Edit1->Text); } } //--------------------------------------------------------------------------- void __fastcall TVMS04001::ChkFontBoldClick(TObject *Sender) { if (m_bEdit) return; //if (m_pDesigner->GetSelectedObjectCount() < 1) return; m_pDesigner->SetObejctFontBold(ChkFontBold->Checked); } //--------------------------------------------------------------------------- void __fastcall TVMS04001::EdObjIdPropertiesChange(TObject *Sender) { if (m_bEdit) return; //if (m_pDesigner->GetSelectedObjectCount() < 1) return; try { int nObjId; TryStrToInt(EdObjId->Text.Trim(), nObjId); m_pDesigner->SetObejctId(nObjId); } catch(...) {} } //---------------------------------------------------------------------------