FrmVmsMsgSendDispOldF.cpp 108 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #include "ITSSkinF.h"
  4. #include "ITSUtilF.h"
  5. #include "AppGlobalF.h"
  6. #include "CDSFontF.h"
  7. #include "CDSVmsIfscF.h"
  8. #include "CDSAtmpF.h"
  9. #include "CDSParkF.h"
  10. #include "CDSVmsFormF.h"
  11. #pragma hdrstop
  12. #include "FrmVmsMsgSendDispOldF.h"
  13. //---------------------------------------------------------------------------
  14. #pragma package(smart_init)
  15. #pragma link "cxButtons"
  16. #pragma link "cxCalendar"
  17. #pragma link "cxContainer"
  18. #pragma link "cxControls"
  19. #pragma link "cxDropDownEdit"
  20. #pragma link "cxEdit"
  21. #pragma link "cxGraphics"
  22. #pragma link "cxGroupBox"
  23. #pragma link "cxLabel"
  24. #pragma link "cxLookAndFeelPainters"
  25. #pragma link "cxLookAndFeels"
  26. #pragma link "cxMaskEdit"
  27. #pragma link "cxPC"
  28. #pragma link "cxPCdxBarPopupMenu"
  29. #pragma link "cxSpinEdit"
  30. #pragma link "cxSplitter"
  31. #pragma link "cxTextEdit"
  32. #pragma link "cxTimeEdit"
  33. #pragma link "dxSkinBlack"
  34. #pragma link "dxSkinBlue"
  35. #pragma link "dxSkinCaramel"
  36. #pragma link "dxSkinCoffee"
  37. #pragma link "dxSkinDarkRoom"
  38. #pragma link "dxSkinDarkSide"
  39. #pragma link "dxSkinFoggy"
  40. #pragma link "dxSkinGlassOceans"
  41. #pragma link "dxSkiniMaginary"
  42. #pragma link "dxSkinLilian"
  43. #pragma link "dxSkinLiquidSky"
  44. #pragma link "dxSkinLondonLiquidSky"
  45. #pragma link "dxSkinMcSkin"
  46. #pragma link "dxSkinMoneyTwins"
  47. #pragma link "dxSkinOffice2007Black"
  48. #pragma link "dxSkinOffice2007Blue"
  49. #pragma link "dxSkinOffice2007Green"
  50. #pragma link "dxSkinOffice2007Pink"
  51. #pragma link "dxSkinOffice2007Silver"
  52. #pragma link "dxSkinOffice2010Black"
  53. #pragma link "dxSkinOffice2010Blue"
  54. #pragma link "dxSkinOffice2010Silver"
  55. #pragma link "dxSkinsCore"
  56. #pragma link "dxSkinscxPCPainter"
  57. #pragma link "dxSkinSeven"
  58. #pragma link "dxSkinSharp"
  59. #pragma link "dxSkinSilver"
  60. #pragma link "dxSkinStardust"
  61. #pragma link "cxRadioGroup"
  62. #pragma link "cxClasses"
  63. #pragma link "cxCustomData"
  64. #pragma link "cxData"
  65. #pragma link "cxDataStorage"
  66. #pragma link "cxDBData"
  67. #pragma link "cxFilter"
  68. #pragma link "cxGrid"
  69. #pragma link "cxGridCustomTableView"
  70. #pragma link "cxGridCustomView"
  71. #pragma link "cxGridDBTableView"
  72. #pragma link "cxGridLevel"
  73. #pragma link "cxGridTableView"
  74. #pragma link "cxStyles"
  75. #pragma link "cxCheckBox"
  76. #pragma link "cxImage"
  77. #pragma link "cxButtonEdit"
  78. #pragma link "cxBlobEdit"
  79. #pragma link "VmsDesignerF"
  80. #pragma link "cxColorComboBox"
  81. #pragma link "cxCalc"
  82. #pragma link "cxHint"
  83. #pragma link "dxCustomHint"
  84. #pragma link "dxScreenTip"
  85. #pragma link "dxSkinsForm"
  86. #pragma link "FFBaseComponent"
  87. #pragma link "FFBasePlay"
  88. #pragma link "FFPlay"
  89. #pragma resource "*.dfm"
  90. TItsMap<String, TVmsModlSize*> G_ModlLists;
  91. TFrmVmsMsgSendDispOld *FrmVmsMsgSendDispOld = NULL;
  92. //---------------------------------------------------------------------------
  93. __fastcall TFrmVmsMsgSendDispOld::TFrmVmsMsgSendDispOld(TComponent* Owner)
  94. : TForm(Owner)
  95. {
  96. //CMM_SetFormPosition(g_AppCfg.bSaveForm);
  97. ITSSkin_Initialize(Application, g_AppCfg.sLang);
  98. ITSSkin_Caption(false);
  99. ITSSkin_Load(this);
  100. //CMM_LoadForm(g_sFormsDir, this);
  101. SetColorScheme(g_AppCfg.sSkinName);
  102. FUpdate= false;
  103. FTitle = Caption;//"VMS 문자식 폼관리";
  104. //FListSymb = new TList;
  105. m_pGDC = TvList->DataController;
  106. TvList->OptionsView->GroupByBox = false;
  107. EditMode = false;
  108. FSelObjType = eSelObjNone;
  109. //MyUseManager = new TVmsObjUseManager();
  110. //TvList->FilterRow->ApplyChanges = fracDelayed;//fracImmediately;
  111. TvList->OptionsBehavior->ShowLockedStateImageOptions->Filtering = lsimNever;
  112. }
  113. //---------------------------------------------------------------------------
  114. void __fastcall TFrmVmsMsgSendDispOld::SetColorScheme(String ASkinName)
  115. {
  116. dxSkinController1->SkinName = ASkinName;
  117. dxSkinController1->Refresh();
  118. }
  119. //---------------------------------------------------------------------------
  120. void __fastcall TFrmVmsMsgSendDispOld::CommClose()
  121. {
  122. #if 0
  123. try
  124. {
  125. if (MyUseManager)
  126. {
  127. delete MyUseManager;
  128. MyUseManager = NULL;
  129. }
  130. if (m_pEdtDesigner)
  131. {
  132. delete m_pEdtDesigner;
  133. m_pEdtDesigner = NULL;
  134. }
  135. APP_DelVmsSizeCombo(CbSizeType);
  136. SAFE_DELETE(MyVmsObjTypeManager);
  137. ClearSymbloList();
  138. SAFE_DELETE(FListSymb);
  139. ITSSkin_Term();
  140. //CMM_SaveForm(g_sFormsDir, this);
  141. }
  142. catch(...)
  143. {
  144. }
  145. #endif
  146. }
  147. //---------------------------------------------------------------------------
  148. void __fastcall TFrmVmsMsgSendDispOld::LoadVmsList()
  149. {
  150. String sCfgFile;
  151. TIniFile *pIniFile = NULL;
  152. String sIniFile = g_IniFileName + ".ini";
  153. sCfgFile = g_sCfgDir + sIniFile;
  154. g_AppCfg.sConfigFile = sCfgFile;
  155. if (!VmsCtlrManager) {
  156. VmsCtlrManager = new TVmsCtlrManager();
  157. }
  158. pIniFile = new TIniFile(sCfgFile);
  159. try
  160. {
  161. for(int ii = 1; ii < 100; ii++) {
  162. String item;
  163. item.printf(L"VMS%03d", ii);
  164. String vmsInfo = pIniFile->ReadString("VMS_LIST", item, "");
  165. if (vmsInfo == "") {
  166. continue;
  167. }
  168. TStringList *sl = NULL;
  169. sl = new TStringList;
  170. sl->Delimiter = '^';
  171. sl->StrictDelimiter = true;
  172. sl->DelimitedText = vmsInfo;
  173. if (sl->Count != 8)
  174. {
  175. SAFE_DELETE(sl);
  176. continue;
  177. }
  178. TVmsCtlr *pObj = new TVmsCtlr();
  179. String VMS_MODL_KIND_NM = sl->Strings[2].Trim();
  180. int WIDTH = sl->Strings[3].Trim().ToIntDef(384);
  181. int HEIGHT = sl->Strings[4].Trim().ToIntDef(64);
  182. TVmsModlSize* modlSize = G_ModlLists.Find(VMS_MODL_KIND_NM);
  183. if (modlSize == NULL) {
  184. modlSize = new TVmsModlSize;
  185. modlSize->TypeCd = VMS_MODL_KIND_NM;
  186. modlSize->TypeNm = VMS_MODL_KIND_NM;
  187. modlSize->Width = WIDTH;
  188. modlSize->Height = HEIGHT;
  189. G_ModlLists.Push(modlSize->TypeCd, modlSize);
  190. }
  191. // VMS001=
  192. //VMS-001^
  193. //여객터미널 진출로(P-1)^
  194. //2단12열^
  195. //384^
  196. //64^
  197. //rtsp://admin:pgNH9ng8@172.23.57.153:554/profile2/media.smp^
  198. //115.91.94.42^
  199. //9871
  200. pObj->VMS_CTLR_ID = sl->Strings[0].Trim(); //N VARCHAR2(10) N VMS제어기ID
  201. pObj->FCLT_ID = sl->Strings[0].Trim(); //N VARCHAR2(10) N 시설물ID
  202. pObj->VMS_NM = sl->Strings[1].Trim(); //N VARCHAR2(32) N VMS명
  203. pObj->VMS_TYPE = ""; //N VARCHAR2(3) N VMS유형
  204. pObj->STD_SECT_ID = ""; //N CHAR(10) N 표준구간ID
  205. pObj->INSTL_MILE = 0; //N NUMBER(5) Y 설치이정
  206. pObj->CRDN_X = 0.0; //N NUMBER(13,10) N 좌표X
  207. pObj->CRDN_Y = 0.0; //N NUMBER(12,10) N 좌표Y
  208. pObj->VMS_MODL_KIND = ""; //N VARCHAR2(10) N VMS모듈종류
  209. pObj->CMNC_PORT = 0; //N NUMBER(5) N 통신포트
  210. pObj->EQMT_NO = 0; //N NUMBER(3) N 장비번호
  211. pObj->OPER_MODE = "A"; //N VARCHAR2(3) N 운영모드
  212. pObj->CMRA_IND = "Y"; //N CHAR(1) N 카메라유무
  213. pObj->CMRA_IMG_ADDR = sl->Strings[5].Trim(); //N VARCHAR2(128) Y 카메라영상주소
  214. pObj->CMRA_LGIN_ID = ""; //N VARCHAR2(32) Y 카메라로그인ID
  215. pObj->CMRA_LGIN_PW = ""; //N VARCHAR2(32) Y 카메라로그인암호
  216. pObj->VMS_SCNR_ID = ""; //N VARCHAR2(10) Y VMS시나리오ID
  217. pObj->VMS_ON_HM = "0000"; //N CHAR(4) Y VMS ON시분
  218. pObj->VMS_ON_HM = "0000"; //N CHAR(4) Y VMS OFF시분
  219. pObj->MAX_DSPL_FORM_CNT = 10; //N NUMBER(2) N 최대표출폼수
  220. pObj->USE_YN = "Y";
  221. pObj->VMS_CTLR_IP = "0.0.0.1";
  222. pObj->WEB_CMRA_IP = "";
  223. pObj->VMS_RTSP_ADDR = pObj->CMRA_IMG_ADDR;
  224. if (pObj->VMS_RTSP_ADDR == "-") {
  225. pObj->VMS_RTSP_ADDR = "";
  226. }
  227. pObj->VMS_TYPE_NM = "";
  228. pObj->OPER_MODE_NM = "A";
  229. pObj->FULL_STRM_SESN_NM = pObj->VMS_RTSP_ADDR;
  230. pObj->VMS_MODL_KIND_NM = VMS_MODL_KIND_NM;
  231. pObj->VMS_MODL_ROW = 0;
  232. pObj->VMS_MODL_COL = 0;
  233. pObj->MODL_PIXL_WDTH = 0;
  234. pObj->MODL_PIXL_HGHT = 0;
  235. pObj->POWR_MODL_ROW = 2;
  236. pObj->POWR_MODL_COL = 6;
  237. pObj->MODL_CLR = "";
  238. pObj->WIDTH = WIDTH;
  239. pObj->HEIGHT = HEIGHT;
  240. pObj->VMS_COMM_SERVER = sl->Strings[7].Trim();;
  241. pObj->VMS_COMM_PORT = sl->Strings[7].Trim().ToIntDef(9999);;
  242. pObj->Stts = new TVmsStts(pObj->VMS_CTLR_ID);
  243. VmsCtlrManager->FLists.Push(pObj->VMS_CTLR_ID, pObj);
  244. modlSize->FLists.Push(pObj->VMS_CTLR_ID, pObj);
  245. SAFE_DELETE(sl);
  246. }
  247. }
  248. __finally
  249. {
  250. if (pIniFile) delete pIniFile;
  251. pIniFile = NULL;
  252. }
  253. }
  254. //---------------------------------------------------------------------------
  255. void __fastcall TFrmVmsMsgSendDispOld::FillVmsModlSizeType()
  256. {
  257. TNotifyEvent evt = CbSizeType->Properties->OnChange;
  258. CbSizeType->Properties->OnChange = NULL;
  259. CbSizeType->Properties->Items->Clear();
  260. CbSizeType->ItemIndex = -1;
  261. FOR_STL(TVmsModlSize*, pType, G_ModlLists)
  262. {
  263. CbSizeType->Properties->Items->Add(" " + pType->TypeCd);
  264. }
  265. CbSizeType->Properties->OnChange = evt;
  266. CbSizeType->ItemIndex = 0;
  267. }
  268. //---------------------------------------------------------------------------
  269. void __fastcall TFrmVmsMsgSendDispOld::CbSizeTypePropertiesChange(TObject *Sender)
  270. {
  271. EdFocus->SetFocus();
  272. FillVmsList();
  273. }
  274. //---------------------------------------------------------------------------
  275. void __fastcall TFrmVmsMsgSendDispOld::FillVmsList()
  276. {
  277. CMM_ClearGridTableView(TvList);
  278. int nRow = 0;
  279. String MODL_SIZE_CD = CbSizeType->Text.Trim();
  280. TVmsModlSize* modlList = G_ModlLists.Find(MODL_SIZE_CD);
  281. if (modlList == NULL) {
  282. return;
  283. }
  284. TvList->BeginUpdate();
  285. try
  286. {
  287. modlList->FLists.Lock();
  288. try
  289. {
  290. FOR_STL(TVmsCtlr*, pObj, modlList->FLists)
  291. {
  292. if (pObj->USE_YN != "Y") continue;
  293. nRow = m_pGDC->AppendRecord();
  294. m_pGDC->Values[nRow][ColumnSel->Index] = false;
  295. m_pGDC->Values[nRow][Column00->Index] = "-";
  296. m_pGDC->Values[nRow][Column01->Index] = pObj->VMS_TYPE_NM;
  297. m_pGDC->Values[nRow][Column02->Index] = pObj->VMS_CTLR_ID;
  298. m_pGDC->Values[nRow][Column03->Index] = pObj->VMS_NM;
  299. m_pGDC->Values[nRow][Column04->Index] = pObj->VMS_MODL_KIND_NM;
  300. m_pGDC->Values[nRow][Column05->Index] = String(pObj->INSTL_MILE);
  301. m_pGDC->Values[nRow][Column06->Index] = pObj->VMS_CTLR_IP;
  302. m_pGDC->Values[nRow][Column07->Index] = String(pObj->CMNC_PORT);
  303. m_pGDC->Values[nRow][Column08->Index] = pObj->VMS_ON_HM;
  304. m_pGDC->Values[nRow][Column09->Index] = pObj->VMS_OFF_HM;
  305. m_pGDC->Values[nRow][Column10->Index] = pObj->OPER_MODE_NM;
  306. m_pGDC->Values[nRow][Column13->Index] = pObj->MAX_DSPL_FORM_CNT;
  307. m_pGDC->Values[nRow][Column14->Index] = String(pObj->EQMT_NO);
  308. m_pGDC->Values[nRow][Column99->Index] = (int)pObj;
  309. //m_pGDC->Values[nRow][Column11->Index] = pObj->VMS_CTLR_ID;
  310. m_pGDC->Values[nRow][Column12->Index] = pObj->VMS_CTLR_ID;
  311. }
  312. }
  313. __finally
  314. {
  315. modlList->FLists.UnLock();
  316. }
  317. }
  318. __finally
  319. {
  320. TvList->EndUpdate();
  321. Column01->SortIndex = Column01->Index;
  322. Column01->SortOrder = soAscending;
  323. TvList->DataController->GotoFirst();
  324. TvList->DataController->FocusedRecordIndex = 0;
  325. }
  326. }
  327. //---------------------------------------------------------------------------
  328. void __fastcall TFrmVmsMsgSendDispOld::FormCreate(TObject *Sender)
  329. {
  330. LoadVmsList();
  331. #if 0
  332. MyVmsObjTypeManager = new TVmsObjTypeManager();
  333. m_pEdtDesigner = new TVmsFormDesigner(PnlEditForm);
  334. //FOR_STL(TCDSFontColor*, pObj, CDSFontManager->FColors)
  335. {
  336. //m_pEdtDesigner->InitFontColor(pObj->VMS_FONT_COLR_CD, (TColor)pObj->VMS_FONT_COLR_VAL);
  337. }
  338. #endif
  339. }
  340. //---------------------------------------------------------------------------
  341. void __fastcall TFrmVmsMsgSendDispOld::FormShow(TObject *Sender)
  342. {
  343. FillVmsModlSizeType();
  344. //::SendMessage(ReForm->Handle, EM_SETLANGOPTIONS, 0, (LPARAM)(::SendMessage(ReForm->Handle, EM_GETLANGOPTIONS, 0, 0) & ~IMF_AUTOFONT));
  345. //::SendMessage(ReFormTemp->Handle, EM_SETLANGOPTIONS, 0, (LPARAM)(::SendMessage(ReFormTemp->Handle, EM_GETLANGOPTIONS, 0, 0) & ~IMF_AUTOFONT));
  346. Refresh();
  347. FormInit();
  348. ChangeEditMode(1);
  349. TmrShow->Enabled = true;
  350. }
  351. //---------------------------------------------------------------------------
  352. void __fastcall TFrmVmsMsgSendDispOld::FormInit()
  353. {
  354. //TvList->OptionsView->NoDataToDisplayInfoText = "<등록되어 있는 폼 정보가 없습니다>";
  355. #if 0
  356. CheckVideoStreamImage();
  357. MyVmsObjTypeManager->LoadFromDb();
  358. m_pEdtDesigner->ApplicationHandle = (long)Handle;
  359. //VMS사이즈
  360. APP_FillVmsSizeType(CbSizeType, false);
  361. //폼색상
  362. #if 0
  363. CbFormColor->Items->Clear();
  364. CbFormColor->Items->AddObject("", (TObject*)clBlack);
  365. CbFormColor->Items->AddObject("", (TObject*)clRed);
  366. CbFormColor->Items->AddObject("", (TObject*)clLime);
  367. CbFormColor->Items->AddObject("", (TObject*)clYellow);
  368. CbFormColor->ItemIndex = 0;
  369. CbFormColor1->Items->Clear();
  370. CbFormColor1->Items = CbFormColor->Items;
  371. CbFormColor1->ItemIndex = 0;
  372. //폼유형
  373. FillVmsFormType(CbFormKind);
  374. //표출방법
  375. FillVmsFormDispMode(CbFormDispMode);
  376. //표출방향
  377. FillVmsFormDispDir(CbFormDispDir);
  378. FormObjectInit();
  379. ReForm->Paragraph->Numbering = nsNone;
  380. ReForm->Paragraph->Alignment = (TAlignment)2;
  381. #endif
  382. #endif
  383. FNewDb = false;
  384. }
  385. //---------------------------------------------------------------------------
  386. void __fastcall TFrmVmsMsgSendDispOld::FormObjectInit()
  387. {
  388. //TvObjList->OptionsView->NoDataToDisplayInfoText = "<등록되어 있는 객체 정보가 없습니다>";
  389. m_bEdit = false;
  390. #if 0
  391. PnlEdtBack->Left = 6;
  392. PnlEdtBack->Top = 4;
  393. PnlRePreview->Left = 4;
  394. PnlRePreview->Top = 4;
  395. //ReForm->Left = 6;
  396. //ReForm->Top = 4;
  397. //객체배경색상
  398. CbBkColor->Items->Clear();
  399. CbBkColor->Items->AddObject("", (TObject*)clBlack);
  400. CbBkColor->Items->AddObject("", (TObject*)clRed);
  401. CbBkColor->Items->AddObject("", (TObject*)clLime);
  402. CbBkColor->Items->AddObject("", (TObject*)clYellow);
  403. CbBkColor->ItemIndex = 0;
  404. //문자열색상
  405. CbFontColor->Items->Clear();
  406. #if 0
  407. CbFontColor->Items->AddObject("", (TObject*)clBlack);
  408. CbFontColor->Items->AddObject("", (TObject*)clRed);
  409. CbFontColor->Items->AddObject("", (TObject*)clLime);
  410. CbFontColor->Items->AddObject("", (TObject*)clYellow);
  411. #endif
  412. //FOR_STL(TCDSFontColor*, pObj, CDSFontManager->FColors)
  413. {
  414. CbFontColor->Items->AddObject("", (TObject*)pObj->VMS_FONT_COLR_VAL);
  415. }
  416. CbFontColor->ItemIndex = 0;
  417. //직접입력 문자열색상
  418. CbFontColorRe->Items->Clear();
  419. #if 0
  420. CbFontColorRe->Items->AddObject("", (TObject*)clBlack);
  421. CbFontColorRe->Items->AddObject("", (TObject*)clRed);
  422. CbFontColorRe->Items->AddObject("", (TObject*)clLime);
  423. CbFontColorRe->Items->AddObject("", (TObject*)clYellow);
  424. #endif
  425. CbFontColorRe->Items = CbFontColor->Items;
  426. CbFontColorRe->ItemIndex = 0;
  427. //VMS Font
  428. FillVmsFont(CbFontName);
  429. CbFontName->ItemIndex = 0;
  430. FillVmsFont(CbFontNameRe);
  431. CbFontNameRe->ItemIndex = 0;
  432. #endif
  433. }
  434. //---------------------------------------------------------------------------
  435. void __fastcall TFrmVmsMsgSendDispOld::TmrShowTimer(TObject *Sender)
  436. {
  437. TmrShow->Enabled = false;
  438. }
  439. //---------------------------------------------------------------------------
  440. void __fastcall TFrmVmsMsgSendDispOld::BtnCloseClick(TObject *Sender)
  441. {
  442. Close();
  443. }
  444. //---------------------------------------------------------------------------
  445. void __fastcall TFrmVmsMsgSendDispOld::FormClose(TObject *Sender, TCloseAction &Action)
  446. {
  447. CommClose();
  448. FrmVmsMsgSendDispOld = NULL;
  449. Action = caFree;
  450. }
  451. //---------------------------------------------------------------------------
  452. void __fastcall TFrmVmsMsgSendDispOld::FormCloseQuery(TObject *Sender, bool &CanClose)
  453. {
  454. if (FUpdate)
  455. {
  456. //CComm_VmsFormUpdate();
  457. //POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0);
  458. }
  459. }
  460. //---------------------------------------------------------------------------
  461. void __fastcall TFrmVmsMsgSendDispOld::BtnEditClick(TObject *Sender)
  462. {
  463. #if 0
  464. bool singleForm = false;
  465. int nFormTypeCd = m_sFormTypeCd.ToIntDef(11);
  466. if (nFormTypeCd == 70 || nFormTypeCd == 80)
  467. {
  468. singleForm = true; //동영상, 스트리밍 영상 폼
  469. }
  470. if (BtnEdit->Caption == "편집")//"편집")
  471. {
  472. ChangeEditMode(0);
  473. FNewDb = false;
  474. if (singleForm)
  475. {
  476. if (PnlCmd2->Enabled == true)
  477. {
  478. //PnlCmd2->Enabled = false;
  479. }
  480. }
  481. else
  482. {
  483. if (PnlCmd2->Enabled == false)
  484. {
  485. PnlCmd2->Enabled = true;
  486. }
  487. }
  488. if (PgFormTab->ActivePage != TsFormObject)
  489. {
  490. PgFormTab->ActivePage = TsFormObject;
  491. }
  492. }
  493. else
  494. {
  495. String sId = EdFormId->Text;
  496. ChangeEditMode(1);
  497. if (CMM_FindGridData(TvList->DataController, sId, Col01->Index) >= 0)
  498. {
  499. CMM_SetGridRow(CxList, TvList, sId, Col01->Index);
  500. DisplayInfo();
  501. }
  502. }
  503. #endif
  504. }
  505. //---------------------------------------------------------------------------
  506. void __fastcall TFrmVmsMsgSendDispOld::ChangeEditMode(int AEdit)
  507. {
  508. #if 0
  509. bool bEnabled = false;
  510. CbFormKind->Enabled = false;
  511. switch(AEdit)
  512. {
  513. case 0: //편집버튼클릭
  514. {
  515. BtnEdit->Enabled = true;
  516. BtnInsert->Enabled = false;
  517. BtnDelete->Enabled = false;
  518. BtnCopyAdd->Enabled = false;
  519. BtnCopyAdd212->Enabled = false;
  520. BtnSave->Enabled = true;
  521. BtnEdit->Caption = "취소";//"취소";
  522. BtnEdit->Hint = "데이터 편집 취소";//데이터 편집 취소";
  523. EditMode = true;
  524. }
  525. break;
  526. case 1: //편집[취소]버튼클릭
  527. {
  528. FormClear(); //화면을 모두 지운다.
  529. BtnEdit->Enabled = false;
  530. BtnInsert->Enabled = true;
  531. BtnDelete->Enabled = false;
  532. BtnCopyAdd->Enabled = false;
  533. BtnCopyAdd212->Enabled = false;
  534. BtnSave->Enabled = false;
  535. BtnEdit->Caption = "편집";//"편집";
  536. BtnEdit->Hint = "데이터 편집";//데이터 편집";
  537. //bEnabled = true;
  538. EditMode = false;
  539. }
  540. break;
  541. case 2: //추가
  542. {
  543. BtnEdit->Enabled = true;
  544. BtnInsert->Enabled = false;
  545. BtnDelete->Enabled = false;
  546. BtnCopyAdd->Enabled = false;
  547. BtnCopyAdd212->Enabled = false;
  548. BtnSave->Enabled = true;
  549. BtnEdit->Caption = "취소";//"취소";
  550. BtnEdit->Hint = "데이터 편집 취소";//데이터 편집 취소";
  551. EditMode = true;
  552. //CbFormKind->Enabled = true;
  553. }
  554. break;
  555. case 3: //수정모드
  556. {
  557. BtnEdit->Enabled = true;
  558. BtnInsert->Enabled = true;
  559. BtnDelete->Enabled = true;
  560. BtnCopyAdd->Enabled = true;
  561. BtnCopyAdd212->Enabled = true;
  562. BtnSave->Enabled = false;
  563. BtnEdit->Caption = "편집";//"편집";
  564. BtnEdit->Hint = "데이터 편집";//데이터 편집";
  565. bEnabled = true;
  566. EditMode = false;
  567. }
  568. break;
  569. }
  570. BtnSaveImgFile->Enabled = false;
  571. if (ImgForm->Picture->Bitmap != NULL)
  572. {
  573. if (ImgForm->Picture->Bitmap->Height != 0)
  574. {
  575. BtnSaveImgFile->Enabled = true;
  576. }
  577. }
  578. if (AEdit == 0 || AEdit == 2)
  579. {
  580. PnlCmd1->Enabled = true;
  581. PnlCmd2->Enabled = true;
  582. GrpList->Enabled = false;
  583. }
  584. else
  585. {
  586. PnlCmd1->Enabled = false;
  587. PnlCmd2->Enabled = false;
  588. GrpList->Enabled = true;
  589. }
  590. ChangeEditModeObject(AEdit);
  591. #endif
  592. }
  593. //---------------------------------------------------------------------------
  594. void __fastcall TFrmVmsMsgSendDispOld::ChangeEditModeObject(int AEdit)
  595. {
  596. }
  597. //---------------------------------------------------------------------------
  598. void __fastcall TFrmVmsMsgSendDispOld::BtnInsertClick(TObject *Sender)
  599. {
  600. #if 0
  601. int nFormId;
  602. if (!GetNextVmsFormId(nFormId))
  603. {
  604. Application->MessageBox(lblText1->Caption.c_str(),//L"새로운 VMS 폼정보를 생성하지 못하였습니다.\r\n프로그램 종료후에 다시 시도해 보세요.",
  605. FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL);
  606. return;
  607. }
  608. TVMSM520M *pSelForm = new TVMSM520M(this);
  609. pSelForm->ShowModal();
  610. String sFormType = pSelForm->EdNmbr->Text.Trim();
  611. bool bSelected = pSelForm->m_bSelected;
  612. delete pSelForm;
  613. pSelForm = NULL;
  614. if (!bSelected) {
  615. return;
  616. }
  617. if (sFormType == "")
  618. {
  619. return;
  620. }
  621. int nFormDispDir = 0;
  622. if (sFormType.ToIntDef(0) == eFormTp_evehicle) {
  623. TVMSM560M *pEVehicleForm = new TVMSM560M(this);
  624. pEVehicleForm->ShowModal();
  625. String sFormSubType = pEVehicleForm->EdNmbr->Text.Trim();
  626. bool bSelected = pEVehicleForm->m_bSelected;
  627. delete pEVehicleForm;
  628. pEVehicleForm = NULL;
  629. if (!bSelected) {
  630. return;
  631. }
  632. nFormDispDir = sFormSubType.ToIntDef(0);
  633. CbFormSubType->ItemIndex = nFormDispDir;
  634. }
  635. FormClear();
  636. EdFormId->Text = String(nFormId);
  637. ChangeEditMode(2);
  638. FNewDb = true;
  639. //폼유형을 설정
  640. APP_SetCode(CbFormKind, sFormType);
  641. CbFormDispMode->ItemIndex = 0;
  642. CbFormDispDir->ItemIndex = nFormDispDir;
  643. bool singleForm = false;
  644. //폼유형에 맞게 기본 폼을 생성하자
  645. switch(sFormType.ToIntDef(11))
  646. {
  647. case eFormTp_traf_1:// ' 소통상황(1단)
  648. MakeDefTrafficForm(1);
  649. break;
  650. case eFormTp_traf_2:// ' 소통상황(2단)
  651. MakeDefTrafficForm(2);
  652. break;
  653. case eFormTp_traf_3:// ' 소통상황(3단)
  654. MakeDefTrafficForm(3);
  655. break;
  656. case eFormTp_traf_4:// ' 소통상황(4단)
  657. MakeDefTrafficForm(4);
  658. break;
  659. case eFormtp_figure:// ' 소통상황(도형식)
  660. break;
  661. case eFormTp_congest:// ' 정체소통상황
  662. //MakeDefTrafficForm(6);
  663. break;
  664. case eFormTp_incident:// ' 돌발문안
  665. break;
  666. case eFormTp_gongsa:// ' 공사/행사문안
  667. break;
  668. case eFormTp_hongbo:// ' 홍보문안
  669. break;
  670. case eFormTp_deture:// ' 우회도로
  671. break;
  672. case eFormTp_safe:// ' 재난안전
  673. break;
  674. case eFormTp_video:// ' 동영상
  675. MakeDefVideoStreamForm(70);
  676. singleForm = true;
  677. break;
  678. case eFormTp_stream:// ' 스트리밍영상
  679. MakeDefVideoStreamForm(80);
  680. singleForm = true;
  681. break;
  682. case eFormTp_atmp:// ' 대기환경(좋음)
  683. //MakeDefVideoStreamForm(90);
  684. break;
  685. case eFormTp_park:// ' 주차정보
  686. break;
  687. //TODO: 2023PRJ S
  688. case eFormTp_evehicle: // 긴급차량우선신호
  689. break;
  690. //TODO: 2023PRJ E
  691. default:
  692. //APP_SetCode(CbFormKind, "11");
  693. MakeDefTrafficForm(1);
  694. break;
  695. }
  696. if (singleForm)
  697. {
  698. if (PnlCmd2->Enabled == true)
  699. {
  700. //PnlCmd2->Enabled = false;
  701. }
  702. }
  703. else
  704. {
  705. if (PnlCmd2->Enabled == false)
  706. {
  707. PnlCmd2->Enabled = true;
  708. }
  709. }
  710. if (PgFormTab->ActivePage != TsFormObject)
  711. {
  712. PgFormTab->ActivePage = TsFormObject;
  713. }
  714. EdFormName->SetFocus();
  715. #endif
  716. }
  717. //---------------------------------------------------------------------------
  718. bool __fastcall TFrmVmsMsgSendDispOld::AddDefFormObject(String AFontName, int AFontSize, String AFontColor,
  719. int AObjType, String AText, int ASize, int APosX, int APosY, int AAlign/*=0*/)
  720. {
  721. #if 0
  722. TVmsFormObject *pObj;
  723. //1단 소통정보
  724. pObj = m_pEdtDesigner->AddObject(odtText);
  725. if (!pObj) return false;
  726. pObj->EditMode = true;
  727. pObj->ObjKind = OBJKIND_TEXT;
  728. pObj->ObjSeq = m_pEdtDesigner->GetNewObjectSeq();
  729. pObj->ObjType = String(AObjType);
  730. pObj->Text = AText;
  731. pObj->ObjSize = pObj->Text.Length();//ASize; //Pixel
  732. pObj->BkColorCode = "0"; //Balck, m_pEdtDesigner->BkColorCode;
  733. pObj->Blink = false;
  734. pObj->FontName = AFontName;
  735. pObj->FontNameCode = APP_GetCodeIdByName(CbFontName, AFontName);
  736. pObj->FontColorCode = AFontColor; //0:Black,1:Red,2:Green,3:Yellow
  737. pObj->FontSize = AFontSize;
  738. pObj->FontBold = true;
  739. pObj->TextAlign = AAlign; //(0:left, 1:right, 2:center
  740. pObj->SetPos(APosX, APosY);
  741. pObj->Show();
  742. AddObjectToList(pObj, true);
  743. #endif
  744. return true;
  745. }
  746. //---------------------------------------------------------------------------
  747. void __fastcall TFrmVmsMsgSendDispOld::MakeDefTrafficForm(int ARows)
  748. {
  749. //0:Black,1:Red, 2:Green, 3:Yellow
  750. //0:left, 1:right, 2:center
  751. #if 0
  752. //1단 소통정보
  753. if (g_AppCfg.sLang == "kr")
  754. {
  755. switch(ARows)
  756. {
  757. case 1:
  758. AddDefFormObject("굴림체", 18, "3", 12, "@시점명", 160, 16, 7, 1); //시점명
  759. AddDefFormObject("굴림체", 18, "3", 13, "@종점명", 160, 213, 7, 0); //종점명
  760. AddDefFormObject("굴림체", 18, "3", 14, "@소통상황", 112, 64, 35, 2); //소통상황
  761. AddDefFormObject("굴림체", 18, "2", 15, "@00분", 80, 213, 35, 0); //통행시간
  762. break;
  763. case 2:
  764. AddDefFormObject("굴림체", 16, "3", 0, "현위치", 100, 31, 7); //현위치
  765. AddDefFormObject("굴림체", 16, "3", 13, "@종점명1", 100, 133, 7); //종점명1
  766. AddDefFormObject("굴림체", 16, "3", 23, "@종점명2", 100, 265, 7); //종점명2
  767. AddDefFormObject("굴림체", 16, "2", 15, "@01분", 80, 133, 35); //통행시간1
  768. AddDefFormObject("굴림체", 16, "2", 25, "@02분", 80, 265, 35); //통행시간2
  769. break;
  770. case 3:
  771. AddDefFormObject("굴림체", 16, "3", 0, "현재위치부터", 126, 7, 7); //현재위치부터
  772. AddDefFormObject("굴림체", 16, "3", 13, "@종점명1", 85, 38, 50); //종점명1
  773. AddDefFormObject("굴림체", 16, "2", 15, "@1분", 80, 161, 50); //통행시간1
  774. AddDefFormObject("굴림체", 16, "3", 14, "@상황1", 53, 217, 50); //소통상황1
  775. AddDefFormObject("굴림체", 16, "3", 23, "@종점명2", 85, 38, 82); //종점명2
  776. AddDefFormObject("굴림체", 16, "2", 25, "@2분", 80, 161, 82); //통행시간2
  777. AddDefFormObject("굴림체", 16, "3", 24, "@상황2", 53, 217, 82); //소통상황2
  778. AddDefFormObject("굴림체", 16, "3", 33, "@종점명3", 85, 38, 117); //종점명3
  779. AddDefFormObject("굴림체", 16, "2", 35, "@3분", 80, 161, 117); //통행시간3
  780. AddDefFormObject("굴림체", 16, "3", 34, "@상황3", 53, 217, 117); //소통상황3
  781. break;
  782. case 6:
  783. AddDefFormObject("굴림체", 18, "3", 18, "@지점명", 300, 18, 20); //지점명
  784. AddDefFormObject("굴림체", 18, "3", 0, "주변", 126, 153, 20); //주변
  785. AddDefFormObject("굴림체", 18, "1", 0, "정체 극심", 126, 222, 20); //정체극심
  786. break;
  787. }
  788. }
  789. else
  790. {
  791. String sFontName = lblFontName->Caption;
  792. switch(ARows)
  793. {
  794. case 1:
  795. AddDefFormObject(sFontName, 18, "3", 12, "@StartName", 160, 16, 7); //@시점명 @StartName
  796. AddDefFormObject(sFontName, 18, "3", 13, "@EndName", 160, 213, 7); //@종점명 @EndName
  797. AddDefFormObject(sFontName, 18, "3", 14, "@Congest", 112, 64, 35); //@소통상황 @Congest
  798. AddDefFormObject(sFontName, 18, "2", 15, "@00Min", 80, 213, 35); //@통행시간 @00Min
  799. break;
  800. case 2:
  801. AddDefFormObject(sFontName, 16, "3", 0, "Location", 100, 31, 7); //현위치 Location
  802. AddDefFormObject(sFontName, 16, "3", 13, "@EndName1", 100, 133, 7); //종점명1 EndName1
  803. AddDefFormObject(sFontName, 16, "3", 23, "@EndName2", 100, 265, 7); //종점명2 EndName2
  804. AddDefFormObject(sFontName, 16, "2", 15, "@01Min", 80, 133, 35); //통행시간1 01Min
  805. AddDefFormObject(sFontName, 16, "2", 25, "@02Min", 80, 265, 35); //통행시간2 02Min
  806. break;
  807. case 3:
  808. AddDefFormObject(sFontName, 16, "3", 0, "From Location", 126, 7, 7); //현재위치부터 From Location
  809. AddDefFormObject(sFontName, 16, "3", 13, "@EndName1", 85, 38, 50); //종점명1 EndName1
  810. AddDefFormObject(sFontName, 16, "2", 15, "@1Min", 80, 161, 50); //통행시간1 1Min
  811. AddDefFormObject(sFontName, 16, "3", 14, "@Congest1", 53, 217, 50); //소통상황1 Congest1
  812. AddDefFormObject(sFontName, 16, "3", 23, "@EndName2", 85, 38, 82); //종점명2 EndName2
  813. AddDefFormObject(sFontName, 16, "2", 25, "@2Min", 80, 161, 82); //통행시간2 2Min
  814. AddDefFormObject(sFontName, 16, "3", 24, "@Congest2", 53, 217, 82); //소통상황2 Congest2
  815. AddDefFormObject(sFontName, 16, "3", 33, "@EndName3", 85, 38, 117); //종점명3 EndName3
  816. AddDefFormObject(sFontName, 16, "2", 35, "@3Min", 80, 161, 117); //통행시간3 3Min
  817. AddDefFormObject(sFontName, 16, "3", 34, "@Congest3", 53, 217, 117); //소통상황3 Congest3
  818. break;
  819. case 6:
  820. AddDefFormObject(sFontName, 18, "3", 18, "@SpotName", 300, 18, 20); //@지점명 @SpotName
  821. AddDefFormObject(sFontName, 18, "3", 0, "Around", 126, 153, 20); //주변 Around
  822. AddDefFormObject(sFontName, 18, "1", 0, "Congest Zam", 126, 222, 20); //정체극심 Congest Zam
  823. break;
  824. }
  825. }
  826. #endif
  827. #if 0
  828. (String AFontName, int AFontSize, String AFontColor,
  829. int AObjType, String AText, int ASize, int APosX, int APosY)
  830. #endif
  831. }
  832. //---------------------------------------------------------------------------
  833. void __fastcall TFrmVmsMsgSendDispOld::BtnDeleteClick(TObject *Sender)
  834. {
  835. #if 0
  836. int nIdx = TvList->DataController->FocusedRecordIndex;
  837. if (nIdx < 0) return;
  838. String sFormId = EdFormId->Text;
  839. if (sFormId.IsEmpty())
  840. {
  841. Application->MessageBox(lblText2->Caption.c_str(),//L"VMS 폼 삭제\r\n삭제할 VMS 폼을 목록에서 선택하세요.",
  842. FTitle.c_str(), MB_OK|MB_ICONERROR|MB_APPLMODAL);
  843. return;
  844. }
  845. if (!CheckVmsFormUse(sFormId)) return;
  846. String sMsg;
  847. sMsg = lblText3->Caption + ": " + sFormId;//"VMS 폼 ID: " + sFormId;
  848. sMsg+= "\r\n" + lblText4->Caption;//"선택하신 VMS 폼 정보를 삭제하시겠습니까?";
  849. if (Application->MessageBox(sMsg.c_str(), FTitle.c_str(), MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) return;
  850. if (DelVmsForm(sFormId))
  851. {
  852. FUpdate = true;
  853. Application->MessageBox(lblText5->Caption.c_str(),//L"VMS 폼 삭제\r\nVMS 폼정보를 삭제 하였습니다.",
  854. FTitle.c_str(), MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
  855. FormClear();
  856. ChangeEditMode(1);
  857. POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0);
  858. }
  859. #endif
  860. }
  861. //---------------------------------------------------------------------------
  862. void __fastcall TFrmVmsMsgSendDispOld::BtnSaveImgFileClick(TObject *Sender)
  863. {
  864. #if 0
  865. if (EdFormId->Text == "") return;
  866. SaveDialog->Title = FTitle;
  867. SaveDialog->InitialDir = ExtractFilePath(Application->ExeName);
  868. SaveDialog->Filter = "Bitmap image Files (*.bmp)|*.bmp";
  869. SaveDialog->FileName = EdFormId->Text + ".bmp";
  870. if (SaveDialog->Execute())
  871. {
  872. try {
  873. String sFileName = SaveDialog->FileName;
  874. int iRet = sFileName.Pos(".bmp");
  875. if (iRet == 0)
  876. {
  877. sFileName = SaveDialog->FileName + ".bmp";
  878. }
  879. ImgForm->Picture->SaveToFile(sFileName);
  880. }
  881. catch (Exception &exception)
  882. {
  883. Application->ShowException(&exception);
  884. }
  885. }
  886. #endif
  887. }
  888. //---------------------------------------------------------------------------
  889. void __fastcall TFrmVmsMsgSendDispOld::ClearSymbloList()
  890. {
  891. #if 0
  892. for(int ii = 0; ii < FListSymb->Count; ii++)
  893. {
  894. Graphics::TBitmap *bitmap = (Graphics::TBitmap *)FListSymb->Items[ii];
  895. delete bitmap;
  896. }
  897. FListSymb->Clear();
  898. #endif
  899. }
  900. //---------------------------------------------------------------------------
  901. void __fastcall TFrmVmsMsgSendDispOld::TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo,
  902. TMouseButton AButton, TShiftState AShift,
  903. bool &AHandled)
  904. {
  905. #if 0
  906. if (!ACellViewInfo) return;
  907. DisplayInfo();
  908. #endif
  909. }
  910. //---------------------------------------------------------------------------
  911. void __fastcall TFrmVmsMsgSendDispOld::TvListFocusedRecordChanged(TcxCustomGridTableView *Sender,
  912. TcxCustomGridRecord *APrevFocusedRecord, TcxCustomGridRecord *AFocusedRecord,
  913. bool ANewItemRecordFocusingChanged)
  914. {
  915. #if 0
  916. if (!AFocusedRecord) return;
  917. DisplayInfo();
  918. #endif
  919. }
  920. //---------------------------------------------------------------------------
  921. void __fastcall TFrmVmsMsgSendDispOld::BtnSearchClick(TObject *Sender)
  922. {
  923. RefreshData();
  924. EdFocus->SetFocus();
  925. ChangeEditMode(1);
  926. }
  927. //---------------------------------------------------------------------------
  928. void __fastcall TFrmVmsMsgSendDispOld::RefreshData()
  929. {
  930. // 검색조건에 의한 링크 데이터 조회
  931. TvList->DataController->Filter->Clear();
  932. FormClear();
  933. }
  934. //---------------------------------------------------------------------------
  935. void __fastcall TFrmVmsMsgSendDispOld::FormClear()
  936. {
  937. #if 0
  938. FSelObjType = eSelObjNone;
  939. FSelIdx = -1;
  940. ImgForm->Picture->Bitmap->FreeImage();
  941. ImgForm->Picture->Bitmap = NULL;
  942. EdFormId->Clear();
  943. EdFormName->Clear();
  944. EdFormDesc->Clear();
  945. CbFormKind->ItemIndex = 0;
  946. CbFormDispMode->ItemIndex = 1;
  947. CbFormDispDir->ItemIndex = 3;
  948. CbFormColor->ItemIndex = 0;
  949. FormObjectClear();
  950. FNewDb = false;
  951. #endif
  952. }
  953. //---------------------------------------------------------------------------
  954. void __fastcall TFrmVmsMsgSendDispOld::FormObjectClear()
  955. {
  956. //m_pEdtDesigner->Clear();
  957. //CMM_ClearGridTableView(TvObjList);
  958. }
  959. //---------------------------------------------------------------------------
  960. void __fastcall TFrmVmsMsgSendDispOld::DisplayInfo()
  961. {
  962. #if 0
  963. TcxTabSheet* pActive = PgFormTab->ActivePage;
  964. try
  965. {
  966. LockWindowUpdate(Handle);
  967. FormClear();
  968. PgEdit->ActivePage = TsEdit;
  969. FSelIdx = TvList->DataController->FocusedRecordIndex;
  970. if( FSelIdx <= -1 )
  971. return;
  972. DisplayFormInfo(FSelIdx);
  973. ChangeEditMode(3);
  974. }
  975. __finally
  976. {
  977. if (PgFormTab->ActivePage != pActive)
  978. PgFormTab->ActivePage = pActive;
  979. LockWindowUpdate(0);
  980. }
  981. #endif
  982. }
  983. //---------------------------------------------------------------------------
  984. void __fastcall TFrmVmsMsgSendDispOld::DisplayFormInfo(int AIdx)
  985. {
  986. #if 0
  987. TcxGridDataController *pDc = TvList->DataController;
  988. if (AIdx < FListSymb->Count)
  989. {
  990. Graphics::TBitmap *bitmap = (Graphics::TBitmap*)FListSymb->Items[AIdx];
  991. ImgForm->Picture->Bitmap->Assign(bitmap);
  992. }
  993. EdSizeType->Text = CbSizeType->Text;
  994. EdFormId->Text = VarToStr(pDc->Values[AIdx][Col01->Index]);
  995. EdFormName->Text = VarToStr(pDc->Values[AIdx][Col02->Index]);
  996. EdFormDesc->Text = VarToStr(pDc->Values[AIdx][Col03->Index]);
  997. EdFormName1->Text = EdFormName->Text;
  998. EdFormDesc1->Text = EdFormDesc->Text;
  999. CbFormColor->ItemIndex = VarToStr(pDc->Values[AIdx][Col08->Index]).ToIntDef(0);
  1000. CbFormColor1->ItemIndex = CbFormColor->ItemIndex;
  1001. m_sFormTypeCd = VarToStr(pDc->Values[AIdx][Col09->Index]);
  1002. APP_SetCode(CbFormKind, m_sFormTypeCd);
  1003. APP_SetCode(CbFormDispMode, VarToStr(pDc->Values[AIdx][Col06->Index]));
  1004. APP_SetCode(CbFormDispDir, VarToStr(pDc->Values[AIdx][Col07->Index]));
  1005. if (m_sFormTypeCd.ToIntDef(0) == eFormTp_evehicle) {
  1006. CbFormSubType->ItemIndex = VarToStr(pDc->Values[AIdx][Col07->Index]).ToIntDef(0);
  1007. }
  1008. m_pEdtDesigner->BkColorCode = String(CbFormColor->ItemIndex);
  1009. LoadFormObjectInfo(EdFormId->Text, m_pEdtDesigner, m_sFormTypeCd);
  1010. SelObjectListData();
  1011. MyUseManager->LoadFromDb(EdFormId->Text);
  1012. #endif
  1013. }
  1014. //---------------------------------------------------------------------------
  1015. String __fastcall TFrmVmsMsgSendDispOld::FindObjectTypeName(String AFormType, String ATypeCd)
  1016. {
  1017. String sReturn = "--???--";
  1018. #if 0
  1019. TVmsObjType *pObj = MyVmsObjTypeManager->FLists.Find(AFormType.ToIntDef(-1));
  1020. if (!pObj) return sReturn;
  1021. TFormObjType *pType = pObj->FLists.Find(ATypeCd.ToIntDef(-1));
  1022. if (pType) sReturn = pType->NAME;
  1023. #endif
  1024. return sReturn;
  1025. }
  1026. //---------------------------------------------------------------------------
  1027. void __fastcall TFrmVmsMsgSendDispOld::FnFormObjectSelected(TMessage &Msg)
  1028. {
  1029. #if 0
  1030. static long sLParam = -1;
  1031. long cLParam = (long)Msg.LParam;
  1032. if (sLParam == cLParam)
  1033. {
  1034. return;
  1035. }
  1036. sLParam = cLParam;
  1037. #endif
  1038. #if 0
  1039. m_bEdit = true;
  1040. try {
  1041. ImgDesc99->Visible = false;
  1042. Lbl99->Visible = false;
  1043. Cb99->Visible = false;
  1044. //Cb99->ItemIndex = 0;
  1045. PnlIfsc->Visible = false;
  1046. EdIfscId->Text = "";
  1047. TVmsFormObject *pObj = (TVmsFormObject *)Msg.LParam;
  1048. if (!pObj) return;
  1049. if (!pObj->Selected) return;
  1050. EdObjSeq->Text = String(pObj->ObjSeq);
  1051. int nObjType = pObj->ObjType.ToIntDef(0);
  1052. if (nObjType == 91 || //@축통행시간(고정)
  1053. nObjType == 92) //@축소통상황(고정)
  1054. {
  1055. LblTag->Caption = "제공구간";
  1056. BtnIfscErase->Caption = "제공구간초기화";
  1057. PnlIfsc->Visible = true;
  1058. EdIfscId->Text = pObj->Tag;
  1059. FSelObjType = eSelObjIfsc;
  1060. }
  1061. else
  1062. if (nObjType == 101 || nObjType == 102 || nObjType == 103 || nObjType == 104) //@주차장
  1063. {
  1064. LblTag->Caption = "주차장";
  1065. BtnIfscErase->Caption = "주차장초기화";
  1066. PnlIfsc->Visible = true;
  1067. EdIfscId->Text = pObj->Tag;
  1068. FSelObjType = eSelObjPark;
  1069. }
  1070. else
  1071. if (nObjType >= 401 && nObjType <= 413)
  1072. {
  1073. LblTag->Caption = "관측소";
  1074. BtnIfscErase->Caption = "관측소초기화";
  1075. PnlIfsc->Visible = true;
  1076. EdIfscId->Text = pObj->Tag;
  1077. FSelObjType = eSelObjAtmp;
  1078. }
  1079. String sFormType = APP_GetCode(CbFormKind);
  1080. if (sFormType == "15")
  1081. {
  1082. //도형식배경소통정보
  1083. if (nObjType == 0 || //문자열
  1084. nObjType == 1 || //심볼
  1085. nObjType == 2) //이미지
  1086. {
  1087. ImgDesc99->Visible = true;
  1088. Lbl99->Visible = true;
  1089. Cb99->Visible = true;
  1090. TNotifyEvent evt = Cb99->Properties->OnChange;
  1091. Cb99->Properties->OnChange = NULL;
  1092. APP_SetCode(Cb99, pObj->Tag);
  1093. Cb99->Properties->OnChange = evt;
  1094. }
  1095. }
  1096. EdObjId->Text = pObj->ObjId;
  1097. ChkBlinking->Checked = pObj->Blink;
  1098. CbBkColor->ItemIndex = pObj->BkColorCode.ToInt();
  1099. SeLeft->Value = pObj->GetLeft();
  1100. SeTop->Value = pObj->GetTop();
  1101. if (pObj->DrawType == odtText)
  1102. {
  1103. APP_SetCode(CbObjType, pObj->ObjType);
  1104. APP_SetCode(CbFontName, pObj->FontNameCode);
  1105. #if 0
  1106. CbFontColor->ItemIndex = pObj->FontColorCode.ToInt();
  1107. #else
  1108. CbFontColor->ItemIndex = CDSFontManager->GetFontColorCode(pObj->FontColorCode.ToInt());
  1109. #endif
  1110. SeFontSize->Value = pObj->FontSize;
  1111. ChkFontBold->Checked = pObj->FontBold;
  1112. CbTextAlign->ItemIndex = pObj->TextAlign;
  1113. if (EdTextData->Text != pObj->Text) EdTextData->Text = pObj->Text;
  1114. if (pObj->ObjType.ToIntDef(0) == 19) //소통정보(가변)
  1115. {
  1116. EdTextData->Properties->ReadOnly = true;
  1117. }
  1118. else
  1119. {
  1120. EdTextData->Properties->ReadOnly = false;
  1121. }
  1122. //CbTextType->Visible = true;
  1123. //CbImageType->Visible= false;
  1124. }
  1125. else
  1126. {
  1127. APP_SetCode(CbObjType, pObj->ObjType);
  1128. if (EdTextData->Text != pObj->Text) EdTextData->Text = pObj->Text;
  1129. //CbTextType->Visible = false;
  1130. //CbImageType->Visible= true;
  1131. }
  1132. TcxGridFocusedRecordChangedEvent evt = TvObjList->OnFocusedRecordChanged;
  1133. TvObjList->OnFocusedRecordChanged = NULL;
  1134. String sObjSeq = String(pObj->ObjSeq);
  1135. CMM_SetGridRow(CxObjList, TvObjList, sObjSeq, ColSeq->Index);
  1136. TvObjList->OnFocusedRecordChanged = evt;
  1137. CheckImageSelected();
  1138. } catch(...) {}
  1139. m_bEdit = false;
  1140. #endif
  1141. }
  1142. //---------------------------------------------------------------------------
  1143. void __fastcall TFrmVmsMsgSendDispOld::TvObjListFocusedRecordChanged(TcxCustomGridTableView *Sender,
  1144. TcxCustomGridRecord *APrevFocusedRecord, TcxCustomGridRecord *AFocusedRecord,
  1145. bool ANewItemRecordFocusingChanged)
  1146. {
  1147. #if 0
  1148. if (AFocusedRecord == NULL)
  1149. {
  1150. return;
  1151. }
  1152. #endif
  1153. #if 0
  1154. ImgDesc99->Visible = false;
  1155. Lbl99->Visible = false;
  1156. Cb99->Visible = false;
  1157. //Cb99->ItemIndex = 0;
  1158. PnlIfsc->Visible = false;
  1159. EdIfscId->Text = "";
  1160. if (TvObjList->ViewData->RecordCount <= 0) return;
  1161. if (TvObjList->DataController->FocusedRowIndex < 0) return;
  1162. TcxDataController *pGDC = TvObjList->DataController;
  1163. int nIndex = pGDC->FocusedRecordIndex;
  1164. String sObjSeq = pGDC->Values[nIndex][ColSeq->Index];
  1165. String sObjId = pGDC->Values[nIndex][ColId->Index];
  1166. EdObjSeq->Text = sObjSeq;
  1167. //m_pEdtDesigner->SelectObject(sObjSeq.ToInt());
  1168. TVmsFormObject *pObj = m_pEdtDesigner->FindObject(sObjSeq.ToInt());
  1169. if (pObj)
  1170. {
  1171. int nObjType = pObj->ObjType.ToIntDef(0);
  1172. if (nObjType == 91 || //@축통행시간(고정)
  1173. nObjType == 92) //@축소통상황(고정)
  1174. {
  1175. LblTag->Caption = "제공구간";
  1176. BtnIfscErase->Caption = "제공구간초기화";
  1177. PnlIfsc->Visible = true;
  1178. EdIfscId->Text = pObj->Tag;
  1179. FSelObjType = eSelObjIfsc;
  1180. }
  1181. else
  1182. if (nObjType == 101 || nObjType == 102 || nObjType == 103 || nObjType == 104) //@주차장
  1183. {
  1184. LblTag->Caption = "주차장";
  1185. BtnIfscErase->Caption = "주차장초기화";
  1186. PnlIfsc->Visible = true;
  1187. EdIfscId->Text = pObj->Tag;
  1188. FSelObjType = eSelObjPark;
  1189. }
  1190. else
  1191. if (nObjType >= 401 && nObjType <= 413)
  1192. {
  1193. LblTag->Caption = "관측소";
  1194. BtnIfscErase->Caption = "관측소초기화";
  1195. PnlIfsc->Visible = true;
  1196. EdIfscId->Text = pObj->Tag;
  1197. FSelObjType = eSelObjAtmp;
  1198. }
  1199. if (pObj->ObjType.ToIntDef(0) == 19) //소통정보(가변)
  1200. {
  1201. EdTextData->Properties->ReadOnly = true;
  1202. }
  1203. else
  1204. {
  1205. EdTextData->Properties->ReadOnly = false;
  1206. }
  1207. String sFormType = APP_GetCode(CbFormKind);
  1208. if (sFormType == "15")
  1209. {
  1210. //도형식배경소통정보
  1211. if (nObjType == 0 || //문자열
  1212. nObjType == 1 || //심볼
  1213. nObjType == 2) //이미지
  1214. {
  1215. ImgDesc99->Visible = true;
  1216. Lbl99->Visible = true;
  1217. Cb99->Visible = true;
  1218. TNotifyEvent evt = Cb99->Properties->OnChange;
  1219. Cb99->Properties->OnChange = NULL;
  1220. APP_SetCode(Cb99, pObj->Tag);
  1221. Cb99->Properties->OnChange = evt;
  1222. }
  1223. }
  1224. }
  1225. CheckImageSelected();
  1226. #endif
  1227. }
  1228. //---------------------------------------------------------------------------
  1229. void __fastcall TFrmVmsMsgSendDispOld::SelObjectListData()
  1230. {
  1231. #if 0
  1232. CMM_ClearGridTableView(TvObjList);
  1233. int nObjCnt = m_pEdtDesigner->GetObjectCount();
  1234. TVmsFormObject *pObj;
  1235. for(int ii = 0; ii < nObjCnt; ii++)
  1236. {
  1237. pObj = m_pEdtDesigner->GetObject(ii);
  1238. if (pObj)
  1239. {
  1240. AddObjectToList(pObj);
  1241. }
  1242. }
  1243. if (TvObjList->DataController->RecordCount > 0) TvObjList->DataController->FocusedRecordIndex = 0;
  1244. #endif
  1245. }
  1246. //---------------------------------------------------------------------------
  1247. void __fastcall TFrmVmsMsgSendDispOld::AddObjectToList(TVmsFormObject *pObj, bool bSelect/*=false*/)
  1248. {
  1249. #if 0
  1250. int nAddRow = -1;
  1251. String sFormType = APP_GetCode(CbFormKind);
  1252. TcxGridDataController *pGDC = TvObjList->DataController;
  1253. try
  1254. {
  1255. TvObjList->BeginUpdate();
  1256. pGDC->BeginUpdate();
  1257. nAddRow = pGDC->AppendRecord();
  1258. pGDC->Values[nAddRow][ColSeq->Index] = String(pObj->ObjSeq);
  1259. pGDC->Values[nAddRow][ColId->Index] = String(pObj->ObjId);
  1260. pGDC->Values[nAddRow][ColType->Index] = FindObjectTypeName(sFormType, pObj->ObjType);
  1261. pGDC->Values[nAddRow][ColData->Index] = pObj->Text;
  1262. #if 0
  1263. if (pObj->ObjKind == OBJKIND_TEXT)
  1264. {
  1265. pGDC->Values[nAddRow][ColKind->Index] = "문자열";
  1266. pGDC->Values[nAddRow][ColType->Index] = "";//GetComboBoxCodeName(CbTextType, pObj->ObjType);
  1267. pGDC->Values[nAddRow][ColData->Index] = pObj->Text;
  1268. }
  1269. else
  1270. if (pObj->ObjKind == OBJKIND_IMAGE)
  1271. {
  1272. pGDC->Values[nAddRow][ColKind->Index] = "이미지";
  1273. pGDC->Values[nAddRow][ColType->Index] = "";//GetComboBoxCodeName(CbImageType, pObj->ObjType);
  1274. pGDC->Values[nAddRow][ColData->Index] = pObj->Text;
  1275. }
  1276. else
  1277. if (pObj->ObjKind == OBJKIND_IMAGEID)
  1278. {
  1279. pGDC->Values[nAddRow][ColKind->Index] = "이미지ID";
  1280. pGDC->Values[nAddRow][ColType->Index] = "";//GetComboBoxCodeName(CbImageType, pObj->ObjType);
  1281. pGDC->Values[nAddRow][ColData->Index] = pObj->Text + " [" + pObj->ImageId + "]";
  1282. }
  1283. #endif
  1284. //pGDC->Values[nAddRow][ColX->Index] = String(pObj->GetLeft());
  1285. //pGDC->Values[nAddRow][ColY->Index] = String(pObj->GetTop());
  1286. pGDC->Values[nAddRow][ColIfscId->Index] = pObj->Tag;
  1287. pGDC->Values[nAddRow][ColMem->Index] = (int)pObj;
  1288. }
  1289. __finally
  1290. {
  1291. pGDC->EndUpdate();
  1292. TvObjList->EndUpdate();
  1293. if (bSelect && pGDC->RecordCount > 0) if (nAddRow >= 0) pGDC->FocusedRecordIndex = nAddRow;
  1294. }
  1295. #endif
  1296. }
  1297. //---------------------------------------------------------------------------
  1298. void __fastcall TFrmVmsMsgSendDispOld::BtnSortReClick(TObject *Sender)
  1299. {
  1300. #if 0
  1301. TcxButton *pBtn = (TcxButton *)Sender;
  1302. ReForm->Paragraph->Numbering = nsNone;
  1303. ReForm->Paragraph->Alignment = (TAlignment)pBtn->Tag;
  1304. #endif
  1305. }
  1306. //---------------------------------------------------------------------------
  1307. void __fastcall TFrmVmsMsgSendDispOld::BtnBoldReClick(TObject *Sender)
  1308. {
  1309. #if 0
  1310. if (ReForm->SelAttributes->Style.Contains(fsBold))
  1311. ReForm->SelAttributes->Style = TFontStyles() >> fsBold;
  1312. else
  1313. ReForm->SelAttributes->Style = TFontStyles() << fsBold;
  1314. #endif
  1315. }
  1316. //---------------------------------------------------------------------------
  1317. void __fastcall TFrmVmsMsgSendDispOld::SeFontSizeRePropertiesChange(TObject *Sender)
  1318. {
  1319. #if 0
  1320. if (((TcxSpinEdit*)Sender)->Value < ((TcxSpinEdit*)Sender)->Properties->MinValue)
  1321. ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MinValue;
  1322. else if(((TcxSpinEdit*)Sender)->Value > ((TcxSpinEdit*)Sender)->Properties->MaxValue &&
  1323. ((TcxSpinEdit*)Sender)->Properties->MaxValue)
  1324. ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MaxValue;
  1325. ReForm->SelAttributes->Size = ((TcxSpinEdit*)Sender)->Value;
  1326. #endif
  1327. }
  1328. //---------------------------------------------------------------------------
  1329. void __fastcall TFrmVmsMsgSendDispOld::CbFontColorReClick(TObject *Sender)
  1330. {
  1331. #if 0
  1332. switch(CbFontColorRe->ItemIndex)
  1333. {
  1334. case 0 : ReForm->SelAttributes->Color = clBlack; break;
  1335. case 1 : ReForm->SelAttributes->Color = clRed; break;
  1336. case 2 : ReForm->SelAttributes->Color = clLime; break;
  1337. case 3 :
  1338. default: ReForm->SelAttributes->Color = clYellow; break;
  1339. }
  1340. #else
  1341. // ReForm->SelAttributes->Color = CbFontColorRe->Selected;//CbFontColorRe->Colors[CbFontColorRe->ItemIndex];
  1342. #endif
  1343. }
  1344. //---------------------------------------------------------------------------
  1345. void __fastcall TFrmVmsMsgSendDispOld::CbFontNameReClick(TObject *Sender)
  1346. {
  1347. #if 0
  1348. String sFontCode = APP_GetCode(CbFontNameRe);
  1349. String sFontName = APP_GetCodeName(CbFontNameRe, sFontCode);
  1350. ReForm->SelAttributes->Name = sFontName;
  1351. #endif
  1352. }
  1353. //---------------------------------------------------------------------------
  1354. void __fastcall TFrmVmsMsgSendDispOld::ReFormChange(TObject *Sender)
  1355. {
  1356. //if (ChkAutoPreview->Checked) BtnPreviewClick(NULL);
  1357. }
  1358. //---------------------------------------------------------------------------
  1359. void __fastcall TFrmVmsMsgSendDispOld::ChkAutoPreviewClick(TObject *Sender)
  1360. {
  1361. //if (ChkAutoPreview->Checked) BtnPreviewClick(NULL);
  1362. }
  1363. //---------------------------------------------------------------------------
  1364. void __fastcall TFrmVmsMsgSendDispOld::BtnPreviewClick(TObject *Sender)
  1365. {
  1366. #if 0
  1367. if (ChkDrawModule->Checked)
  1368. m_pEdtDesigner->PreviewDrawModuleForm(ReForm, ReFormTemp, ImgEdtPreview, FVmsRows, FVmsCols);
  1369. else
  1370. m_pEdtDesigner->PreviewDrawForm(ReForm, ReFormTemp, ImgEdtPreview);
  1371. #endif
  1372. }
  1373. //---------------------------------------------------------------------------
  1374. void __fastcall TFrmVmsMsgSendDispOld::BtnReApplyClick(TObject *Sender)
  1375. {
  1376. #if 0
  1377. BtnPreviewClick(NULL);
  1378. m_pEdtDesigner->AddDrawFormToVmsForm(ReForm, ImgEdtPreview);
  1379. /*
  1380. * 신규로 등록한 객체의 객체타입과 폰트코드를 업데이트 한다.
  1381. */
  1382. CbVmsObjType->ItemIndex = 0; // For 고정문자열
  1383. String sObjType = APP_GetCode(CbVmsObjType);
  1384. TVmsFormObject *pObj;
  1385. int nObjCnt = m_pEdtDesigner->GetObjectCount();
  1386. for (int ii = 0; ii < nObjCnt; ii++)
  1387. {
  1388. pObj = m_pEdtDesigner->GetObject(ii);
  1389. if (pObj->ObjType == "XXX" && pObj->FontNameCode == "XXX")
  1390. {
  1391. pObj->ObjType = sObjType;
  1392. pObj->FontNameCode = APP_GetCodeIdByName(CbFontName, pObj->FontName);
  1393. }
  1394. }
  1395. PgEdit->ActivePageIndex = 0;
  1396. SelObjectListData();
  1397. #endif
  1398. }
  1399. //---------------------------------------------------------------------------
  1400. void __fastcall TFrmVmsMsgSendDispOld::CbFormKindPropertiesChange(TObject *Sender)
  1401. {
  1402. #if 0
  1403. CbVmsObjType->Properties->Items->Clear();
  1404. CbObjType->Properties->Items->Clear();
  1405. String sFormType = APP_GetCode(CbFormKind);
  1406. int nFormKind = sFormType.ToIntDef(0);
  1407. if (nFormKind == eFormTp_evehicle) {
  1408. if (PnlFormSubType->Visible == false) PnlFormSubType->Visible = true;
  1409. } else {
  1410. if (PnlFormSubType->Visible == true) PnlFormSubType->Visible = false;
  1411. }
  1412. TVmsObjType *pObj = MyVmsObjTypeManager->FLists.Find(nFormKind);
  1413. if (!pObj) return;
  1414. FOR_STL(TFormObjType*, pType, pObj->FLists)
  1415. {
  1416. String sType;
  1417. sType.printf(L"%2d", pType->TYPE);
  1418. sType = pType->TYPE;
  1419. CbVmsObjType->Properties->Items->Add(" [" + sType + "] " + pType->NAME);
  1420. CbObjType->Properties->Items->Add(" [" + sType + "] " + pType->NAME);
  1421. }
  1422. CbVmsObjType->ItemIndex = 0;
  1423. CbObjType->ItemIndex = 0;
  1424. //EdFocus->SetFocus();
  1425. #endif
  1426. }
  1427. //---------------------------------------------------------------------------
  1428. void __fastcall TFrmVmsMsgSendDispOld::CbFormColorClick(TObject *Sender)
  1429. {
  1430. //m_pEdtDesigner->SetBkColor(String(CbFormColor->ItemIndex));
  1431. }
  1432. //---------------------------------------------------------------------------
  1433. void __fastcall TFrmVmsMsgSendDispOld::BtnMoveClick(TObject *Sender)
  1434. {
  1435. #if 0
  1436. if (m_bEdit) return;
  1437. TcxButton *pBtn = (TcxButton *)Sender;
  1438. switch(pBtn->Tag)
  1439. {
  1440. case 0: m_pEdtDesigner->StepMoveLeft(); break;
  1441. case 1: m_pEdtDesigner->StepMoveRight(); break;
  1442. case 2: m_pEdtDesigner->StepMoveUp(); break;
  1443. case 3: m_pEdtDesigner->StepMoveDown(); break;
  1444. }
  1445. #endif
  1446. }
  1447. //---------------------------------------------------------------------------
  1448. void __fastcall TFrmVmsMsgSendDispOld::BtnAlignClick(TObject *Sender)
  1449. {
  1450. #if 0
  1451. if (m_bEdit) return;
  1452. TcxButton *pBtn = (TcxButton *)Sender;
  1453. if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return;
  1454. switch(pBtn->Tag)
  1455. {
  1456. case 0: m_pEdtDesigner->SetLeftAlign(m_pEdtDesigner->GetLeftAlign()); break;
  1457. case 1: m_pEdtDesigner->SetRightAlign(m_pEdtDesigner->GetRightAlign()); break;
  1458. case 2: m_pEdtDesigner->SetTopAlign(m_pEdtDesigner->GetTopAlign()); break;
  1459. case 3: m_pEdtDesigner->SetBottomAlign(m_pEdtDesigner->GetBottomAlign()); break;
  1460. }
  1461. #endif
  1462. }
  1463. //---------------------------------------------------------------------------
  1464. void __fastcall TFrmVmsMsgSendDispOld::BtnCenterClick(TObject *Sender)
  1465. {
  1466. #if 0
  1467. if (m_bEdit) return;
  1468. TcxButton *pBtn = (TcxButton *)Sender;
  1469. if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return;
  1470. switch(pBtn->Tag)
  1471. {
  1472. case 0: m_pEdtDesigner->SetAlignWidthCenter(); break;
  1473. case 1: m_pEdtDesigner->SetAlignHeightCenter(); break;
  1474. }
  1475. #endif
  1476. }
  1477. //---------------------------------------------------------------------------
  1478. void __fastcall TFrmVmsMsgSendDispOld::SePosPropertiesChange(TObject *Sender)
  1479. {
  1480. #if 0
  1481. if (m_bEdit) return;
  1482. if (((TcxSpinEdit*)Sender)->Value < ((TcxSpinEdit*)Sender)->Properties->MinValue)
  1483. ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MinValue;
  1484. else if(((TcxSpinEdit*)Sender)->Value > ((TcxSpinEdit*)Sender)->Properties->MaxValue &&
  1485. ((TcxSpinEdit*)Sender)->Properties->MaxValue)
  1486. ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MaxValue;
  1487. TcxSpinEdit *pPos = (TcxSpinEdit*)Sender;
  1488. if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return;
  1489. int nValue = pPos->Value;
  1490. switch(pPos->Tag)
  1491. {
  1492. case 0: m_pEdtDesigner->MoveLeft(nValue); break;
  1493. case 1: m_pEdtDesigner->MoveUp(nValue); break;
  1494. }
  1495. #endif
  1496. }
  1497. //---------------------------------------------------------------------------
  1498. void __fastcall TFrmVmsMsgSendDispOld::CbBkColorClick(TObject *Sender)
  1499. {
  1500. #if 0
  1501. if (m_bEdit) return;
  1502. //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return;
  1503. m_pEdtDesigner->SetObjectBkColorCode(String(CbBkColor->ItemIndex));
  1504. #endif
  1505. }
  1506. //---------------------------------------------------------------------------
  1507. void __fastcall TFrmVmsMsgSendDispOld::ChkBlinkingClick(TObject *Sender)
  1508. {
  1509. #if 0
  1510. if (m_bEdit) return;
  1511. //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return;
  1512. m_pEdtDesigner->SetObjectBlink(ChkBlinking->Checked);
  1513. #endif
  1514. }
  1515. //---------------------------------------------------------------------------
  1516. void __fastcall TFrmVmsMsgSendDispOld::EdTextDataKeyPress(TObject *Sender, wchar_t &Key)
  1517. {
  1518. #if 0
  1519. if (m_bEdit) return;
  1520. if (Key == '\'')
  1521. {
  1522. Key = '`';
  1523. }
  1524. #endif
  1525. }
  1526. //---------------------------------------------------------------------------
  1527. void __fastcall TFrmVmsMsgSendDispOld::EdTextDataPropertiesChange(TObject *Sender)
  1528. {
  1529. #if 0
  1530. if (m_bEdit) return;
  1531. //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return;
  1532. m_pEdtDesigner->SetObejctText(EdTextData->Text);
  1533. #endif
  1534. }
  1535. //---------------------------------------------------------------------------
  1536. void __fastcall TFrmVmsMsgSendDispOld::SeFontSizePropertiesChange(TObject *Sender)
  1537. {
  1538. #if 0
  1539. if (m_bEdit) return;
  1540. if (((TcxSpinEdit*)Sender)->Value < ((TcxSpinEdit*)Sender)->Properties->MinValue)
  1541. ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MinValue;
  1542. else if(((TcxSpinEdit*)Sender)->Value > ((TcxSpinEdit*)Sender)->Properties->MaxValue &&
  1543. ((TcxSpinEdit*)Sender)->Properties->MaxValue)
  1544. ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MaxValue;
  1545. //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return;
  1546. int nFontSize = SeFontSize->Value;
  1547. m_pEdtDesigner->SetObejctFontSize(nFontSize);
  1548. #endif
  1549. }
  1550. //---------------------------------------------------------------------------
  1551. void __fastcall TFrmVmsMsgSendDispOld::CbFontNamePropertiesChange(TObject *Sender)
  1552. {
  1553. #if 0
  1554. if (m_bEdit) return;
  1555. //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return;
  1556. String sFontCode = APP_GetCode(CbFontName);
  1557. String sFontName = APP_GetCodeName(CbFontName, sFontCode);
  1558. m_pEdtDesigner->SetObejctFontName(sFontName.Trim());
  1559. m_pEdtDesigner->SetObejctFontNameCode(sFontCode);
  1560. #endif
  1561. }
  1562. //---------------------------------------------------------------------------
  1563. void __fastcall TFrmVmsMsgSendDispOld::CbFontColorClick(TObject *Sender)
  1564. {
  1565. #if 0
  1566. if (m_bEdit) return;
  1567. //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return;
  1568. #if 0
  1569. m_pEdtDesigner->SetObejctFontColorCode(String(CbFontColor->ItemIndex));
  1570. #else
  1571. m_pEdtDesigner->SetObejctFontColorCode(String(CDSFontManager->GetFontColorCode((int)CbFontColor->Selected)));
  1572. #endif
  1573. #endif
  1574. }
  1575. //---------------------------------------------------------------------------
  1576. void __fastcall TFrmVmsMsgSendDispOld::CbTextAlignPropertiesChange(TObject *Sender)
  1577. {
  1578. #if 0
  1579. if (m_bEdit) return;
  1580. //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return;
  1581. m_pEdtDesigner->SetObejctTextAlign(CbTextAlign->ItemIndex);
  1582. #endif
  1583. }
  1584. //---------------------------------------------------------------------------
  1585. void __fastcall TFrmVmsMsgSendDispOld::EdObjIdPropertiesChange(TObject *Sender)
  1586. {
  1587. #if 0
  1588. if (m_bEdit) return;
  1589. //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return;
  1590. try {
  1591. int nObjId;
  1592. TryStrToInt(EdObjId->Text.Trim(), nObjId);
  1593. m_pEdtDesigner->SetObejctId(nObjId);
  1594. } catch(...) {}
  1595. #endif
  1596. }
  1597. //---------------------------------------------------------------------------
  1598. void __fastcall TFrmVmsMsgSendDispOld::ChkFontBoldClick(TObject *Sender)
  1599. {
  1600. #if 0
  1601. if (m_bEdit) return;
  1602. //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return;
  1603. m_pEdtDesigner->SetObejctFontBold(ChkFontBold->Checked);
  1604. #endif
  1605. }
  1606. //---------------------------------------------------------------------------
  1607. bool __fastcall TFrmVmsMsgSendDispOld::InsertVmsImage(String ANmbr, String AExpl, String AFileName, String ATypeCd)
  1608. {
  1609. return true;
  1610. }
  1611. //---------------------------------------------------------------------------
  1612. void __fastcall TFrmVmsMsgSendDispOld::OpenBmpCanClose(TObject *Sender, bool &CanClose)
  1613. {
  1614. #if 0
  1615. String sFName = OpenBmp->FileName;
  1616. //sFName = sFName.UpperCase();
  1617. String sFilePath = ExtractFilePath(sFName);
  1618. String sFileName = ExtractFileName(sFName);
  1619. String sFileExt = ExtractFileExt(sFName);
  1620. if (sFileExt.UpperCase() != ".BMP")
  1621. {
  1622. if (!APP_CheckBmpFile(sFName, sFName))
  1623. {
  1624. Application->MessageBox(L"이미지 파일을 읽어오는데 실패하였습니다", L"이미지 파일 읽기 실패", MB_OK|MB_ICONERROR|MB_APPLMODAL);
  1625. return;
  1626. }
  1627. sFileExt = ExtractFileExt(sFName);
  1628. }
  1629. sFName = sFName.UpperCase();
  1630. if (sFName.SubString(sFName.Length()-2, 3) != "BMP")
  1631. {
  1632. Application->MessageBox(FrmLang->lblImage11->Caption.c_str(),//L"BMP 파일만 적용 가능합니다.",
  1633. lblImage1->Caption.c_str(),//L"VMS 이미지 선택",
  1634. MB_OK|MB_ICONWARNING|MB_APPLMODAL);
  1635. return;
  1636. }
  1637. try
  1638. {
  1639. FFileSize = ITSUtil_GetFileSize(sFName);
  1640. if (FFileSize <= 0)
  1641. {
  1642. Application->MessageBox(FrmLang->lblImage12->Caption.c_str(),//L"이미지 파일을 읽어 오는데 실패하였습니다.",
  1643. lblImage1->Caption.c_str(),//L"VMS 이미지 선택",
  1644. MB_OK|MB_ICONWARNING|MB_APPLMODAL);
  1645. return;
  1646. }
  1647. #if 0
  1648. if (FFileSize > (1024 * 32)) // Max 32Kbytes
  1649. {
  1650. Application->MessageBox(FrmLang->lblImage13->Caption.c_str(),//L"이미지 파일의 최대 크기는 32KBytes를 넘을 수 없습니다.\r\n이미지 파일의 용량을 줄여 주세요.",
  1651. lblImage1->Caption.c_str(),//L"VMS 이미지 선택",
  1652. MB_OK|MB_ICONWARNING|MB_APPLMODAL);
  1653. return;
  1654. }
  1655. #endif
  1656. ImgEdtTemp->Picture->Bitmap->FreeImage();
  1657. ImgEdtTemp->Picture->Bitmap = NULL;
  1658. ImgEdtTemp->Picture->Bitmap->LoadFromFile(sFName);
  1659. String sExpl = EdFormId->Text.Trim();
  1660. int nNmbr;
  1661. if (!FrmLang->GetNextVmsImgeId(nNmbr, 6000, 6999))
  1662. {
  1663. Application->MessageBox(FrmLang->lblImage4->Caption.c_str(),//L"새로운 VMS 이미지정보를 생성하지 못하였습니다.\r\n프로그램 종료후에 다시 시도해 보세요.",
  1664. lblImage1->Caption.c_str(),//L"VMS 이미지 선택",
  1665. MB_OK|MB_ICONERROR|MB_APPLMODAL);
  1666. return;
  1667. }
  1668. if (!InsertVmsImage(String(nNmbr), sExpl, "", "SBT0"))
  1669. {
  1670. Application->MessageBox(FrmLang->lblImage4->Caption.c_str(),//L"새로운 VMS 이미지정보를 저장하지 못하였습니다.\r\n프로그램 종료후에 다시 시도해 보세요.",
  1671. lblImage1->Caption.c_str(),//L"VMS 이미지 선택",
  1672. MB_OK|MB_ICONERROR|MB_APPLMODAL);
  1673. return;
  1674. }
  1675. TVmsFormObject *pObj = m_pEdtDesigner->AddObject(odtBmp);
  1676. if (!pObj) return;
  1677. int nNewObjSeq = m_pEdtDesigner->GetNewObjectSeq();
  1678. EdObjSeq->Text = String(nNewObjSeq);
  1679. pObj->ObjSeq = nNewObjSeq;
  1680. pObj->ObjKind = OBJKIND_IMAGEID;//OBJKIND_IMAGE; // "1"
  1681. pObj->ObjType = "1";//"2";
  1682. pObj->ObjSize = (int)FFileSize;
  1683. pObj->BkColorCode = m_pEdtDesigner->BkColorCode;
  1684. pObj->Blink = false;
  1685. pObj->Tag = "N";
  1686. pObj->SetBitmap(ImgEdtTemp->Picture->Bitmap);
  1687. pObj->Text = lblFile1->Caption;//"파일이미지";//ExtractShortPathName(sFName).c_str();
  1688. pObj->ImageId = String(nNmbr);
  1689. pObj->SetPos(0, 0);
  1690. #ifdef IMAGE_RESIZE
  1691. //pObj->GetImage()->AutoSize= false;
  1692. //pObj->GetImage()->Stretch = true;
  1693. TNotifyEvent evtW = SeImgW->Properties->OnChange;
  1694. TNotifyEvent evtH = SeImgH->Properties->OnChange;
  1695. SeImgW->Properties->OnChange = NULL;
  1696. SeImgH->Properties->OnChange = NULL;
  1697. SeImgW->Value = ImgEdtTemp->Picture->Bitmap->Width;
  1698. SeImgH->Value = ImgEdtTemp->Picture->Bitmap->Height;
  1699. SeImgW->Properties->OnChange = evtW;
  1700. SeImgH->Properties->OnChange = evtH;
  1701. PnlImage->Visible = true;
  1702. #endif
  1703. pObj->EditMode = true;
  1704. pObj->Show();
  1705. AddObjectToList(pObj, true);
  1706. }
  1707. catch(...)
  1708. {
  1709. return;
  1710. }
  1711. #endif
  1712. }
  1713. //---------------------------------------------------------------------------
  1714. bool __fastcall TFrmVmsMsgSendDispOld::CheckVideoStreamImage()
  1715. {
  1716. return true;
  1717. }
  1718. //---------------------------------------------------------------------------
  1719. void __fastcall TFrmVmsMsgSendDispOld::MakeDefVideoStreamForm(int AType)
  1720. {
  1721. }
  1722. //---------------------------------------------------------------------------
  1723. void __fastcall TFrmVmsMsgSendDispOld::BtnAddTextClick(TObject *Sender)
  1724. {
  1725. #if 0
  1726. if (CbVmsObjType->ItemIndex < 0) return;
  1727. PnlImage->Visible = false;
  1728. String sFormType = APP_GetCode(CbFormKind);
  1729. String sObjType = APP_GetCode(CbVmsObjType);
  1730. int nObjType = sObjType.ToIntDef(0);
  1731. String sObjText = FindObjectTypeName(sFormType, sObjType);
  1732. String sFontName = FrmLang->lblFontName->Caption;//"굴림체";
  1733. String sFontNameCode = "1";
  1734. String sFontColorCode = "2"; //Green
  1735. int nFontSize = 14;
  1736. bool bFontBold = true;
  1737. switch(nObjType)
  1738. {
  1739. case 201: //동영상
  1740. case 301: //스트리밍영상
  1741. {
  1742. TVmsFormObject *pObj = m_pEdtDesigner->AddObject(odtBmp);
  1743. if (!pObj) return;
  1744. int nNewObjSeq = m_pEdtDesigner->GetNewObjectSeq();
  1745. EdObjSeq->Text = String(nNewObjSeq);
  1746. pObj->EditMode = false;
  1747. pObj->ObjSeq = nNewObjSeq;
  1748. pObj->ObjKind = OBJKIND_IMAGE; // "2"
  1749. pObj->ObjType = sObjType;
  1750. pObj->ObjSize = FVmsWidth * FVmsHeight;
  1751. pObj->BkColorCode = m_pEdtDesigner->BkColorCode;
  1752. pObj->Blink = false;
  1753. pObj->Tag = "N";
  1754. pObj->Text = sObjText;
  1755. pObj->ImageId = "0";
  1756. int nW, nH;
  1757. if (nObjType == 201)
  1758. {
  1759. pObj->SetBitmap(ImgVideo->Picture->Bitmap);
  1760. nW = ImgVideo->Width;
  1761. nH = ImgVideo->Height;
  1762. }
  1763. else
  1764. {
  1765. pObj->SetBitmap(ImgStream->Picture->Bitmap);
  1766. nW = ImgStream->Width;
  1767. nH = ImgStream->Height;
  1768. }
  1769. //pObj->SetSize(FVmsWidth, FVmsHeight);
  1770. nW = (FVmsWidth-nW)/2;
  1771. nH = (FVmsHeight-nH)/2;
  1772. pObj->SetPos(nW, nH);
  1773. pObj->Show();
  1774. AddObjectToList(pObj, true);
  1775. }
  1776. break;
  1777. case 1: //이미지 심볼
  1778. case 3: //소통정보배경이미지
  1779. case 17: //@소통이미지1
  1780. case 27: //@소통이미지2
  1781. case 37: //@소통이미지3
  1782. case 47: //@소통이미지4
  1783. case 406: //@통합대기등급 이미지
  1784. case 407: //@미세먼지등급 이미지
  1785. case 408: //@초미세먼지등급 이미지
  1786. case 413: //@오존등급이미지
  1787. {
  1788. TVMSM510M *pSelForm = new TVMSM510M(this);
  1789. if (nObjType == 1 || nObjType == 3)
  1790. {
  1791. pSelForm->FImageType = nObjType;
  1792. }
  1793. else
  1794. {
  1795. pSelForm->FImageType = 2;
  1796. }
  1797. if (nObjType >= 406 && nObjType <= 408)
  1798. {
  1799. pSelForm->FImageType = 1;
  1800. }
  1801. if (nObjType == 413)
  1802. {
  1803. pSelForm->FImageType = 1;
  1804. }
  1805. String sSymbType = "SBT0";
  1806. switch(nObjType)
  1807. {
  1808. case 1: //이미지 심볼
  1809. sSymbType = "SBT0";
  1810. break;
  1811. case 3: //소통정보배경이미지
  1812. sSymbType = "SBT1";
  1813. break;
  1814. case 17: //@소통이미지1
  1815. case 27: //@소통이미지2
  1816. case 37: //@소통이미지3
  1817. case 47: //@소통이미지4
  1818. sSymbType = "SBT2";
  1819. break;
  1820. case 406: //@통합대기등급 이미지
  1821. case 407: //@미세먼지등급 이미지
  1822. case 408: //@초미세먼지등급 이미지
  1823. case 413: //@오존등급 이미지
  1824. sSymbType = "SBT4";
  1825. break;
  1826. default :
  1827. sSymbType = "SBT0";
  1828. break;
  1829. }
  1830. pSelForm->SYMB_TYPE = sSymbType;
  1831. pSelForm->ShowModal();
  1832. if (!pSelForm->m_bSelected)
  1833. {
  1834. delete pSelForm;
  1835. return;
  1836. }
  1837. TVmsFormObject *pObj = m_pEdtDesigner->AddObject(odtBmp);
  1838. if (!pObj) return;
  1839. int nNewObjSeq = m_pEdtDesigner->GetNewObjectSeq();
  1840. EdObjSeq->Text = String(nNewObjSeq);
  1841. pObj->ObjSeq = nNewObjSeq;
  1842. pObj->ObjKind = OBJKIND_IMAGEID; // "2"
  1843. pObj->ObjType = sObjType;
  1844. pObj->ObjSize = pSelForm->ImgPreView->Picture->Bitmap->Width * pSelForm->ImgPreView->Picture->Bitmap->Height;
  1845. pObj->BkColorCode = m_pEdtDesigner->BkColorCode;
  1846. pObj->Blink = false;
  1847. pObj->Tag = "N";
  1848. pObj->Text = sObjText;
  1849. pObj->ImageId = pSelForm->EdNmbr->Text;
  1850. pObj->SetBitmap(pSelForm->ImgPreView->Picture->Bitmap);
  1851. #ifdef IMAGE_RESIZE
  1852. //if (sSymbType == "SBT0")
  1853. {
  1854. //pObj->GetImage()->AutoSize= false;
  1855. //pObj->GetImage()->Stretch = true;
  1856. TNotifyEvent evtW = SeImgW->Properties->OnChange;
  1857. TNotifyEvent evtH = SeImgH->Properties->OnChange;
  1858. SeImgW->Properties->OnChange = NULL;
  1859. SeImgH->Properties->OnChange = NULL;
  1860. SeImgW->Value = pSelForm->ImgPreView->Picture->Bitmap->Width;
  1861. SeImgH->Value = pSelForm->ImgPreView->Picture->Bitmap->Height;
  1862. SeImgW->Properties->OnChange = evtW;
  1863. SeImgH->Properties->OnChange = evtH;
  1864. PnlImage->Visible = true;
  1865. }
  1866. #endif
  1867. pObj->SetPos(0, 0);
  1868. if (pObj->Left < 0) pObj->Left = 0;
  1869. if (pObj->Top < 0) pObj->Top = 0;
  1870. pObj->Show();
  1871. AddObjectToList(pObj, true);
  1872. delete pSelForm;
  1873. }
  1874. break;
  1875. case 2: //파일이미지
  1876. OpenBmp->FileName = "";
  1877. OpenBmp->Execute();
  1878. break;
  1879. #if 0
  1880. case 17: //@방향이미지1
  1881. case 27: //@방향이미지2
  1882. case 37: //@방향이미지3
  1883. case 47: //@방향이미지4
  1884. {
  1885. TVmsFormObject *pObj = m_pEdtDesigner->AddObject(odtBmp);
  1886. if (!pObj) return;
  1887. int nNewObjSeq = m_pEdtDesigner->GetNewObjectSeq();
  1888. EdObjSeq->Text = String(nNewObjSeq);
  1889. pObj->ObjSeq = nNewObjSeq;
  1890. pObj->ObjKind = OBJKIND_IMAGEID; // "2"
  1891. pObj->ObjType = sObjType;
  1892. pObj->ObjSize = ImgDir->Picture->Bitmap->Width * ImgDir->Picture->Bitmap->Height;
  1893. pObj->BkColorCode = m_pEdtDesigner->BkColorCode;
  1894. pObj->Blink = false;
  1895. //pObj->Text = CbVmsObjType->Text;
  1896. pObj->Text = sObjText;
  1897. pObj->ImageId = "0";
  1898. pObj->SetBitmap(ImgDir->Picture->Bitmap);
  1899. pObj->SetPos(0, 0);
  1900. pObj->Show();
  1901. AddObjectToList(pObj, true);
  1902. }
  1903. break;
  1904. #endif
  1905. default:
  1906. {
  1907. TVmsFormObject *pObj = m_pEdtDesigner->AddObject(odtText);
  1908. if (!pObj) return;
  1909. int nNewObjSeq = m_pEdtDesigner->GetNewObjectSeq();
  1910. EdObjSeq->Text = String(nNewObjSeq);
  1911. pObj->ObjSeq = nNewObjSeq;
  1912. pObj->ObjType = sObjType;
  1913. if (nObjType == 91 || nObjType == 92 ||
  1914. nObjType == 101 || nObjType == 102 || nObjType == 103 || nObjType == 104 ||
  1915. (nObjType >= 401 && nObjType <= 413)
  1916. )
  1917. {
  1918. pObj->Tag = "";
  1919. }
  1920. else
  1921. {
  1922. pObj->Tag = "N";
  1923. }
  1924. pObj->TextAlign = 0; // left
  1925. if (nObjType == 19) //소통정보(가변)
  1926. {
  1927. #ifdef ENG
  1928. sObjText = "@Traffic Fast About 0 Min.";
  1929. #else
  1930. sObjText = "@소통원활 약 0 분";
  1931. #endif
  1932. pObj->TextAlign = 2; // center
  1933. EdTextData->Properties->ReadOnly = true;
  1934. }
  1935. else if (nObjType == 102 || nObjType == 103) {
  1936. // 주차면수, 주차가능면수
  1937. sObjText = "000면";
  1938. pObj->TextAlign = 1; // right
  1939. }
  1940. else if (nObjType == 104) {
  1941. // 주차장혼잡도
  1942. sObjText = "@상황";
  1943. pObj->TextAlign = 2; // center
  1944. }
  1945. else
  1946. {
  1947. EdTextData->Properties->ReadOnly = false;
  1948. }
  1949. pObj->ObjSize = sObjText.Length();
  1950. pObj->BkColorCode = m_pEdtDesigner->BkColorCode;
  1951. pObj->Blink = false;
  1952. pObj->Text = sObjText;
  1953. pObj->EditMode = true;
  1954. pObj->ObjKind = OBJKIND_TEXT;
  1955. pObj->FontName = sFontName;
  1956. pObj->FontNameCode = sFontNameCode;
  1957. pObj->FontColorCode = sFontColorCode;
  1958. pObj->FontSize = nFontSize;
  1959. pObj->FontBold = bFontBold;
  1960. pObj->SetPos(0, 0);
  1961. pObj->Show();
  1962. AddObjectToList(pObj, true);
  1963. }
  1964. break;
  1965. }
  1966. #endif
  1967. }
  1968. //---------------------------------------------------------------------------
  1969. void __fastcall TFrmVmsMsgSendDispOld::BtnObjDeleteClick(TObject *Sender)
  1970. {
  1971. #if 0
  1972. if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return;
  1973. String sMsgString;
  1974. sMsgString = lblText6->Caption;//"선택한 객체 정보를 모두 삭제하시겠습니까?";
  1975. if (Application->MessageBox(sMsgString.c_str(),
  1976. lblText7->Caption.c_str(),//L"객체 정보 삭제",
  1977. MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES)
  1978. {
  1979. return;
  1980. }
  1981. bool bUse = false;
  1982. TVmsFormObject *pObj;
  1983. int nObjCnt = m_pEdtDesigner->GetObjectCount();
  1984. for (int ii = nObjCnt-1; ii >= 0; ii--)
  1985. {
  1986. pObj = m_pEdtDesigner->GetObject(ii);
  1987. if (pObj->Selected)
  1988. {
  1989. TVmsObjUse*pObjUse = MyUseManager->FLists.Find(pObj->ObjSeq);
  1990. if (pObjUse)
  1991. {
  1992. bUse = true;
  1993. continue;
  1994. }
  1995. m_pEdtDesigner->DelObject(ii);
  1996. }
  1997. }
  1998. if (bUse)
  1999. {
  2000. Application->MessageBox(lblText8->Caption.c_str(),//L"VMS 폼 객체 삭제\r\nVMS 폼 객체 중 정보제공구간에 설정된 객체는 삭제할 수 없습니다.",
  2001. FTitle.c_str(),
  2002. MB_OK|MB_ICONERROR|MB_APPLMODAL);
  2003. }
  2004. SelObjectListData();
  2005. #endif
  2006. }
  2007. //---------------------------------------------------------------------------
  2008. void __fastcall TFrmVmsMsgSendDispOld::ColXGetDataText(TcxCustomGridTableItem *Sender, int ARecordIndex,
  2009. UnicodeString &AText)
  2010. {
  2011. #if 0
  2012. if (ARecordIndex < 0) return;
  2013. try
  2014. {
  2015. int nMemPtr = (int)(TvObjList->DataController->Values[ARecordIndex][ColMem->Index]);
  2016. TVmsFormObject *pObj = (TVmsFormObject*)nMemPtr;
  2017. if (pObj)
  2018. {
  2019. AText = pObj->GetLeft();
  2020. }
  2021. } catch(Exception &e) {}
  2022. #endif
  2023. }
  2024. //---------------------------------------------------------------------------
  2025. void __fastcall TFrmVmsMsgSendDispOld::ColYGetDataText(TcxCustomGridTableItem *Sender, int ARecordIndex,
  2026. UnicodeString &AText)
  2027. {
  2028. #if 0
  2029. if (ARecordIndex < 0) return;
  2030. try
  2031. {
  2032. int nMemPtr = (int)(TvObjList->DataController->Values[ARecordIndex][ColMem->Index]);
  2033. TVmsFormObject *pObj = (TVmsFormObject*)nMemPtr;
  2034. if (pObj)
  2035. {
  2036. AText = pObj->GetTop();
  2037. }
  2038. } catch(Exception &e) {}
  2039. #endif
  2040. }
  2041. //---------------------------------------------------------------------------
  2042. void __fastcall TFrmVmsMsgSendDispOld::CbVmsObjTypeClick(TObject *Sender)
  2043. {
  2044. #if 0
  2045. if (BtnAddText->CanFocus())
  2046. {
  2047. BtnAddText->SetFocus();
  2048. }
  2049. #endif
  2050. }
  2051. //---------------------------------------------------------------------------
  2052. void __fastcall TFrmVmsMsgSendDispOld::EdIfscIdClick(TObject *Sender)
  2053. {
  2054. #if 0
  2055. if (FSelObjType == eSelObjIfsc)
  2056. {
  2057. TVMSM530M *pSelForm = new TVMSM530M(this);
  2058. pSelForm->EdNmbr->Text = EdIfscId->Text.Trim();
  2059. pSelForm->ShowModal();
  2060. String sIfscId = pSelForm->EdNmbr->Text.Trim();
  2061. bool bSelected = pSelForm->m_bSelected;
  2062. delete pSelForm;
  2063. pSelForm = NULL;
  2064. if (!bSelected)
  2065. {
  2066. return;
  2067. }
  2068. if (sIfscId != "")
  2069. {
  2070. EdIfscId->Text = sIfscId;
  2071. }
  2072. UpdateObjectIfscId();
  2073. }
  2074. else
  2075. if (FSelObjType == eSelObjPark)
  2076. {
  2077. TVMSM540M *pSelForm = new TVMSM540M(this);
  2078. pSelForm->EdNmbr->Text = EdIfscId->Text.Trim();
  2079. pSelForm->ShowModal();
  2080. String sParkNmbr = pSelForm->EdNmbr->Text.Trim();
  2081. bool bSelected = pSelForm->m_bSelected;
  2082. delete pSelForm;
  2083. pSelForm = NULL;
  2084. if (!bSelected)
  2085. {
  2086. return;
  2087. }
  2088. if (sParkNmbr != "")
  2089. {
  2090. EdIfscId->Text = sParkNmbr;
  2091. }
  2092. UpdateObjectIfscId();
  2093. }
  2094. else
  2095. if (FSelObjType == eSelObjAtmp)
  2096. {
  2097. TVMSM550M *pSelForm = new TVMSM550M(this);
  2098. pSelForm->EdNmbr->Text = EdIfscId->Text.Trim();
  2099. pSelForm->ShowModal();
  2100. String sAtmpNmbr = pSelForm->EdNmbr->Text.Trim();
  2101. bool bSelected = pSelForm->m_bSelected;
  2102. delete pSelForm;
  2103. pSelForm = NULL;
  2104. if (!bSelected)
  2105. {
  2106. return;
  2107. }
  2108. if (sAtmpNmbr != "")
  2109. {
  2110. EdIfscId->Text = sAtmpNmbr;
  2111. }
  2112. UpdateObjectIfscId();
  2113. }
  2114. #endif
  2115. }
  2116. //---------------------------------------------------------------------------
  2117. void __fastcall TFrmVmsMsgSendDispOld::BtnIfscEraseClick(TObject *Sender)
  2118. {
  2119. #if 0
  2120. EdIfscId->Text = "";
  2121. UpdateObjectIfscId();
  2122. #endif
  2123. }
  2124. //---------------------------------------------------------------------------
  2125. void __fastcall TFrmVmsMsgSendDispOld::UpdateObjectIfscId()
  2126. {
  2127. #if 0
  2128. TVmsFormObject *pObj;
  2129. int nObjCnt = m_pEdtDesigner->GetObjectCount();
  2130. for (int ii = nObjCnt-1; ii >= 0; ii--)
  2131. {
  2132. pObj = m_pEdtDesigner->GetObject(ii);
  2133. if (pObj->Selected)
  2134. {
  2135. int nObjType = pObj->ObjType.ToIntDef(0);
  2136. if (nObjType == 91 || //@축통행시간(고정)
  2137. nObjType == 92 || //@축소통상황(고정)
  2138. nObjType == 101 || nObjType == 102 || nObjType == 103 || nObjType == 104 || //@주차장
  2139. (nObjType >= 401 && nObjType <= 413)
  2140. )
  2141. {
  2142. pObj->Tag = EdIfscId->Text.Trim();
  2143. }
  2144. }
  2145. }
  2146. #endif
  2147. }
  2148. //---------------------------------------------------------------------------
  2149. bool __fastcall TFrmVmsMsgSendDispOld::CopyFormAdd(String AOrgFormId, String ANewFormId, String AFormName)
  2150. {
  2151. return true;
  2152. }
  2153. //---------------------------------------------------------------------------
  2154. void __fastcall TFrmVmsMsgSendDispOld::BtnUpClick(TObject *Sender)
  2155. {
  2156. #if 0
  2157. try
  2158. {
  2159. TvObjList->BeginUpdate();
  2160. int nCurIdx = TvObjList->DataController->FocusedRowIndex;//FocusedRecordIndex;
  2161. if (nCurIdx <= 0)
  2162. {
  2163. return;
  2164. }
  2165. int nUpIdx = nCurIdx-1;
  2166. try
  2167. {
  2168. String sVal1 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColSeq->Index]);
  2169. String sVal2 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColId->Index]);
  2170. String sVal3 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColType->Index]);
  2171. String sVal4 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColData->Index]);
  2172. String sVal5 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColIfscId->Index]);
  2173. int sVal6 = (TvObjList->DataController->Values[nCurIdx][ColMem->Index]);
  2174. TvObjList->DataController->Values[nCurIdx][ColSeq->Index] = TvObjList->DataController->Values[nUpIdx][ColSeq->Index];
  2175. TvObjList->DataController->Values[nCurIdx][ColId->Index] = TvObjList->DataController->Values[nUpIdx][ColId->Index];
  2176. TvObjList->DataController->Values[nCurIdx][ColType->Index] = TvObjList->DataController->Values[nUpIdx][ColType->Index];
  2177. TvObjList->DataController->Values[nCurIdx][ColData->Index] = TvObjList->DataController->Values[nUpIdx][ColData->Index];
  2178. TvObjList->DataController->Values[nCurIdx][ColIfscId->Index] = TvObjList->DataController->Values[nUpIdx][ColIfscId->Index];
  2179. TvObjList->DataController->Values[nCurIdx][ColMem->Index] = TvObjList->DataController->Values[nUpIdx][ColMem->Index];
  2180. TvObjList->DataController->Values[nUpIdx][ColSeq->Index] = sVal1;
  2181. TvObjList->DataController->Values[nUpIdx][ColId->Index] = sVal2;
  2182. TvObjList->DataController->Values[nUpIdx][ColType->Index] = sVal3;
  2183. TvObjList->DataController->Values[nUpIdx][ColData->Index] = sVal4;
  2184. TvObjList->DataController->Values[nUpIdx][ColIfscId->Index] = sVal5;
  2185. TvObjList->DataController->Values[nUpIdx][ColMem->Index] = sVal6;
  2186. TvObjList->Controller->ClearSelection();
  2187. TvObjList->Controller->FocusedRowIndex = nUpIdx;
  2188. //TvObjList->Controller->FocusedRecordIndex = nUpIdx;
  2189. TvObjList->ViewData->Records[nUpIdx]->Focused = true;
  2190. TvObjList->ViewData->Records[nUpIdx]->Selected = true;
  2191. CxObjList->SetFocus();
  2192. //TcxCustomGridRow* ARow = TvObjList->ViewData->Rows[TvObjList->DataController->FocusedRowIndex];
  2193. }
  2194. catch(...)
  2195. {
  2196. }
  2197. }
  2198. __finally
  2199. {
  2200. TvObjList->EndUpdate();
  2201. }
  2202. #endif
  2203. }
  2204. //---------------------------------------------------------------------------
  2205. void __fastcall TFrmVmsMsgSendDispOld::BtnDownClick(TObject *Sender)
  2206. {
  2207. #if 0
  2208. try
  2209. {
  2210. TvObjList->BeginUpdate();
  2211. int nCurIdx = TvObjList->DataController->FocusedRowIndex;//FocusedRecordIndex;
  2212. //int nCurIdx = TvObjList->DataController->FocusedRecordIndex;
  2213. if (nCurIdx < 0)
  2214. {
  2215. return;
  2216. }
  2217. if (nCurIdx == TvObjList->DataController->RecordCount-1)
  2218. {
  2219. return;
  2220. }
  2221. int nDnIdx = nCurIdx+1;
  2222. try
  2223. {
  2224. String sVal1 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColSeq->Index]);
  2225. String sVal2 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColId->Index]);
  2226. String sVal3 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColType->Index]);
  2227. String sVal4 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColData->Index]);
  2228. String sVal5 = VarToStr(TvObjList->DataController->Values[nCurIdx][ColIfscId->Index]);
  2229. int sVal6 = (TvObjList->DataController->Values[nCurIdx][ColMem->Index]);
  2230. TvObjList->DataController->Values[nCurIdx][ColSeq->Index] = TvObjList->DataController->Values[nDnIdx][ColSeq->Index];
  2231. TvObjList->DataController->Values[nCurIdx][ColId->Index] = TvObjList->DataController->Values[nDnIdx][ColId->Index];
  2232. TvObjList->DataController->Values[nCurIdx][ColType->Index] = TvObjList->DataController->Values[nDnIdx][ColType->Index];
  2233. TvObjList->DataController->Values[nCurIdx][ColData->Index] = TvObjList->DataController->Values[nDnIdx][ColData->Index];
  2234. TvObjList->DataController->Values[nCurIdx][ColIfscId->Index] = TvObjList->DataController->Values[nDnIdx][ColIfscId->Index];
  2235. TvObjList->DataController->Values[nCurIdx][ColMem->Index] = TvObjList->DataController->Values[nDnIdx][ColMem->Index];
  2236. TvObjList->DataController->Values[nDnIdx][ColSeq->Index] = sVal1;
  2237. TvObjList->DataController->Values[nDnIdx][ColId->Index] = sVal2;
  2238. TvObjList->DataController->Values[nDnIdx][ColType->Index] = sVal3;
  2239. TvObjList->DataController->Values[nDnIdx][ColData->Index] = sVal4;
  2240. TvObjList->DataController->Values[nDnIdx][ColIfscId->Index] = sVal5;
  2241. TvObjList->DataController->Values[nDnIdx][ColMem->Index] = sVal6;
  2242. TvObjList->Controller->ClearSelection();
  2243. TvObjList->Controller->FocusedRowIndex = nDnIdx;
  2244. //TvObjList->Controller->FocusedRecordIndex = nDnIdx;
  2245. TvObjList->ViewData->Records[nDnIdx]->Focused = true;
  2246. TvObjList->ViewData->Records[nDnIdx]->Selected = true;
  2247. CxObjList->SetFocus();
  2248. //TcxCustomGridRow* ARow = TvObjList->ViewData->Rows[TvObjList->DataController->FocusedRowIndex];
  2249. }
  2250. catch(...)
  2251. {
  2252. }
  2253. }
  2254. __finally
  2255. {
  2256. TvObjList->EndUpdate();
  2257. }
  2258. #endif
  2259. }
  2260. //---------------------------------------------------------------------------
  2261. void __fastcall TFrmVmsMsgSendDispOld::BtnSaveClick(TObject *Sender)
  2262. {
  2263. #if 0
  2264. if (EdFormId->Text.IsEmpty())
  2265. {
  2266. Application->MessageBox(lblText14->Caption.c_str(),//L"VMS 폼 저장\r\nVMS 폼 ID를 입력하세요.",
  2267. FTitle.c_str(),
  2268. MB_OK|MB_ICONERROR|MB_APPLMODAL);
  2269. return;
  2270. }
  2271. if (EdFormName->Text.Trim().IsEmpty())
  2272. {
  2273. Application->MessageBox(lblText15->Caption.c_str(),//L"VMS 폼 저장\r\nVMS 폼 이름을 입력하세요.",
  2274. FTitle.c_str(),
  2275. MB_OK|MB_ICONERROR|MB_APPLMODAL);
  2276. return;
  2277. }
  2278. int nObjType;
  2279. TVmsFormObject *pObj;
  2280. TcxGridDataController *pGDC = TvObjList->DataController;
  2281. int nObjCnt = pGDC->RecordCount;
  2282. String sFormId = EdFormId->Text;
  2283. //String sVmsType = FVmsTypeCd;
  2284. String sFormType = APP_GetCode(CbFormKind);
  2285. //String sFormColor = String(CbFormColor->ItemIndex);
  2286. //String sName = EdFormName->Text.Trim();
  2287. //String sExpl = EdFormDesc->Text.Trim();
  2288. //String sDispDir = APP_GetCode(CbFormDispDir);
  2289. //String sDispMode = APP_GetCode(CbFormDispMode);
  2290. String sVALID_YN = "Y";
  2291. if ( sFormType == String(eFormtp_figure)
  2292. || sFormType == String(eFormTp_atmp)
  2293. || sFormType == String(eFormTp_park)
  2294. )
  2295. {
  2296. for (int ii = 0; ii < nObjCnt; ii++)
  2297. {
  2298. String sObjSeq = VarToStr(pGDC->Values[ii][ColSeq->Index]);
  2299. pObj = m_pEdtDesigner->FindObject(sObjSeq.ToInt());
  2300. if (!pObj) continue;
  2301. String sObjId = pObj->Tag;
  2302. nObjType = pObj->ObjType.ToIntDef(0);
  2303. if (nObjType == 91 || nObjType == 92)
  2304. {
  2305. //@축통행시간(고정), @축소통상황(고정)
  2306. TVmsIfsc *pIfscObj = VmsIfscManager->FLists.Find(sObjId.ToIntDef(-1));
  2307. if (!pIfscObj)
  2308. {
  2309. sVALID_YN = "N";
  2310. break;
  2311. }
  2312. }
  2313. if (nObjType == 101 || nObjType == 102 || nObjType == 103 || nObjType == 104)
  2314. {
  2315. //@주차장명, @주차면수, @주차가능면수, @주차혼잡도
  2316. TCDSPark *pParkObj = CDSParkManager->FLists.Find(sObjId);
  2317. if (!pParkObj)
  2318. {
  2319. sVALID_YN = "N";
  2320. break;
  2321. }
  2322. }
  2323. if (pObj->ObjType.ToIntDef(0) >= 401 && pObj->ObjType.ToIntDef(0) <= 413)
  2324. {
  2325. //대기환경 관측소
  2326. TCDSAtmp *pAtmpObj = CDSAtmpManager->FLists.Find(sObjId);
  2327. if (pAtmpObj)
  2328. {
  2329. #if 0
  2330. if (pAtmpObj->USE_YN != "Y")
  2331. {
  2332. sVALID_YN = "N";
  2333. break;
  2334. }
  2335. #endif
  2336. }
  2337. else
  2338. {
  2339. sVALID_YN = "N";
  2340. break;
  2341. }
  2342. }
  2343. }
  2344. }
  2345. if (sVALID_YN != "Y")
  2346. {
  2347. String sMsg;
  2348. sMsg = " \r\n";
  2349. sMsg += "<<< VMS 폼 객체 중에 설정되지 않은 정보가 있습니다. >>>\r\n";
  2350. sMsg += " *** VMS 스케쥴 설정화면에 표출되지 않습니다.\r\n";
  2351. sMsg += " *** VMS 스케쥴 목록에 이미 등록되어 있는 경우 VMS 메시지가 표출되지 않습니다.\r\n";
  2352. sMsg += " VMS 폼 정보를 저장 하시겠습니까?";
  2353. sMsg += " \r\n";
  2354. if (Application->MessageBox(sMsg.c_str(), L"VMS 폼 유효성 확인", MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES) return;
  2355. }
  2356. bool bResult = false;
  2357. m_pEdtDesigner->GetVmsFormImage(ImgForm);
  2358. bResult = SaveVmsForm(sVALID_YN);
  2359. if (!bResult) return;
  2360. String sQry;
  2361. TADOQuery *pADO = NULL;
  2362. try
  2363. {
  2364. try
  2365. {
  2366. pADO = new TADOQuery(NULL);
  2367. pADO->Close();
  2368. pADO->Connection = ITSDb_GetConnection();
  2369. sQry = "DELETE TB_VMS_FORM_OBJECT \r\n"
  2370. " WHERE VMS_FORM_ID = :p01 \r\n";
  2371. ITSDb_SQLText(pADO, sQry);
  2372. ITSDb_SQLBind(pADO, "p01", sFormId);
  2373. pADO->ExecSQL();
  2374. sQry = "INSERT INTO TB_VMS_FORM_OBJECT ( \r\n"
  2375. " VMS_FORM_OBJECT_ID, \r\n" //N NUMBER(5) N FORM OBJECT ID
  2376. " VMS_FORM_ID, \r\n" //N NUMBER(5) N VMS FORM ID
  2377. " VMS_FORM_DSPL_ROW, \r\n" //N NUMBER(2) Y VMS FORM 표출 행
  2378. " VMS_FORM_DSPL_CLMN, \r\n" //N NUMBER(2) Y VMS FORM 표출 칼럼
  2379. " VMS_FORM_OBJECT_TYPE_CD, \r\n" //N NUMBER(3) N VMS FORM OBJECT 유형 코드
  2380. " VMS_FONT_NAME_CD, \r\n" //N NUMBER(3) N VMS 글꼴 유형 코드
  2381. " VMS_FONT_COLR_CD, \r\n" //N NUMBER(9) N VMS 글꼴 색상 코드
  2382. " VMS_FONT_BOLD, \r\n" //N NUMBER(3) Y VMS 글꼴 방식 코드
  2383. " VMS_FONT_SIZE, \r\n" //N NUMBER(3) Y 0 VMS 글꼴 크기
  2384. " VMS_FONT_ALIGN, \r\n" //N NUMBER(1) Y 0 VMS 표출 문자열정열방식(0:LEFT,1:RIGHT,2:CENTER)
  2385. " VMS_DSPL_TXT, \r\n" //N VARCHAR2(200) Y VMS 표출 텍스트
  2386. " VMS_DSPL_FIGR, \r\n" //N BLOB Y VMS 표출 도형
  2387. " VMS_DSPL_XCRDN, \r\n" //N NUMBER(5) Y VMS 표출 X좌표
  2388. " VMS_DSPL_YCRDN, \r\n" //N NUMBER(5) Y VMS 표출 Y좌표
  2389. " VMS_DSPL_WIDTH, \r\n" //N NUMBER(5) Y 0 VMS 표출 넓이
  2390. " VMS_DSPL_HEIGHT, \r\n" //N NUMBER(5) Y 0 VMS 표출 높이
  2391. " VMS_DSPL_BLINKING, \r\n" //N NUMBER(1) Y 0 VMS 표출 점멸 여부(0:지속, 1:점멸)
  2392. " VMS_DSPL_BKCOLOR, \r\n" //N NUMBER(1) Y 0 VMS 표출 배경색상코드
  2393. " VMS_DSPL_SIZE, \r\n" //N NUMBER(7) Y 0 VMS 표출 크기(문자:문자길이,이미지:이미지전체크기)
  2394. " TRFC_FILL_CD, \r\n" //N CHAR(1) Y 'N' FILL-IN 메시지 여부
  2395. " SYMB_LIB_NMBR, \r\n" //N NUMBER(4) N 0 심벌라이브러리 번호
  2396. " VMS_IFSC_ID \r\n" //N NUMBER(10) N 0 VMS 정보제공구간 ID
  2397. " ) \r\n"
  2398. " VALUES ( \r\n"
  2399. " :p01, \r\n" //N NUMBER(5) N FORM OBJECT ID
  2400. " :p02, \r\n" //N NUMBER(5) N VMS FORM ID
  2401. " 0, \r\n" //N NUMBER(2) Y VMS FORM 표출 행
  2402. " 0, \r\n" //N NUMBER(2) Y VMS FORM 표출 칼럼
  2403. " :p05, \r\n" //N NUMBER(3) N VMS FORM OBJECT 유형 코드
  2404. " :p06, \r\n" //N NUMBER(3) N VMS 글꼴 유형 코드
  2405. " :p07, \r\n" //N NUMBER(9) N VMS 글꼴 색상 코드
  2406. " :p08, \r\n" //N NUMBER(3) Y VMS 글꼴 방식 코드
  2407. " :p09, \r\n" //N NUMBER(3) Y 0 VMS 글꼴 크기
  2408. " :p10, \r\n" //N NUMBER(1) Y 0 VMS 표출 문자열정열방식(0:LEFT,1:RIGHT,2:CENTER)
  2409. " :p11, \r\n" //N VARCHAR2(200) Y VMS 표출 텍스트
  2410. " :p12, \r\n" //N BLOB Y VMS 표출 도형
  2411. " :p13, \r\n" //N NUMBER(5) Y VMS 표출 X좌표
  2412. " :p14, \r\n" //N NUMBER(5) Y VMS 표출 Y좌표
  2413. " :p15, \r\n" //N NUMBER(5) Y 0 VMS 표출 넓이
  2414. " :p16, \r\n" //N NUMBER(5) Y 0 VMS 표출 높이
  2415. " :p17, \r\n" //N NUMBER(1) Y 0 VMS 표출 점멸 여부(0:지속, 1:점멸)
  2416. " :p18, \r\n" //N NUMBER(1) Y 0 VMS 표출 배경색상코드
  2417. " :p19, \r\n" //N NUMBER(7) Y 0 VMS 표출 크기(문자:문자길이,이미지:이미지전체크기)
  2418. " :p23, \r\n" //N CHAR(1) Y 'N' FILL-IN 메시지 여부
  2419. " :p21, \r\n" //N NUMBER(4) N 0 심벌라이브러리 번호
  2420. " :p22 \r\n" //N NUMBER(10) N 0 VMS 정보제공구간 ID
  2421. " ) \r\n";
  2422. ITSDb_SQLText(pADO, sQry);
  2423. ITSDb_GetConnection()->BeginTrans();
  2424. for (int ii = 0; ii < nObjCnt; ii++)
  2425. {
  2426. String sObjSeq = VarToStr(pGDC->Values[ii][ColSeq->Index]);
  2427. pObj = m_pEdtDesigner->FindObject(sObjSeq.ToInt());
  2428. if (!pObj) continue;
  2429. //이력으로 조회하는곳에서 좌표를 0x02로 저장하는데 음수가 나오는 경우
  2430. //2자리로 처리가 되지 않기 때문에 여기서 막아준다.
  2431. if (pObj->Left < 0) pObj->Left = 0;
  2432. if (pObj->Top < 0) pObj->Top = 0;
  2433. nObjType = pObj->ObjType.ToIntDef(0);
  2434. ITSDb_SQLBind(pADO, "p01", String(ii+1));
  2435. ITSDb_SQLBind(pADO, "p02", sFormId);
  2436. //ITSDb_SQLBind(pADO, "p03", );
  2437. //ITSDb_SQLBind(pADO, "p04", );
  2438. ITSDb_SQLBind(pADO, "p05", pObj->ObjType);
  2439. ITSDb_SQLBind(pADO, "p06", pObj->FontNameCode);
  2440. ITSDb_SQLBind(pADO, "p07", pObj->FontColorCode);
  2441. if (pObj->FontBold)
  2442. ITSDb_SQLBind(pADO, "p08", "1");
  2443. else
  2444. ITSDb_SQLBind(pADO, "p08", "0");
  2445. ITSDb_SQLBind(pADO, "p09", String(pObj->FontSize));
  2446. ITSDb_SQLBind(pADO, "p10", String(pObj->TextAlign));
  2447. ITSDb_SQLBind(pADO, "p11", pObj->Text);
  2448. ITSDb_SQLBind(pADO, "p13", String(pObj->GetLeft()));
  2449. ITSDb_SQLBind(pADO, "p14", String(pObj->GetTop()));
  2450. ITSDb_SQLBind(pADO, "p15", String(pObj->GetWidth()));
  2451. ITSDb_SQLBind(pADO, "p16", String(pObj->GetHeight()));
  2452. if (pObj->Blink)
  2453. ITSDb_SQLBind(pADO, "p17", "1");
  2454. else
  2455. ITSDb_SQLBind(pADO, "p17", "0");
  2456. ITSDb_SQLBind(pADO, "p18", pObj->BkColorCode);
  2457. ITSDb_SQLBind(pADO, "p19", String(pObj->ObjSize));
  2458. //ITSDb_SQLBind(pADO, "p20", );
  2459. ITSDb_SQLBind(pADO, "p21", pObj->ImageId);
  2460. String sIfscId = "";
  2461. if (nObjType == 91 || nObjType == 92 ||
  2462. nObjType == 101 || nObjType == 102 || nObjType == 103 || nObjType == 104 ||
  2463. (nObjType >= 401 && nObjType <= 413)
  2464. )
  2465. {
  2466. sIfscId = pObj->Tag;
  2467. }
  2468. if (sIfscId.Trim() == "N")
  2469. {
  2470. sIfscId = "";
  2471. }
  2472. ITSDb_SQLBind(pADO, "p22", sIfscId);
  2473. String sFillIn = "N";
  2474. if (sFormType == "15")
  2475. {
  2476. if (nObjType == 0 || nObjType == 1 || nObjType == 2)
  2477. {
  2478. sFillIn = pObj->Tag;
  2479. }
  2480. }
  2481. ITSDb_SQLBind(pADO, "p23", sFillIn);
  2482. TMemoryStream *dataStream = NULL;
  2483. TImage *pImg = pObj->GetImage();
  2484. dataStream = new TMemoryStream();
  2485. if (!pImg)
  2486. {
  2487. ImgNull->Picture->Bitmap->SaveToStream(dataStream);
  2488. }
  2489. else
  2490. {
  2491. pImg->Picture->Bitmap->SaveToStream(dataStream);
  2492. }
  2493. pADO->Parameters->ParamByName("p12")->LoadFromStream(dataStream, ftBlob);
  2494. ITSDb_SQLExec(pADO);
  2495. if (dataStream) delete dataStream;
  2496. dataStream = NULL;
  2497. }
  2498. ITSDb_GetConnection()->CommitTrans();
  2499. bResult = true;
  2500. }
  2501. catch(EDatabaseError &E)
  2502. {
  2503. ITSDb_GetConnection()->RollbackTrans();
  2504. DBERRORMSG("FrmVmsMsgMngr::BtnSaveClick", String(E.ClassName()), E.Message, sQry);
  2505. throw Exception(String(E.ClassName()) + E.Message);
  2506. }
  2507. catch(Exception &e)
  2508. {
  2509. ITSDb_GetConnection()->RollbackTrans();
  2510. DBERRORMSG("FrmVmsMsgMngr::BtnSaveClick", String(e.ClassName()), e.Message, sQry);
  2511. throw Exception(String(e.ClassName()) + e.Message);
  2512. }
  2513. }
  2514. __finally
  2515. {
  2516. if (pADO)
  2517. {
  2518. pADO->Close();
  2519. delete pADO;
  2520. }
  2521. }
  2522. if (bResult)
  2523. {
  2524. Application->MessageBox(lblText16->Caption.c_str(),//L"VMS 폼 정보 저장\r\nVMS 폼 정보를 저장 하였습니다.",
  2525. FTitle.c_str(),
  2526. MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
  2527. FUpdate = true;
  2528. CMM_SetGridRow(CxList, TvList, sFormId, Col01->Index);
  2529. DisplayInfo();
  2530. POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0);
  2531. //CComm_VmsFormUpdate();
  2532. }
  2533. //ReForm->Lines->Clear();
  2534. //ReFormTemp->Lines->Clear();
  2535. #endif
  2536. }
  2537. //---------------------------------------------------------------------------
  2538. void __fastcall TFrmVmsMsgSendDispOld::Cb99PropertiesChange(TObject *Sender)
  2539. {
  2540. #if 0
  2541. if (m_bEdit) return;
  2542. #if 1
  2543. String sFormType = APP_GetCode(CbFormKind);
  2544. if (sFormType == "15")
  2545. {
  2546. String sFillIn = APP_GetCode(Cb99);
  2547. if (sFillIn == "") sFillIn = "N";
  2548. TVmsFormObject *pObj = m_pEdtDesigner->FindObject(EdObjSeq->Text.ToIntDef(-1), false);
  2549. if (pObj)
  2550. {
  2551. int nObjType = pObj->ObjType.ToIntDef(-1);
  2552. if (nObjType == 0 || nObjType == 1 || nObjType == 2)
  2553. {
  2554. pObj->Tag = sFillIn;
  2555. }
  2556. }
  2557. }
  2558. #endif
  2559. #endif
  2560. }
  2561. //---------------------------------------------------------------------------
  2562. void __fastcall TFrmVmsMsgSendDispOld::CheckImageSelected()
  2563. {
  2564. #if 0
  2565. #ifdef IMAGE_RESIZE
  2566. bool selImage = false;
  2567. int nImgW = 0;
  2568. int nImgH = 0;
  2569. int nObjCnt = m_pEdtDesigner->GetObjectCount();
  2570. for(int ii = 0; ii < nObjCnt; ii++)
  2571. {
  2572. TVmsFormObject *pObj = m_pEdtDesigner->GetObject(ii);
  2573. if (!pObj) continue;
  2574. if (!pObj->Selected) continue;
  2575. #if 0
  2576. if (pObj->ObjType.ToIntDef(0) == 1 || pObj->ObjType.ToIntDef(0) == 2)
  2577. {
  2578. selImage = true;
  2579. nImgW = pObj->GetWidth();
  2580. nImgH = pObj->GetHeight();
  2581. }
  2582. else
  2583. {
  2584. selImage = false;
  2585. break;
  2586. }
  2587. #else
  2588. switch(pObj->ObjType.ToIntDef(0))
  2589. {
  2590. case 1: //심볼
  2591. case 2: //이미지
  2592. case 3: //소통정보배경이미지
  2593. case 17: //소통정보이미지1
  2594. case 27: //소통정보이미지2
  2595. case 37: //소통정보이미지3
  2596. case 47: //소통정보이미지4
  2597. case 167: //@우회소통정보이미지
  2598. case 200: //동영상이미지
  2599. case 300: //스트리밍영상이미지
  2600. case 406: //@통합대기등급 이미지
  2601. case 407: //@미세먼지등급 이미지
  2602. case 408: //@초미세먼지등급 이미지
  2603. case 413: //@오존등급이미지
  2604. selImage = true;
  2605. nImgW = pObj->GetWidth();
  2606. nImgH = pObj->GetHeight();
  2607. break;
  2608. default:
  2609. selImage = false;
  2610. break;
  2611. }
  2612. if (selImage == false)
  2613. {
  2614. break;
  2615. }
  2616. #endif
  2617. }
  2618. if (selImage)
  2619. {
  2620. TNotifyEvent evtW = SeImgW->Properties->OnChange;
  2621. TNotifyEvent evtH = SeImgH->Properties->OnChange;
  2622. SeImgW->Properties->OnChange = NULL;
  2623. SeImgH->Properties->OnChange = NULL;
  2624. SeImgW->Value = nImgW;
  2625. SeImgH->Value = nImgH;
  2626. SeImgW->Properties->OnChange = evtW;
  2627. SeImgH->Properties->OnChange = evtH;
  2628. PnlImage->Visible = true;
  2629. }
  2630. else
  2631. {
  2632. PnlImage->Visible = false;
  2633. }
  2634. #endif
  2635. #endif
  2636. }
  2637. //---------------------------------------------------------------------------
  2638. void __fastcall TFrmVmsMsgSendDispOld::SeImgWHPropertiesChange(TObject *Sender)
  2639. {
  2640. #if 0
  2641. if (m_bEdit) return;
  2642. if (((TcxSpinEdit*)Sender)->Value < ((TcxSpinEdit*)Sender)->Properties->MinValue)
  2643. ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MinValue;
  2644. else if(((TcxSpinEdit*)Sender)->Value > ((TcxSpinEdit*)Sender)->Properties->MaxValue &&
  2645. ((TcxSpinEdit*)Sender)->Properties->MaxValue)
  2646. ((TcxSpinEdit*)Sender)->Value = ((TcxSpinEdit*)Sender)->Properties->MaxValue;
  2647. #ifdef IMAGE_RESIZE
  2648. int nImgW = SeImgW->Value;
  2649. int nImgH = SeImgH->Value;
  2650. int nObjCnt = m_pEdtDesigner->GetObjectCount();
  2651. for(int ii = 0; ii < nObjCnt; ii++)
  2652. {
  2653. TVmsFormObject *pObj = m_pEdtDesigner->GetObject(ii);
  2654. if (!pObj) continue;
  2655. if (!pObj->Selected) continue;
  2656. #if 0
  2657. if (pObj->ObjType.ToIntDef(0) == 1 || pObj->ObjType.ToIntDef(0) == 2)
  2658. {
  2659. pObj->GetImage()->AutoSize= false;
  2660. pObj->GetImage()->Stretch = true;
  2661. pObj->GetImage()->Width = nImgW;
  2662. pObj->GetImage()->Height = nImgH;
  2663. pObj->SetSize(nImgW, nImgH);
  2664. }
  2665. #else
  2666. switch(pObj->ObjType.ToIntDef(0))
  2667. {
  2668. case 1: //심볼
  2669. case 2: //이미지
  2670. case 3: //소통정보배경이미지
  2671. case 17: //소통정보이미지1
  2672. case 27: //소통정보이미지2
  2673. case 37: //소통정보이미지3
  2674. case 47: //소통정보이미지4
  2675. case 167: //@우회소통정보이미지
  2676. case 200: //동영상이미지
  2677. case 300: //스트리밍영상이미지
  2678. case 406: //@통합대기등급 이미지
  2679. case 407: //@미세먼지등급 이미지
  2680. case 408: //@초미세먼지등급 이미지
  2681. case 413: //@오존등급이미지
  2682. pObj->GetImage()->AutoSize= false;
  2683. pObj->GetImage()->Stretch = true;
  2684. pObj->GetImage()->Width = nImgW;
  2685. pObj->GetImage()->Height = nImgH;
  2686. pObj->SetSize(nImgW, nImgH);
  2687. break;
  2688. default:
  2689. break;
  2690. }
  2691. #endif
  2692. }
  2693. #endif
  2694. #endif
  2695. }
  2696. //---------------------------------------------------------------------------
  2697. void __fastcall TFrmVmsMsgSendDispOld::BtnCopyAdd212Click(TObject *Sender)
  2698. {
  2699. #if 0
  2700. int nIdx = TvList->DataController->FocusedRecordIndex;
  2701. if (nIdx < 0) return;
  2702. #if 0
  2703. String sFormName = InputBox(lblText9->Caption,//"폼명칭",
  2704. lblText10->Caption,//"신규 폼명칭 입력하세요(60Byte).",
  2705. EdFormName->Text);//lblText9->Caption);//"폼명칭" );
  2706. sFormName = sFormName.Trim();
  2707. if (sFormName == lblText9->Caption//"폼명칭"
  2708. || sFormName == "")
  2709. #else
  2710. String sFormName = EdFormName->Text;
  2711. bool bInput = InputQuery(lblText9->Caption,//"폼명칭",
  2712. lblText10->Caption,//"신규 폼명칭 입력하세요(60Byte).",
  2713. sFormName);//lblText9->Caption);//"폼명칭" );
  2714. if (!bInput || sFormName == "")
  2715. #endif
  2716. {
  2717. return;
  2718. }
  2719. if (AnsiString(sFormName).Length() > 60)
  2720. {
  2721. Application->MessageBox(lblText11->Caption.c_str(),//L"폼명칭은 60Byte를 초과할 수 없습니다.",
  2722. FTitle.c_str(),
  2723. MB_OK|MB_ICONERROR|MB_APPLMODAL);
  2724. return;
  2725. }
  2726. String sFormId = EdFormId->Text;
  2727. if (sFormId.IsEmpty())
  2728. {
  2729. Application->MessageBox(lblText12->Caption.c_str(),//L"VMS 폼 복사 추가\r\n복사 추가할 VMS 폼을 목록에서 선택하세요.",
  2730. FTitle.c_str(),
  2731. MB_OK|MB_ICONERROR|MB_APPLMODAL);
  2732. return;
  2733. }
  2734. int nFormId;
  2735. if (!GetNextVmsFormId(nFormId))
  2736. {
  2737. Application->MessageBox(lblText1->Caption.c_str(),//L"새로운 VMS 폼정보를 생성하지 못하였습니다.\r\n프로그램 종료후에 다시 시도해 보세요.",
  2738. FTitle.c_str(),
  2739. MB_OK|MB_ICONERROR|MB_APPLMODAL);
  2740. return;
  2741. }
  2742. if (CopyFormAdd212(sFormId, String(nFormId), sFormName))
  2743. {
  2744. Application->MessageBox(lblText13->Caption.c_str(),//L"VMS 폼 복사 추가\r\nVMS 폼 정보를 복사 추가 하였습니다.",
  2745. FTitle.c_str(),
  2746. MB_OK|MB_ICONINFORMATION|MB_APPLMODAL);
  2747. FUpdate = true;
  2748. CMM_SetGridRow(CxList, TvList, String(nFormId), Col01->Index);
  2749. DisplayInfo();
  2750. POST_MSG(Application->MainForm->Handle, WM_DATABASE_REFRESH, WP_MSG_14, 0);
  2751. //CComm_VmsFormUpdate();
  2752. }
  2753. #endif
  2754. }
  2755. //---------------------------------------------------------------------------
  2756. bool __fastcall TFrmVmsMsgSendDispOld::CopyFormAdd212(String AOrgFormId, String ANewFormId, String AFormName)
  2757. {
  2758. bool bResult = false;
  2759. return bResult;
  2760. }
  2761. void __fastcall TFrmVmsMsgSendDispOld::PgEditClick(TObject *Sender)
  2762. {
  2763. #if 0
  2764. try
  2765. {
  2766. if (PgEdit->Properties->ActivePage == TsDirect)
  2767. {
  2768. if (ReForm->Enabled) ReForm->SetFocus();
  2769. }
  2770. }
  2771. catch(Exception &e)
  2772. {
  2773. }
  2774. #endif
  2775. }
  2776. //---------------------------------------------------------------------------
  2777. void __fastcall TFrmVmsMsgSendDispOld::BtrnReFormClearClick(TObject *Sender)
  2778. {
  2779. //ReForm->Lines->Clear();
  2780. }
  2781. //---------------------------------------------------------------------------
  2782. void __fastcall TFrmVmsMsgSendDispOld::BtnRedClick(TObject *Sender)
  2783. {
  2784. #if 0
  2785. TcxButton *pClrBtn = (TcxButton*)Sender;
  2786. switch(pClrBtn->Tag)
  2787. {
  2788. case 0 : ReForm->SelAttributes->Color = clLime; break;
  2789. case 1 : ReForm->SelAttributes->Color = clYellow; break;
  2790. case 2 : ReForm->SelAttributes->Color = clRed; break;
  2791. }
  2792. #endif
  2793. }
  2794. //---------------------------------------------------------------------------
  2795. void __fastcall TFrmVmsMsgSendDispOld::BtnObjLimeClick(TObject *Sender)
  2796. {
  2797. #if 0
  2798. if (m_bEdit) return;
  2799. //if (m_pEdtDesigner->GetSelectedObjectCount() < 1) return;
  2800. TcxButton *pClrBtn = (TcxButton*)Sender;
  2801. m_pEdtDesigner->SetObejctFontColorCode(String(pClrBtn->Tag));
  2802. #endif
  2803. }
  2804. //---------------------------------------------------------------------------
  2805. void __fastcall TFrmVmsMsgSendDispOld::BtnObjDeleteAllClick(TObject *Sender)
  2806. {
  2807. #if 0
  2808. String sMsgString;
  2809. sMsgString = "전체 객체 정보를 모두 삭제하시겠습니까?";
  2810. if (Application->MessageBox(sMsgString.c_str(),
  2811. lblText7->Caption.c_str(),//L"객체 정보 삭제",
  2812. MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL) != IDYES)
  2813. {
  2814. return;
  2815. }
  2816. bool bUse = false;
  2817. TVmsFormObject *pObj;
  2818. int nObjCnt = m_pEdtDesigner->GetObjectCount();
  2819. for (int ii = nObjCnt-1; ii >= 0; ii--)
  2820. {
  2821. pObj = m_pEdtDesigner->GetObject(ii);
  2822. TVmsObjUse*pObjUse = MyUseManager->FLists.Find(pObj->ObjSeq);
  2823. if (pObjUse)
  2824. {
  2825. bUse = true;
  2826. continue;
  2827. }
  2828. m_pEdtDesigner->DelObject(ii);
  2829. }
  2830. if (bUse)
  2831. {
  2832. Application->MessageBox(lblText8->Caption.c_str(),//L"VMS 폼 객체 삭제\r\nVMS 폼 객체 중 정보제공구간에 설정된 객체는 삭제할 수 없습니다.",
  2833. FTitle.c_str(),
  2834. MB_OK|MB_ICONERROR|MB_APPLMODAL);
  2835. }
  2836. SelObjectListData();
  2837. #endif
  2838. }
  2839. //---------------------------------------------------------------------------
  2840. void __fastcall TFrmVmsMsgSendDispOld::BtnAllSelectClick(TObject *Sender)
  2841. {
  2842. TcxButton *pBtn = (TcxButton*)Sender;
  2843. CMM_CheckAllListItem(TvList, ColumnSel->Index, pBtn->Tag);
  2844. }
  2845. //---------------------------------------------------------------------------