VMS04001F.cpp 37 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247
  1. /****************************************************************************
  2. * @source :
  3. * @description :
  4. ****************************************************************************
  5. * DATE AUTHOR DESCRIPTION
  6. * --------------------------------------------------------------------------
  7. * 2011/12/24 정승호 최초작성
  8. *
  9. ****************************************************************************/
  10. //---------------------------------------------------------------------------
  11. #include <vcl.h>
  12. #pragma hdrstop
  13. #include "VMS04001F.h"
  14. #include "VMS04002F.h"
  15. //---------------------------------------------------------------------------
  16. #pragma package(smart_init)
  17. #pragma link "cxButtons"
  18. #pragma link "cxCheckBox"
  19. #pragma link "cxClasses"
  20. #pragma link "cxContainer"
  21. #pragma link "cxControls"
  22. #pragma link "cxCustomData"
  23. #pragma link "cxData"
  24. #pragma link "cxDataStorage"
  25. #pragma link "cxDropDownEdit"
  26. #pragma link "cxEdit"
  27. #pragma link "cxFilter"
  28. #pragma link "cxGraphics"
  29. #pragma link "cxGrid"
  30. #pragma link "cxGridCustomTableView"
  31. #pragma link "cxGridCustomView"
  32. #pragma link "cxGridLevel"
  33. #pragma link "cxGridTableView"
  34. #pragma link "cxGroupBox"
  35. #pragma link "cxLabel"
  36. #pragma link "cxLookAndFeelPainters"
  37. #pragma link "cxLookAndFeels"
  38. #pragma link "cxMaskEdit"
  39. #pragma link "cxPC"
  40. #pragma link "cxPCdxBarPopupMenu"
  41. #pragma link "cxSpinEdit"
  42. #pragma link "cxStyles"
  43. #pragma link "cxTextEdit"
  44. #pragma link "dxSkinBlack"
  45. #pragma link "dxSkinMcSkin"
  46. #pragma link "dxSkinsCore"
  47. #pragma link "dxSkinscxPCPainter"
  48. #pragma resource "*.dfm"
  49. //TVMS0400M *VMS0400M;
  50. //---------------------------------------------------------------------------
  51. __fastcall TVMS04001::TVMS04001(TComponent* Owner)
  52. : TPlugInForm(Owner)
  53. {
  54. //종료 메시지를 메인윈도우로 전송하지 않는다.
  55. SendCloseMsg = false;
  56. }
  57. //---------------------------------------------------------------------------
  58. /*
  59. * 닫기버튼 이나 x버튼 클릭시 공통으로 처리하는 로직이들어간다..
  60. * Form과 DataModule class를 delete시킨다.
  61. * arguments
  62. *
  63. * return
  64. * void
  65. */
  66. void __fastcall TVMS04001::CommClose()
  67. {
  68. try
  69. {
  70. DeleteComboBox(CbFontName);
  71. DeleteComboBox(CbTextType);
  72. DeleteComboBox(CbAddTextType);
  73. DeleteComboBox(CbImageType);
  74. DeleteComboBox(CbFontNameRe);
  75. if (m_pDesigner)
  76. {
  77. delete m_pDesigner;
  78. m_pDesigner = NULL;
  79. }
  80. }
  81. catch(...)
  82. {
  83. }
  84. }
  85. //---------------------------------------------------------------------------
  86. /*
  87. * 화면 FormDestroy시 호출되는 Method
  88. * Form의 자원이 해제 되기 이전에 반드시 이 Method가 호출된다.
  89. * 그러므로 최종적으로 자원을 해제 하고자 한다면 이곳에서 처리하는게 확실함.
  90. * parameter
  91. * Sender : Event를 보낸 객체
  92. * return
  93. * None
  94. */
  95. void __fastcall TVMS04001::FormDestroy(TObject *Sender)
  96. {
  97. TPlugInForm::FormDestroy(Sender);
  98. }
  99. //---------------------------------------------------------------------------
  100. /*
  101. * Form이 메모리에서 생성될때 호출되는 생성자 이벤트 핸들러
  102. * arguments
  103. * Sender : event handler 객체
  104. * return
  105. * void
  106. */
  107. void __fastcall TVMS04001::FormCreate(TObject *Sender)
  108. {
  109. m_pDesigner = new TITSVmsFormDesigner(PnlForm);
  110. CbTextType->Visible = true;
  111. CbImageType->Visible= false;
  112. CbImageType->Top = CbTextType->Top;
  113. CbImageType->Left= CbTextType->Left;
  114. }
  115. //---------------------------------------------------------------------------
  116. /*
  117. * Form을 보여줄때 호출되는 event 메서드이다.
  118. * arguments
  119. * Sender : event handler 객체
  120. * return
  121. * void
  122. */
  123. void __fastcall TVMS04001::FormShow(TObject *Sender)
  124. {
  125. Refresh();
  126. FormInit();
  127. TmrShow->Enabled = true;
  128. }
  129. //---------------------------------------------------------------------------
  130. /*
  131. * form 초기화
  132. *
  133. * arguments
  134. *
  135. * return
  136. * void
  137. */
  138. void __fastcall TVMS04001::FormInit()
  139. {
  140. m_bEdit = false;
  141. PgEdit->ActivePageIndex = 0;
  142. PnlForm->Caption = "";
  143. PnlPreview->Caption = "";
  144. PnlEdit->Caption = "";
  145. PnlReForm->Caption = "";
  146. PnlReFormView->Caption = "";
  147. PnlRePreview->Caption = "";
  148. FillComboBox(CbFontName, "VMS10"); // 폰트
  149. FillComboBox(CbTextType, "VMS11"); // Text Object Type
  150. FillComboBox(CbAddTextType, "VMS11");
  151. FillComboBox(CbImageType, "VMS12"); // Image Object Type
  152. FillComboBox(CbFontNameRe, "VMS10"); // 폰트
  153. FormClear();
  154. TvObjList->OptionsView->NoDataToDisplayInfoText = "<등록되어 있는 객체 정보가 없습니다>";
  155. m_pDesigner->ApplicationHandle = (long)Handle;
  156. OpenBmp->InitialDir = ExtractFilePath(Application->ExeName) + "vms\\image";
  157. }
  158. //---------------------------------------------------------------------------
  159. /*
  160. * form 입력 필드 Clear
  161. * arguments
  162. * return
  163. * void
  164. */
  165. void __fastcall TVMS04001::FormClear()
  166. {
  167. JobType = enJobNone;
  168. CbFontName->ItemIndex = 0;
  169. CbTextType->ItemIndex = 0;
  170. CbAddTextType->ItemIndex = 0;
  171. CbImageType->ItemIndex = 0;
  172. CbBkColor->ItemIndex = 0;
  173. CbFontNameRe->ItemIndex = 0;
  174. CbFontNameRe->ItemIndex = 0;
  175. }
  176. //---------------------------------------------------------------------------
  177. /*
  178. * Form을 Hide때 호출되는 event 메서드이다.
  179. * arguments
  180. * Sender : event handler 객체
  181. * return
  182. * void
  183. */
  184. void __fastcall TVMS04001::FormHide(TObject *Sender)
  185. {
  186. //
  187. }
  188. //---------------------------------------------------------------------------
  189. /*
  190. * Form이 화면에 활성화 될때 호출되는 event 메서드이다.
  191. * arguments
  192. * Sender : event handler 객체
  193. * return
  194. * void
  195. */
  196. void __fastcall TVMS04001::FormActivate(TObject *Sender)
  197. {
  198. //
  199. }
  200. //---------------------------------------------------------------------------
  201. /*
  202. * Form이 화면에서 비활성화 될때 호출되는 event 메서드이다.
  203. * arguments
  204. * Sender : event handler 객체
  205. * return
  206. * void
  207. */
  208. void __fastcall TVMS04001::FormDeactivate(TObject *Sender)
  209. {
  210. //
  211. }
  212. //---------------------------------------------------------------------------
  213. /*
  214. * Form의 Skin 초기화 작업을 수행한다.
  215. * arguments
  216. * void
  217. * return
  218. * void
  219. */
  220. void __fastcall TVMS04001::LoadLocalSkin()
  221. {
  222. PnlForm->ParentColor = false;
  223. PnlForm->Color = clBlack;
  224. PnlPreview->ParentColor = false;
  225. PnlPreview->Color = clSilver;
  226. PnlEdit->ParentColor = false;
  227. PnlEdit->Color = clSilver;
  228. PnlReForm->ParentColor = false;
  229. PnlReForm->Color = clSilver;
  230. PnlReFormView->ParentColor = false;
  231. PnlReFormView->Color = clSilver;
  232. PnlRePreview->ParentColor = false;
  233. PnlRePreview->Color = true;
  234. }
  235. //---------------------------------------------------------------------------
  236. /*
  237. * Form의 초기화 작업을 수행한다.
  238. * arguments
  239. * void
  240. * return
  241. * void
  242. */
  243. bool __fastcall TVMS04001::Initialize()
  244. {
  245. return true;
  246. }
  247. //---------------------------------------------------------------------------
  248. /*
  249. * Form이 Show되고 난 후 최초 1회 수행되는 타이머 이벤트
  250. * arguments
  251. * Sender : event handler 객체
  252. * return
  253. * void
  254. */
  255. void __fastcall TVMS04001::TmrShowTimer(TObject *Sender)
  256. {
  257. TmrShow->Enabled = false;
  258. BtnSearchClick((TObject*)BtnSearch);
  259. }
  260. //---------------------------------------------------------------------------
  261. /*
  262. * Refresh Data Event Function
  263. * arguments
  264. *
  265. * return
  266. * void
  267. */
  268. void __fastcall TVMS04001::RefreshData()
  269. {
  270. // 검색조건에 의한 링크 데이터 조회
  271. try
  272. {
  273. ClearGridTableView(TvObjList);
  274. SelListData();
  275. }
  276. __finally
  277. {
  278. }
  279. }
  280. //---------------------------------------------------------------------------
  281. void __fastcall TVMS04001::SelListData()
  282. {
  283. int nObjCnt = m_pDesigner->GetObjectCount();
  284. TITSVmsFormObject *pObj;
  285. for(int ii = 0; ii < nObjCnt; ii++)
  286. {
  287. pObj = m_pDesigner->GetObject(ii);
  288. if (pObj)
  289. {
  290. AddObjectToList(pObj);
  291. }
  292. }
  293. if (TvObjList->DataController->RecordCount > 0) TvObjList->DataController->FocusedRecordIndex = 0;
  294. }
  295. //---------------------------------------------------------------------------
  296. /*
  297. * Search 버튼 클릭 이벤트 핸들러
  298. * arguments
  299. * Sender : event handler 객체
  300. * return
  301. * void
  302. */
  303. void __fastcall TVMS04001::BtnSearchClick(TObject *Sender)
  304. {
  305. RefreshData();
  306. EdFocus->SetFocus();
  307. }
  308. //---------------------------------------------------------------------------
  309. /*
  310. * Close 버튼 클릭 이벤트 핸들러
  311. * arguments
  312. * Sender : event handler 객체
  313. * return
  314. * void
  315. */
  316. void __fastcall TVMS04001::BtnCloseClick(TObject *Sender)
  317. {
  318. Close();
  319. }
  320. //---------------------------------------------------------------------------
  321. void __fastcall TVMS04001::SeFontSizePropertiesChange(TObject *Sender)
  322. {
  323. if (m_bEdit) return;
  324. if (((TcxSpinEdit*)Sender)->Value < ((TcxSpinEdit*)Sender)->Properties->MinValue)
  325. ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MinValue;
  326. else if(((TcxSpinEdit*)Sender)->Value > ((TcxSpinEdit*)Sender)->Properties->MaxValue &&
  327. ((TcxSpinEdit*)Sender)->Properties->MaxValue)
  328. ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MaxValue;
  329. //if (m_pDesigner->GetSelectedObjectCount() < 1) return;
  330. int nFontSize = SeFontSize->Value;
  331. m_pDesigner->SetObejctFontSize(nFontSize);
  332. }
  333. //---------------------------------------------------------------------------
  334. void __fastcall TVMS04001::SePosPropertiesChange(TObject *Sender)
  335. {
  336. if (m_bEdit) return;
  337. if (((TcxSpinEdit*)Sender)->Value < ((TcxSpinEdit*)Sender)->Properties->MinValue)
  338. ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MinValue;
  339. else if(((TcxSpinEdit*)Sender)->Value > ((TcxSpinEdit*)Sender)->Properties->MaxValue &&
  340. ((TcxSpinEdit*)Sender)->Properties->MaxValue)
  341. ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MaxValue;
  342. TcxSpinEdit *pPos = (TcxSpinEdit*)Sender;
  343. if (m_pDesigner->GetSelectedObjectCount() < 1) return;
  344. int nValue = pPos->Value;
  345. switch(pPos->Tag)
  346. {
  347. case 0: m_pDesigner->MoveLeft(nValue); break;
  348. case 1: m_pDesigner->MoveUp(nValue); break;
  349. }
  350. }
  351. //---------------------------------------------------------------------------
  352. void __fastcall TVMS04001::CbBkColorPropertiesChange(TObject *Sender)
  353. {
  354. if (m_bEdit) return;
  355. //if (m_pDesigner->GetSelectedObjectCount() < 1) return;
  356. m_pDesigner->SetObjectBkColorCode(String(CbBkColor->ItemIndex));
  357. }
  358. //---------------------------------------------------------------------------
  359. void __fastcall TVMS04001::ChkBlinkingClick(TObject *Sender)
  360. {
  361. if (m_bEdit) return;
  362. //if (m_pDesigner->GetSelectedObjectCount() < 1) return;
  363. m_pDesigner->SetObjectBlink(ChkBlinking->Checked);
  364. }
  365. //---------------------------------------------------------------------------
  366. void __fastcall TVMS04001::CbFontNamePropertiesChange(TObject *Sender)
  367. {
  368. if (m_bEdit) return;
  369. //if (m_pDesigner->GetSelectedObjectCount() < 1) return;
  370. m_pDesigner->SetObejctFontName(CbFontName->Text);
  371. m_pDesigner->SetObejctFontNameCode(GetComboBoxCodeId(CbFontName));
  372. }
  373. //---------------------------------------------------------------------------
  374. void __fastcall TVMS04001::BtnMoveClick(TObject *Sender)
  375. {
  376. if (m_bEdit) return;
  377. TcxButton *pBtn = (TcxButton *)Sender;
  378. switch(pBtn->Tag)
  379. {
  380. case 0: m_pDesigner->StepMoveLeft(); break;
  381. case 1: m_pDesigner->StepMoveRight(); break;
  382. case 2: m_pDesigner->StepMoveUp(); break;
  383. case 3: m_pDesigner->StepMoveDown(); break;
  384. }
  385. }
  386. //---------------------------------------------------------------------------
  387. void __fastcall TVMS04001::BtnAlignClick(TObject *Sender)
  388. {
  389. if (m_bEdit) return;
  390. TcxButton *pBtn = (TcxButton *)Sender;
  391. if (m_pDesigner->GetSelectedObjectCount() < 1) return;
  392. switch(pBtn->Tag)
  393. {
  394. case 0: m_pDesigner->SetLeftAlign(m_pDesigner->GetLeftAlign()); break;
  395. case 1: m_pDesigner->SetRightAlign(m_pDesigner->GetRightAlign()); break;
  396. case 2: m_pDesigner->SetTopAlign(m_pDesigner->GetTopAlign()); break;
  397. case 3: m_pDesigner->SetBottomAlign(m_pDesigner->GetBottomAlign()); break;
  398. }
  399. }
  400. //---------------------------------------------------------------------------
  401. void __fastcall TVMS04001::BtnCenterClick(TObject *Sender)
  402. {
  403. if (m_bEdit) return;
  404. TcxButton *pBtn = (TcxButton *)Sender;
  405. if (m_pDesigner->GetSelectedObjectCount() < 1) return;
  406. switch(pBtn->Tag)
  407. {
  408. case 0: m_pDesigner->SetAlignWidthCenter(); break;
  409. case 1: m_pDesigner->SetAlignHeightCenter(); break;
  410. }
  411. }
  412. //---------------------------------------------------------------------------
  413. void __fastcall TVMS04001::CbFontColorPropertiesChange(TObject *Sender)
  414. {
  415. if (m_bEdit) return;
  416. //if (m_pDesigner->GetSelectedObjectCount() < 1) return;
  417. m_pDesigner->SetObejctFontColorCode(String(CbFontColor->ItemIndex));
  418. }
  419. //---------------------------------------------------------------------------
  420. void __fastcall TVMS04001::EdTextDataKeyPress(TObject *Sender, wchar_t &Key)
  421. {
  422. if (m_bEdit) return;
  423. if (Key == '\'')
  424. {
  425. Key = '`';
  426. }
  427. }
  428. //---------------------------------------------------------------------------
  429. void __fastcall TVMS04001::CbTextAlignPropertiesChange(TObject *Sender)
  430. {
  431. if (m_bEdit) return;
  432. //if (m_pDesigner->GetSelectedObjectCount() < 1) return;
  433. m_pDesigner->SetObejctTextAlign(CbTextAlign->ItemIndex);
  434. }
  435. //---------------------------------------------------------------------------
  436. void __fastcall TVMS04001::EdTextDataPropertiesChange(TObject *Sender)
  437. {
  438. if (m_bEdit) return;
  439. //if (m_pDesigner->GetSelectedObjectCount() < 1) return;
  440. m_pDesigner->SetObejctText(EdTextData->Text);
  441. }
  442. //---------------------------------------------------------------------------
  443. /*
  444. * 선택된 객체의 정보를 Edit component에 표출한다.
  445. * argumemts
  446. *
  447. * return
  448. * void
  449. */
  450. void __fastcall TVMS04001::FnFormObjectSelected(TMessage &Msg)
  451. {
  452. m_bEdit = true;
  453. try {
  454. TITSVmsFormObject *pObj = (TITSVmsFormObject *)Msg.LParam;
  455. if (!pObj) return;
  456. if (!pObj->Selected) return;
  457. EdObjId->Text = pObj->ObjId;
  458. ChkBlinking->Checked = pObj->Blink;
  459. CbBkColor->ItemIndex = pObj->BkColorCode.ToInt();
  460. SeLeft->Value = pObj->GetLeft();
  461. SeTop->Value = pObj->GetTop();
  462. if (pObj->DrawType == enText)
  463. {
  464. SelectComboBoxItem(CbTextType, pObj->ObjType);
  465. SelectComboBoxItem(CbFontName, pObj->FontNameCode);
  466. CbFontColor->ItemIndex = pObj->FontColorCode.ToInt();
  467. SeFontSize->Value = pObj->FontSize;
  468. ChkFontBold->Checked = pObj->FontBold;
  469. CbTextAlign->ItemIndex = pObj->TextAlign;
  470. if (EdTextData->Text != pObj->Text) EdTextData->Text = pObj->Text;
  471. CbTextType->Visible = true;
  472. CbImageType->Visible= false;
  473. }
  474. else
  475. {
  476. SelectComboBoxItem(CbImageType, pObj->ObjType);
  477. CbTextType->Visible = false;
  478. CbImageType->Visible= true;
  479. }
  480. } catch(...) {}
  481. m_bEdit = false;
  482. }
  483. //---------------------------------------------------------------------------
  484. ///////////////////////////////////////////////// RichEdit Interface
  485. void __fastcall TVMS04001::BtnSortReClick(TObject *Sender)
  486. {
  487. TcxButton *pBtn = (TcxButton *)Sender;
  488. ReForm->Paragraph->Numbering = nsNone;
  489. ReForm->Paragraph->Alignment = (TAlignment)pBtn->Tag;
  490. }
  491. //---------------------------------------------------------------------------
  492. void __fastcall TVMS04001::BtnBoldReClick(TObject *Sender)
  493. {
  494. if (ReForm->SelAttributes->Style.Contains(fsBold))
  495. ReForm->SelAttributes->Style = TFontStyles() >> fsBold;
  496. else
  497. ReForm->SelAttributes->Style = TFontStyles() << fsBold;
  498. }
  499. //---------------------------------------------------------------------------
  500. void __fastcall TVMS04001::SeFontSizeRePropertiesChange(TObject *Sender)
  501. {
  502. if (((TcxSpinEdit*)Sender)->Value < ((TcxSpinEdit*)Sender)->Properties->MinValue)
  503. ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MinValue;
  504. else if(((TcxSpinEdit*)Sender)->Value > ((TcxSpinEdit*)Sender)->Properties->MaxValue &&
  505. ((TcxSpinEdit*)Sender)->Properties->MaxValue)
  506. ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MaxValue;
  507. ReForm->SelAttributes->Size = ((TcxSpinEdit*)Sender)->Value;
  508. }
  509. //---------------------------------------------------------------------------
  510. void __fastcall TVMS04001::CbFontColorReClick(TObject *Sender)
  511. {
  512. switch(CbFontColorRe->ItemIndex)
  513. {
  514. case 0 : ReForm->SelAttributes->Color = clBlack; break;
  515. case 1 : ReForm->SelAttributes->Color = clRed; break;
  516. case 2 : ReForm->SelAttributes->Color = clLime; break;
  517. case 3 :
  518. default: ReForm->SelAttributes->Color = clYellow; break;
  519. }
  520. }
  521. //---------------------------------------------------------------------------
  522. void __fastcall TVMS04001::CbFontNameReClick(TObject *Sender)
  523. {
  524. ReForm->SelAttributes->Name = CbFontNameRe->Text;
  525. }
  526. //---------------------------------------------------------------------------
  527. /*
  528. * 객체 추가 이벤트 핸들러
  529. * arguments
  530. * Sender : event handler 객체
  531. * return
  532. * void
  533. */
  534. void __fastcall TVMS04001::BtnAddTextClick(TObject *Sender)
  535. {
  536. TCodeValue *pCode = (TCodeValue*)GetComboBoxObject(CbAddTextType);
  537. if (!pCode) return;
  538. String sDefText = pCode->GetOprCodeName();
  539. int nNewObjSeq = m_pDesigner->GetNewObjectSeq();
  540. TITSVmsFormObject *pObj = m_pDesigner->AddObject(enText);
  541. if (!pObj) return;
  542. pObj->ObjSeq = nNewObjSeq;
  543. pObj->ObjKind = OBJKIND_TEXT; // "0"
  544. pObj->ObjType = pCode->GetCode();
  545. pObj->ObjSize = sDefText.Length();
  546. pObj->BkColorCode = m_pDesigner->BkColorCode;
  547. pObj->Blink = false;
  548. pObj->Text = sDefText;
  549. String sFontName = "굴림체";
  550. String sFontNameCode = "3";
  551. String sFontColorCode= "2";
  552. String sFontSize = 18;
  553. bool bFontBold = true;
  554. try {
  555. TStringList *sList= new TStringList;
  556. sList->Delimiter = '^';
  557. sList->StrictDelimiter = true;
  558. sList->DelimitedText = pCode->GetRemark();
  559. for(int nCnt=0; nCnt < sList->Count; nCnt++)
  560. {
  561. switch(nCnt)
  562. {
  563. case 0: sFontName = sList->Strings[nCnt]; break;
  564. case 1: sFontNameCode = sList->Strings[nCnt]; break;
  565. case 2: sFontColorCode = sList->Strings[nCnt]; break;
  566. case 3: sFontSize = sList->Strings[nCnt]; break;
  567. case 4: bFontBold = sList->Strings[nCnt] == "1" ? true : false; break;
  568. }
  569. }
  570. delete sList;
  571. } catch(...) { }
  572. pObj->FontName = sFontName;
  573. pObj->FontNameCode = sFontNameCode;
  574. pObj->FontColorCode = sFontColorCode;
  575. pObj->FontSize = sFontSize.ToInt();
  576. pObj->FontBold = bFontBold;
  577. pObj->TextAlign = 0; // left
  578. pObj->SetPos(0, 0);
  579. pObj->EditMode = true;
  580. pObj->Show();
  581. AddObjectToList(pObj, true);
  582. }
  583. //---------------------------------------------------------------------------
  584. void __fastcall TVMS04001::BtnAddImageClick(TObject *Sender)
  585. {
  586. TcxButton *pBtn = (TcxButton *)Sender;
  587. int nImageType = pBtn->Tag;
  588. TITSVmsFormObject *pObj = NULL;
  589. int nNewObjSeq = m_pDesigner->GetNewObjectSeq();
  590. if (nImageType == 0 || nImageType == 1)
  591. {
  592. try {
  593. TVMS04002 *pSelForm = new TVMS04002(this);
  594. pSelForm->m_sImageKind = String(nImageType);
  595. pSelForm->ShowModal();
  596. if (!pSelForm->m_bSelected)
  597. {
  598. delete pSelForm;
  599. return;
  600. }
  601. pObj = m_pDesigner->AddObject(enBmp);
  602. if (!pObj) return;
  603. pObj->ObjSeq = nNewObjSeq;
  604. pObj->ObjKind = OBJKIND_IMAGEID; // "2"
  605. pObj->ObjType = String(201+nImageType);
  606. pObj->ObjSize = pSelForm->m_nImageSize;
  607. pObj->BkColorCode = m_pDesigner->BkColorCode;
  608. pObj->Blink = false;
  609. pObj->Text = pSelForm->m_sImageName;
  610. pObj->ImageId = pSelForm->m_sImageId;
  611. pObj->SetBitmap(pSelForm->ImgPreView->Picture->Bitmap);
  612. pObj->SetPos(0, 0);
  613. pObj->EditMode = true;
  614. pObj->Show();
  615. AddObjectToList(pObj, true);
  616. delete pSelForm;
  617. } catch(...) { }
  618. }
  619. else
  620. {
  621. OpenBmp->FileName = "";
  622. OpenBmp->Execute();
  623. }
  624. }
  625. //---------------------------------------------------------------------------
  626. void __fastcall TVMS04001::OpenBmpCanClose(TObject *Sender, bool &CanClose)
  627. {
  628. String sFName = OpenBmp->FileName;
  629. sFName = sFName.UpperCase();
  630. if (sFName.SubString(sFName.Length()-2, 3) != "BMP")
  631. {
  632. Application->MessageBox(L"BMP 파일만 적용 가능합니다.", L"VMS 이미지 선택", MB_OK|MB_ICONWARNING|MB_APPLMODAL);
  633. return;
  634. }
  635. try
  636. {
  637. DWORD dwFileSize = GetFileSize(sFName);
  638. if (dwFileSize <= 0)
  639. {
  640. Application->MessageBox(L"이미지 파일을 읽어 오는데 실패하였습니다.", L"VMS 이미지 선택", MB_OK|MB_ICONWARNING|MB_APPLMODAL);
  641. return;
  642. }
  643. if (dwFileSize > (1024 * 32)) // Max 32Kbytes
  644. {
  645. Application->MessageBox(L"이미지 파일의 최대 크기는 32KBytes를 넘을 수 없습니다.\r\n이미지 파일의 용량을 줄여 주세요.", L"VMS 이미지 선택", MB_OK|MB_ICONWARNING|MB_APPLMODAL);
  646. return;
  647. }
  648. ImgTemp->Picture->Bitmap->FreeImage();
  649. ImgTemp->Picture->Bitmap = NULL;
  650. ImgTemp->Picture->Bitmap->LoadFromFile(sFName);
  651. TITSVmsFormObject *pObj = NULL;
  652. int nNewObjSeq = m_pDesigner->GetNewObjectSeq();
  653. pObj = m_pDesigner->AddObject(enBmp);
  654. if (!pObj) return;
  655. pObj->ObjSeq = nNewObjSeq;
  656. pObj->ObjKind = OBJKIND_IMAGE; // "1"
  657. pObj->ObjType = String(201);
  658. pObj->ObjSize = (int)dwFileSize;
  659. pObj->SetBitmap(ImgTemp->Picture->Bitmap);
  660. pObj->BkColorCode = m_pDesigner->BkColorCode;
  661. pObj->Blink = false;
  662. pObj->Text = ExtractShortPathName(sFName).c_str();
  663. pObj->ImageId = String(nNewObjSeq);
  664. pObj->SetPos(0, 0);
  665. pObj->EditMode = true;
  666. pObj->Show();
  667. AddObjectToList(pObj, true);
  668. }
  669. catch(...)
  670. {
  671. return;
  672. }
  673. }
  674. //---------------------------------------------------------------------------
  675. void __fastcall TVMS04001::AddObjectToList(TITSVmsFormObject *pObj, bool bSelect/*=false*/)
  676. {
  677. int nAddRow = -1;
  678. TcxGridDataController *pGDC = (TcxGridDataController *)TvObjList->DataController;
  679. try
  680. {
  681. TvObjList->BeginUpdate();
  682. pGDC->BeginUpdate();
  683. nAddRow = pGDC->AppendRecord();
  684. pGDC->Values[nAddRow][ColSeq->Index] = String(pObj->ObjSeq);
  685. pGDC->Values[nAddRow][ColId->Index] = String(pObj->ObjId);
  686. if (pObj->ObjKind == OBJKIND_TEXT)
  687. {
  688. pGDC->Values[nAddRow][ColKind->Index] = "문자열";
  689. pGDC->Values[nAddRow][ColType->Index] = GetComboBoxCodeName(CbTextType, pObj->ObjType);
  690. pGDC->Values[nAddRow][ColData->Index] = pObj->Text;
  691. }
  692. else
  693. if (pObj->ObjKind == OBJKIND_IMAGE)
  694. {
  695. pGDC->Values[nAddRow][ColKind->Index] = "이미지";
  696. pGDC->Values[nAddRow][ColType->Index] = GetComboBoxCodeName(CbImageType, pObj->ObjType);
  697. pGDC->Values[nAddRow][ColData->Index] = pObj->Text;
  698. }
  699. else
  700. if (pObj->ObjKind == OBJKIND_IMAGEID)
  701. {
  702. pGDC->Values[nAddRow][ColKind->Index] = "이미지ID";
  703. pGDC->Values[nAddRow][ColType->Index] = GetComboBoxCodeName(CbImageType, pObj->ObjType);
  704. pGDC->Values[nAddRow][ColData->Index] = pObj->Text + " [" + pObj->ImageId + "]";
  705. }
  706. pGDC->Values[nAddRow][ColX->Index] = String(pObj->GetLeft());
  707. pGDC->Values[nAddRow][ColY->Index] = String(pObj->GetTop());
  708. }
  709. __finally
  710. {
  711. pGDC->EndUpdate();
  712. TvObjList->EndUpdate();
  713. if (bSelect && pGDC->RecordCount > 0) if (nAddRow >= 0) pGDC->FocusedRecordIndex = nAddRow;
  714. }
  715. }
  716. //---------------------------------------------------------------------------
  717. void __fastcall TVMS04001::TvObjListFocusedRecordChanged(TcxCustomGridTableView *Sender, TcxCustomGridRecord *APrevFocusedRecord,
  718. TcxCustomGridRecord *AFocusedRecord, bool ANewItemRecordFocusingChanged)
  719. {
  720. if (TvObjList->ViewData->RecordCount <= 0) return;
  721. if (TvObjList->DataController->FocusedRowIndex < 0) return;
  722. TcxDataController *pGDC = TvObjList->DataController;
  723. int nIndex = pGDC->FocusedRecordIndex;
  724. String sObjSeq = pGDC->Values[nIndex][ColSeq->Index];
  725. String sObjId = pGDC->Values[nIndex][ColId->Index];
  726. m_pDesigner->SelectObject(sObjSeq.ToInt());
  727. }
  728. //---------------------------------------------------------------------------
  729. /*
  730. * 삭제 버튼 클릭 이벤트 핸들러
  731. * arguments
  732. * Sender : event handler 객체
  733. * return
  734. * void
  735. */
  736. void __fastcall TVMS04001::BtnObjDeleteClick(TObject *Sender)
  737. {
  738. if (m_pDesigner->GetSelectedObjectCount() < 1) return;
  739. String sMsgString;
  740. sMsgString = "선택한 객체 정보를 모두 삭제하시겠습니까?";
  741. if (Application->MessageBox(sMsgString.c_str(), L"객체 정보 삭제", MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES)
  742. {
  743. return;
  744. }
  745. TITSVmsFormObject *pObj;
  746. int nObjCnt = m_pDesigner->GetObjectCount();
  747. for (int ii = nObjCnt-1; ii >= 0; ii--)
  748. {
  749. pObj = m_pDesigner->GetObject(ii);
  750. if (pObj->Selected) m_pDesigner->DelObject(ii);
  751. }
  752. BtnSearchClick(NULL);
  753. }
  754. //---------------------------------------------------------------------------
  755. /*
  756. * 저장 버튼 클릭 이벤트 핸들러
  757. * arguments
  758. * Sender : event handler 객체
  759. * return
  760. * void
  761. */
  762. void __fastcall TVMS04001::BtnFormSaveClick(TObject *Sender)
  763. {
  764. String sFormId = EdID->Text;
  765. if (sFormId == "") return;
  766. String sMsgString;
  767. sMsgString = "객체 정보를 모두 저장하시겠습니까?";
  768. if (Application->MessageBox(sMsgString.c_str(), L"객체 정보 저장", MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES)
  769. {
  770. return;
  771. }
  772. // 이전 데이터를 모두 삭제
  773. DeleteData(sFormId);
  774. String sQry;
  775. #if 0
  776. sQry = "INSERT INTO TB_MS_VMS_FORMOBJECT("
  777. " FORMID , OBJECTSEQ , OBJECTID, "
  778. " OBJECTKIND , OBJECTTYPE ,"
  779. " OBJECTSIZE , ISBLINKING ,"
  780. " POSX , POSY ,"
  781. " WIDTH , HEIGHT ,"
  782. " BKCOLOR , TEXTFONTNAME,"
  783. " TEXTFONTCOLOR, TEXTFONTSIZE,"
  784. " TEXTFONTBOLD , TEXTALIGN ,"
  785. " TEXTDATA , IMAGEID ,"
  786. " IMAGETYPE , IMAGEDATA "
  787. " ) VALUES ( "
  788. " :p01 , :p02 , :p20, "
  789. " :p03 , :p04 ,"
  790. " :p05 , :p06 ,"
  791. " :p07 , :p08 ,"
  792. " :p09 , :p10 ,"
  793. " :p11 , :p12 ,"
  794. " :p13 , :p14 ,"
  795. " :p15 , :p16 ,"
  796. " :p17 , :p18 ,"
  797. " :p21 , :p19 "
  798. ") ";
  799. #else
  800. sQry = "INSERT INTO TB_MS_VMS_FORMOBJECT("
  801. " FORMID , OBJECTSEQ , OBJECTID, "
  802. " OBJECTKIND , OBJECTTYPE ,"
  803. " OBJECTSIZE , ISBLINKING ,"
  804. " POSX , POSY ,"
  805. " WIDTH , HEIGHT ,"
  806. " BKCOLOR , TEXTFONTNAME,"
  807. " TEXTFONTCOLOR, TEXTFONTSIZE,"
  808. " TEXTFONTBOLD , TEXTALIGN ,"
  809. " TEXTDATA , IMAGEID "
  810. " ) VALUES ( "
  811. " :p01 , :p02 , :p19, "
  812. " :p03 , :p04 ,"
  813. " :p05 , :p06 ,"
  814. " :p07 , :p08 ,"
  815. " :p09 , :p10 ,"
  816. " :p11 , :p12 ,"
  817. " :p13 , :p14 ,"
  818. " :p15 , :p16 ,"
  819. " :p17 , :p18 "
  820. ") ";
  821. #endif
  822. ITSDb_GetConnection()->BeginTrans();
  823. try
  824. {
  825. ADOQry->Connection = ITSDb_GetConnection();
  826. ClearQry();
  827. SetQry(sQry);
  828. String sImageType = "0";
  829. TITSVmsFormObject *pObj;
  830. int nObjCnt = m_pDesigner->GetObjectCount();
  831. for (int ii = 0; ii < nObjCnt; ii++)
  832. {
  833. pObj = m_pDesigner->GetObject(ii);
  834. if (!pObj) continue;
  835. pObj->ObjSeq = ii+1;
  836. ParamBind("p01", sFormId);
  837. ParamBind("p02", String(pObj->ObjSeq));
  838. ParamBind("p03", pObj->ObjKind);
  839. ParamBind("p04", pObj->ObjType);
  840. ParamBind("p05", String(pObj->ObjSize));
  841. if (pObj->Blink) ParamBind("p06", "1");
  842. else ParamBind("p06", "0");
  843. ParamBind("p07", String(pObj->GetLeft()));
  844. ParamBind("p08", String(pObj->GetTop()));
  845. ParamBind("p09", String(pObj->GetWidth()));
  846. ParamBind("p10", String(pObj->GetHeight()));
  847. ParamBind("p11", pObj->BkColorCode);
  848. ParamBind("p12", pObj->FontNameCode);
  849. ParamBind("p13", pObj->FontColorCode);
  850. ParamBind("p14", String(pObj->FontSize));
  851. if (pObj->FontBold) ParamBind("p15", "1");
  852. else ParamBind("p15", "0");
  853. ParamBind("p16", String(pObj->TextAlign));
  854. ParamBind("p17", pObj->Text);
  855. #if 0
  856. ParamBind("p18", pObj->ImageId);
  857. if (pObj->ObjKind == OBJKIND_IMAGE)
  858. {
  859. String sTmpFile;
  860. sTmpFile.printf(L"c:\\tmpobj%d_%d.bmp", ii, GetTickCount());
  861. try
  862. {
  863. Graphics::TBitmap *Bitmap = pObj->GetBitmap();
  864. Bitmap->SaveToFile(sTmpFile);
  865. ADOQry->Parameters->ParamByName("p19")->LoadFromFile(sTmpFile, ftBlob);
  866. }
  867. __finally {
  868. DeleteFile(sTmpFile);
  869. }
  870. }
  871. else ParamBind("p19", "");
  872. #else
  873. if (pObj->ObjKind == OBJKIND_IMAGE)
  874. {
  875. String sImageId = pObj->ImageId;
  876. if (sImageId.Length() != 10)
  877. {
  878. /*
  879. * 파일이미지를 선택한 경우
  880. */
  881. String sNewImageId;
  882. GetImageNewID(sNewImageId);
  883. pObj->ImageId = sNewImageId;
  884. InsertFileImage(sFormId, pObj);
  885. }
  886. }
  887. ParamBind("p18", pObj->ImageId);
  888. #endif
  889. ParamBind("p19", pObj->ObjId);
  890. // ParamBind("p21", sImageType);
  891. ExecuteQry();
  892. }
  893. ITSDb_GetConnection()->CommitTrans();
  894. }
  895. catch (Exception &exception)
  896. {
  897. ITSDb_GetConnection()->RollbackTrans();
  898. throw Exception(String(exception.ClassName()) + exception.Message);
  899. }
  900. BtnSearchClick(NULL);
  901. }
  902. //---------------------------------------------------------------------------
  903. bool __fastcall TVMS04001::InsertFileImage(String sFormId, TITSVmsFormObject *pObj)
  904. {
  905. bool bResult = false;
  906. String sQry;
  907. sQry = "INSERT INTO TB_MS_VMS_IMAGE ( "
  908. " IMAGEID, "
  909. " IMAGEKIND, "
  910. " IMAGETYPE, "
  911. " IMAGENAME, "
  912. " IMAGEDESC, "
  913. " IMAGE , "
  914. " IMAGESIZE, "
  915. " IMAGEWIDTH, "
  916. " IMAGEHEIGHT,"
  917. " VMSID "
  918. " ) VALUES( "
  919. " :p01, "
  920. " :p02, "
  921. " :p03, "
  922. " :p04, "
  923. " :p05, "
  924. " :p06, "
  925. " :p07, "
  926. " :p08, "
  927. " :p09, "
  928. " :p10 "
  929. " ) ";
  930. try
  931. {
  932. ClearQry(ADO);
  933. SetQry(ADO, sQry);
  934. ParamBind(ADO, "p01", pObj->ImageId);
  935. ParamBind(ADO, "p02", "0");
  936. ParamBind(ADO, "p03", "0"); // IMAGE TYPE(0:BITMAP,1:GIF,2:JPG,3:PCX)
  937. ParamBind(ADO, "p04", sFormId + " Image File");
  938. ParamBind(ADO, "p05", "Image File");
  939. ParamBind(ADO, "p07", String(pObj->ObjSize));
  940. String sTmpFile;
  941. sTmpFile.printf(L"c:\\IMG%s_%d.bmp", sFormId.Trim().c_str(), GetTickCount());
  942. try
  943. {
  944. Graphics::TBitmap *Bitmap = pObj->GetBitmap();
  945. Bitmap->SaveToFile(sTmpFile);
  946. ADO->Parameters->ParamByName("p06")->LoadFromFile(sTmpFile, ftBlob);
  947. ParamBind(ADO, "p08", String(Bitmap->Width));
  948. ParamBind(ADO, "p09", String(Bitmap->Height));
  949. }
  950. __finally {
  951. DeleteFile(sTmpFile);
  952. }
  953. ParamBind(ADO, "p10", "");
  954. bResult = (ExecuteQry(ADO) > 0) ? true : false;
  955. }
  956. catch (Exception &exception)
  957. {
  958. throw Exception(String(exception.ClassName()) + exception.Message);
  959. }
  960. return bResult;
  961. }
  962. //---------------------------------------------------------------------------
  963. bool __fastcall TVMS04001::GetImageNewID(String &sNewID)
  964. {
  965. bool bResult = false;
  966. String sQry;
  967. sQry = "select 'FILE' || lpad(nvl(max(substr(a.imageid, -4)), '000000') + 1, 6, '0') as nid "
  968. " from tb_ms_vms_image a where substr(a.imageid, 1, 4) = 'FILE' ";
  969. try
  970. {
  971. ADO->Connection = ITSDb_GetConnection();
  972. ClearQry(ADO);
  973. SetQry(ADO, sQry);
  974. bResult = OpenQry(ADO);
  975. if (bResult)
  976. {
  977. ADO->First();
  978. sNewID = ADO->FieldByName("nid")->AsString;
  979. }
  980. }
  981. catch(EDatabaseError &E)
  982. {
  983. throw Exception(String(E.ClassName()) + E.Message);
  984. }
  985. catch (Exception &exception)
  986. {
  987. throw Exception(String(exception.ClassName()) + exception.Message);
  988. }
  989. catch(...)
  990. {
  991. throw Exception("알수없는 오류가 발생하였습니다.");
  992. }
  993. ADO->Close();
  994. return bResult;
  995. }
  996. //---------------------------------------------------------------------------
  997. /*
  998. * 데이터 삭제
  999. * arguments
  1000. * pCTV_ID - CTV ID
  1001. * return
  1002. * 삭제 성공 - true, 실패 - false
  1003. */
  1004. bool __fastcall TVMS04001::DeleteData(String sID)
  1005. {
  1006. String sQry;
  1007. bool bResult = false;
  1008. sQry = "DELETE TB_MS_VMS_FORMOBJECT"
  1009. " WHERE FORMID = :pID ";
  1010. try
  1011. {
  1012. ADOQry->Connection = ITSDb_GetConnection();
  1013. ClearQry();
  1014. SetQry(sQry);
  1015. ParamBind("pID", sID);
  1016. int nRowCnt = ExecuteQry();
  1017. bResult = nRowCnt > 0 ? true : false;
  1018. }
  1019. catch (Exception &exception)
  1020. {
  1021. throw Exception(String(exception.ClassName()) + exception.Message);
  1022. }
  1023. return bResult;
  1024. }
  1025. //---------------------------------------------------------------------------
  1026. void __fastcall TVMS04001::ReFormChange(TObject *Sender)
  1027. {
  1028. if (ChkAutoPreview->Checked) BtnPreviewClick(NULL);
  1029. }
  1030. //---------------------------------------------------------------------------
  1031. void __fastcall TVMS04001::BtnReApplyClick(TObject *Sender)
  1032. {
  1033. BtnPreviewClick(NULL);
  1034. m_pDesigner->AddDrawFormToVmsForm(ReForm, ImgPreview);
  1035. /*
  1036. * 신규로 등록한 객체의 객체타입과 폰트코드를 업데이트 한다.
  1037. */
  1038. CbAddTextType->ItemIndex = 0; // For 고정문자열
  1039. String sObjType = GetComboBoxCodeId(CbAddTextType);
  1040. TITSVmsFormObject *pObj;
  1041. int nObjCnt = m_pDesigner->GetObjectCount();
  1042. for (int ii = 0; ii < nObjCnt; ii++)
  1043. {
  1044. pObj = m_pDesigner->GetObject(ii);
  1045. if (pObj->ObjType == "XXX" && pObj->FontNameCode == "XXX")
  1046. {
  1047. pObj->ObjType = sObjType;
  1048. pObj->FontNameCode = GetComboBoxCodeIdByName(CbFontName, pObj->FontName);
  1049. }
  1050. }
  1051. PgEdit->ActivePageIndex = 0;
  1052. BtnSearchClick(NULL);
  1053. }
  1054. //---------------------------------------------------------------------------
  1055. void __fastcall TVMS04001::BtnPreviewClick(TObject *Sender)
  1056. {
  1057. m_pDesigner->PreviewDrawForm(ReForm, ReFormTemp, ImgPreview);
  1058. }
  1059. //---------------------------------------------------------------------------
  1060. void __fastcall TVMS04001::ChkAutoPreviewClick(TObject *Sender)
  1061. {
  1062. if (ChkAutoPreview->Checked) BtnPreviewClick(NULL);
  1063. }
  1064. //---------------------------------------------------------------------------
  1065. void __fastcall TVMS04001::Button1Click(TObject *Sender)
  1066. {
  1067. TITSVmsFormObject *pObj;
  1068. int nObjCnt = m_pDesigner->GetObjectCount();
  1069. for (int ii = 0; ii < nObjCnt; ii++)
  1070. {
  1071. pObj = m_pDesigner->GetObject(ii);
  1072. if (!pObj->Selected) continue;
  1073. if (pObj->ObjKind != OBJKIND_TEXT) continue;
  1074. pObj->SetRuntimeText(Edit1->Text);
  1075. }
  1076. }
  1077. //---------------------------------------------------------------------------
  1078. void __fastcall TVMS04001::ChkFontBoldClick(TObject *Sender)
  1079. {
  1080. if (m_bEdit) return;
  1081. //if (m_pDesigner->GetSelectedObjectCount() < 1) return;
  1082. m_pDesigner->SetObejctFontBold(ChkFontBold->Checked);
  1083. }
  1084. //---------------------------------------------------------------------------
  1085. void __fastcall TVMS04001::EdObjIdPropertiesChange(TObject *Sender)
  1086. {
  1087. if (m_bEdit) return;
  1088. //if (m_pDesigner->GetSelectedObjectCount() < 1) return;
  1089. try {
  1090. int nObjId;
  1091. TryStrToInt(EdObjId->Text.Trim(), nObjId);
  1092. m_pDesigner->SetObejctId(nObjId);
  1093. } catch(...) {}
  1094. }
  1095. //---------------------------------------------------------------------------