w_system_window_ch.srw 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707
  1. $PBExportHeader$w_system_window_ch.srw
  2. forward
  3. global type w_system_window_ch from window
  4. end type
  5. type cb_refresh from uo_imflatbutton within w_system_window_ch
  6. end type
  7. type cb_ch from uo_imflatbutton within w_system_window_ch
  8. end type
  9. type tv_func from treeview within w_system_window_ch
  10. end type
  11. type cb_exit from uo_imflatbutton within w_system_window_ch
  12. end type
  13. type r_bar from rectangle within w_system_window_ch
  14. end type
  15. type ln_bar from line within w_system_window_ch
  16. end type
  17. type ln_bar2 from line within w_system_window_ch
  18. end type
  19. end forward
  20. global type w_system_window_ch from window
  21. integer x = 5
  22. integer y = 4
  23. integer width = 3611
  24. integer height = 2480
  25. boolean titlebar = true
  26. string title = "系统窗口选择"
  27. boolean controlmenu = true
  28. windowtype windowtype = response!
  29. long backcolor = 80269524
  30. boolean center = true
  31. cb_refresh cb_refresh
  32. cb_ch cb_ch
  33. tv_func tv_func
  34. cb_exit cb_exit
  35. r_bar r_bar
  36. ln_bar ln_bar
  37. ln_bar2 ln_bar2
  38. end type
  39. global w_system_window_ch w_system_window_ch
  40. type prototypes
  41. subroutine keybd_event(uint bVk,uint bScan,long dwFlags,long dwExtraInfo ) library 'user32.dll'
  42. end prototypes
  43. type variables
  44. long deep=0,il_handle
  45. long cur_mainid
  46. end variables
  47. forward prototypes
  48. public function string wf_getright ()
  49. public function integer wf_build_functree ()
  50. public function integer pf_treegrowth (long arg_handl, long arg_funcid, integer arg_lp)
  51. public subroutine wf_refresh_tvchild (long arg_handl, string arg_rightstr)
  52. public subroutine wf_refresh_tvnext (long arg_handl, string arg_rightstr)
  53. public subroutine wf_getright_tvchild (long arg_handl, ref string arg_rightstr)
  54. public subroutine wf_getright_tvnext (long arg_handl, ref string arg_rightstr)
  55. public subroutine wf_set_tvparent (long arg_handl)
  56. public subroutine wf_set_tvchild (long arg_handl)
  57. public subroutine wf_refresh ()
  58. public subroutine wf_clear_tvchild (long arg_handl, integer arg_statepictureindex)
  59. public subroutine wf_clear_tvnext (long arg_handl, integer arg_statepictureindex)
  60. public subroutine wf_set_tvnext (long arg_handl)
  61. end prototypes
  62. public function string wf_getright ();string ls_ret
  63. ls_ret=fill("0",2000)
  64. long ll_handl
  65. ll_handl = tv_func.finditem(RootTreeItem!,0)
  66. if ll_handl > 0 then wf_getright_tvchild(ll_handl,ls_ret)
  67. return ls_ret
  68. end function
  69. public function integer wf_build_functree ();//====================================================================
  70. // Function: wf_build_functree()
  71. //--------------------------------------------------------------------
  72. // Description:
  73. //--------------------------------------------------------------------
  74. // Arguments:(None)
  75. //--------------------------------------------------------------------
  76. // Returns: integer
  77. //--------------------------------------------------------------------
  78. // Author: yyx Date: 2004.11.16
  79. //--------------------------------------------------------------------
  80. // Modify History:
  81. //
  82. //====================================================================
  83. long hand
  84. deep=1
  85. long tvi_hdl = 0
  86. do until tv_func.finditem(roottreeitem!, 0) = -1
  87. tv_func.deleteitem(tvi_hdl)
  88. loop
  89. hand=tv_func.insertitemlast(0,sys_message_title,1)
  90. pf_treegrowth(hand,0,2)
  91. tv_func.expanditem(hand)
  92. return 1
  93. end function
  94. public function integer pf_treegrowth (long arg_handl, long arg_funcid, integer arg_lp);//====================================================================
  95. // function: pf_treegrowth()
  96. //--------------------------------------------------------------------
  97. // description:
  98. //--------------------------------------------------------------------
  99. // arguments:
  100. // value long arg_handl
  101. // value long arg_funcid
  102. // value integer arg_lp
  103. //--------------------------------------------------------------------
  104. // returns: integer
  105. //--------------------------------------------------------------------
  106. // author: yyx date: 2004.11.16
  107. //--------------------------------------------------------------------
  108. // modify history:
  109. //
  110. //====================================================================
  111. int rslt = 1
  112. s_sys_func ls_s_func[]
  113. long count = 0,ls_i
  114. long handl
  115. treeviewitem tvi
  116. deep++
  117. if deep > 100000 then //防止死递归
  118. return 0
  119. end if
  120. string ls_filter
  121. ls_filter = 'parentid='+string(arg_funcid)
  122. sys_ds_maininfo.setfilter(ls_filter)
  123. sys_ds_maininfo.filter()
  124. for ls_i = 1 to sys_ds_maininfo.rowcount( )
  125. if sys_ds_maininfo.object.functype[ls_i] >= 9 then continue
  126. if sys_ds_maininfo.object.if_use[ls_i] = 0 then continue
  127. if sys_ds_maininfo.object.parentid[ls_i] = arg_funcid then
  128. if sys_ds_maininfo.object.funcid[ls_i] = 262 then continue //系统维护除外
  129. count++
  130. ls_s_func[count].funcid = sys_ds_maininfo.object.funcid[ls_i]
  131. ls_s_func[count].treename = sys_ds_maininfo.object.treename[ls_i]
  132. ls_s_func[count].menuname = sys_ds_maininfo.object.menuname[ls_i]
  133. ls_s_func[count].parentid = sys_ds_maininfo.object.parentid[ls_i]
  134. ls_s_func[count].sortflag = sys_ds_maininfo.object.sortflag[ls_i]
  135. ls_s_func[count].functype = sys_ds_maininfo.object.functype[ls_i]
  136. ls_s_func[count].mainid = sys_ds_maininfo.object.mainid[ls_i]
  137. ls_s_func[count].if_use = sys_ds_maininfo.object.if_use[ls_i]
  138. ls_s_func[count].versiontype = sys_ds_maininfo.object.versiontype[ls_i]
  139. ls_s_func[count].worktype = sys_ds_maininfo.object.worktype[ls_i]
  140. end if
  141. next
  142. string ls_item
  143. for ls_i = 1 to count
  144. ls_item = ls_s_func[ls_i].treename
  145. handl = tv_func.insertitemlast(arg_handl,ls_item,arg_lp) //生成树
  146. // tv_func.expanditem(arg_handl)
  147. tv_func.getitem(handl,tvi)
  148. tvi.statepictureindex = 2
  149. tvi.data = ls_s_func[ls_i]
  150. tv_func.setitem(handl,tvi)
  151. pf_treegrowth(handl,ls_s_func[ls_i].funcid,arg_lp+1) //下级生成树
  152. next
  153. return rslt
  154. end function
  155. public subroutine wf_refresh_tvchild (long arg_handl, string arg_rightstr);long ll_handl
  156. long ll_funcid
  157. treeviewitem tvi
  158. ll_handl = arg_handl
  159. ll_handl = tv_func.finditem(ChildTreeItem!,ll_handl)
  160. do while ll_handl > 0
  161. tv_func.getitem(ll_handl,tvi)
  162. ll_funcid = tvi.data
  163. // messagebox("0",ll_funcid)
  164. if not ll_funcid = 0 then
  165. if mid(arg_rightstr,ll_funcid,1)='0' then
  166. tvi.statepictureindex = 1
  167. else
  168. tvi.statepictureindex = 2
  169. end if
  170. end if
  171. tv_func.setitem(ll_handl,tvi)
  172. wf_refresh_tvnext(ll_handl,arg_rightstr)
  173. ll_handl = tv_func.finditem(ChildTreeItem!,ll_handl)
  174. loop
  175. end subroutine
  176. public subroutine wf_refresh_tvnext (long arg_handl, string arg_rightstr);long ll_handl
  177. long ll_funcid
  178. treeviewitem tvi
  179. ll_handl = arg_handl
  180. ll_handl = tv_func.finditem(NextTreeItem!,ll_handl)
  181. do while ll_handl > 0
  182. tv_func.getitem(ll_handl,tvi)
  183. ll_funcid = tvi.data
  184. // messagebox("1",ll_funcid)
  185. if not ll_funcid = 0 then
  186. if mid(arg_rightstr,ll_funcid,1)='0' then
  187. tvi.statepictureindex = 1
  188. else
  189. tvi.statepictureindex = 2
  190. end if
  191. end if
  192. tv_func.setitem(ll_handl,tvi)
  193. wf_refresh_tvchild(ll_handl,arg_rightstr)
  194. ll_handl = tv_func.finditem(NextTreeItem!,ll_handl)
  195. loop
  196. end subroutine
  197. public subroutine wf_getright_tvchild (long arg_handl, ref string arg_rightstr);long ll_handl
  198. long ll_funcid
  199. treeviewitem tvi
  200. ll_handl = arg_handl
  201. ll_handl = tv_func.finditem(ChildTreeItem!,ll_handl)
  202. do while ll_handl > 0
  203. tv_func.getitem(ll_handl,tvi)
  204. ll_funcid = tvi.data
  205. // messagebox("0",ll_funcid)
  206. if not ll_funcid = 0 then
  207. if tvi.statepictureindex = 2 then
  208. arg_rightstr=replace(arg_rightstr,ll_funcid,1,"1")
  209. end if
  210. end if
  211. wf_getright_tvnext(ll_handl,arg_rightstr)
  212. ll_handl = tv_func.finditem(ChildTreeItem!,ll_handl)
  213. loop
  214. end subroutine
  215. public subroutine wf_getright_tvnext (long arg_handl, ref string arg_rightstr);long ll_handl
  216. long ll_funcid
  217. treeviewitem tvi
  218. ll_handl = arg_handl
  219. ll_handl = tv_func.finditem(NextTreeItem!,ll_handl)
  220. do while ll_handl > 0
  221. tv_func.getitem(ll_handl,tvi)
  222. ll_funcid = tvi.data
  223. // messagebox("1",ll_funcid)
  224. if not ll_funcid = 0 then
  225. if tvi.statepictureindex = 2 then
  226. arg_rightstr=replace(arg_rightstr,ll_funcid,1,"1")
  227. end if
  228. end if
  229. tv_func.setitem(ll_handl,tvi)
  230. wf_getright_tvchild(ll_handl,arg_rightstr)
  231. ll_handl = tv_func.finditem(NextTreeItem!,ll_handl)
  232. loop
  233. end subroutine
  234. public subroutine wf_set_tvparent (long arg_handl);//====================================================================
  235. // Function: wf_find_parenttree()
  236. //--------------------------------------------------------------------
  237. // Description:
  238. //--------------------------------------------------------------------
  239. // Arguments:
  240. // value long arg_handl
  241. // value long arg_state
  242. //--------------------------------------------------------------------
  243. // Returns: (none)
  244. //--------------------------------------------------------------------
  245. // Author: yyx Date: 2004.11.18
  246. //--------------------------------------------------------------------
  247. // Modify History:
  248. //
  249. //====================================================================
  250. long ll_handl
  251. treeviewitem tvi
  252. ll_handl = arg_handl
  253. tv_func.getitem(ll_handl,tvi)
  254. tvi.StatePictureIndex = 2
  255. tv_func.setitem(ll_handl,tvi)
  256. ll_handl = tv_func.finditem(ParentTreeItem!,ll_handl)
  257. do while ll_handl > 0
  258. tv_func.getitem(ll_handl,tvi)
  259. tvi.StatePictureIndex = 2
  260. tv_func.setitem(ll_handl,tvi)
  261. ll_handl = tv_func.finditem(ParentTreeItem!,ll_handl)
  262. loop
  263. end subroutine
  264. public subroutine wf_set_tvchild (long arg_handl);//====================================================================
  265. // Function: wf_find_childtree()
  266. //--------------------------------------------------------------------
  267. // Description:
  268. //--------------------------------------------------------------------
  269. // Arguments:
  270. // value long arg_handl
  271. // value long arg_state
  272. //--------------------------------------------------------------------
  273. // Returns: integer
  274. //--------------------------------------------------------------------
  275. // Author: yyx Date: 2004.11.18
  276. //--------------------------------------------------------------------
  277. // Modify History:
  278. //
  279. //====================================================================
  280. long ll_handl
  281. treeviewitem tvi
  282. ll_handl = arg_handl
  283. tv_func.getitem(ll_handl,tvi)
  284. tvi.StatePictureIndex = 1
  285. tv_func.setitem(ll_handl,tvi)
  286. ll_handl = tv_func.finditem(ChildTreeItem!,ll_handl)
  287. do while ll_handl > 0
  288. wf_set_tvnext(ll_handl)
  289. ll_handl = tv_func.finditem(ChildTreeItem!,ll_handl)
  290. loop
  291. end subroutine
  292. public subroutine wf_refresh ();//wf_refresh
  293. //long ll_row
  294. //long ll_storageid,ll_scid
  295. //long i,li_no,cnt
  296. //string ls_str,ls_storage_str,ls_scstr
  297. //
  298. //ll_row = dw_1.getrow()
  299. //
  300. //if ll_row > 0 then
  301. // if is_id = sys_super_id then
  302. // ls_str = fill('1',2000)
  303. // else
  304. // select rightstring into :ls_str
  305. // from u_user
  306. // where empid = :ins_empid
  307. // and scid = :sys_scid;
  308. // if sqlca.sqlcode <> 0 or isnull(ls_str) then
  309. // ls_str = ''
  310. // end if
  311. // ls_str=f_psw_zh(ls_str,1,sys_power_key) //解密
  312. // ls_storage_str = dw_1.object.storagestr[ll_row]
  313. // ls_scstr = dw_1.object.scstr[ll_row]
  314. // end if
  315. //end if
  316. ////**storage_checkbox
  317. //for i = 1 to dw_2.rowcount()
  318. // if ls_storage_str = '0' then
  319. // dw_2.object.choice[i] = 1
  320. // else
  321. // ll_storageid = dw_2.object.storageid[i]
  322. // if pos(ls_storage_str,','+string(ll_storageid)+',',1) > 0 then
  323. // dw_2.object.choice[i] = 1
  324. // else
  325. // dw_2.object.choice[i] = 0
  326. // end if
  327. // end if
  328. //next
  329. //
  330. ////**sc_checkbox
  331. //for i = 1 to dw_3.rowcount()
  332. // if ls_scstr = '0' then
  333. // dw_3.object.choice[i] = 1
  334. // else
  335. // ll_scid = dw_3.object.scid[i]
  336. // if pos(ls_scstr,','+string(ll_scid)+',',1) > 0 then
  337. // dw_3.object.choice[i] = 1
  338. // else
  339. // dw_3.object.choice[i] = 0
  340. // end if
  341. // end if
  342. //next
  343. //**tv_checkbox
  344. //if ls_str = '' then return
  345. long ll_handl
  346. ll_handl = tv_func.finditem(RootTreeItem!,0)
  347. //if ll_handl > 0 then wf_refresh_tvchild(ll_handl,ls_str)
  348. return
  349. end subroutine
  350. public subroutine wf_clear_tvchild (long arg_handl, integer arg_statepictureindex);long ll_handl
  351. treeviewitem tvi
  352. ll_handl = arg_handl
  353. ll_handl = tv_func.finditem(ChildTreeItem!,ll_handl)
  354. do while ll_handl > 0
  355. tv_func.getitem(ll_handl,tvi)
  356. tvi.statepictureindex = arg_statepictureindex
  357. tv_func.setitem(ll_handl,tvi)
  358. wf_clear_tvnext(ll_handl,arg_statepictureindex)
  359. ll_handl = tv_func.finditem(ChildTreeItem!,ll_handl)
  360. loop
  361. end subroutine
  362. public subroutine wf_clear_tvnext (long arg_handl, integer arg_statepictureindex);long ll_handl
  363. treeviewitem tvi
  364. ll_handl = arg_handl
  365. ll_handl = tv_func.finditem(NextTreeItem!,ll_handl)
  366. do while ll_handl > 0
  367. tv_func.getitem(ll_handl,tvi)
  368. tvi.statepictureindex = arg_statepictureindex
  369. tv_func.setitem(ll_handl,tvi)
  370. wf_clear_tvchild(ll_handl,arg_statepictureindex)
  371. ll_handl = tv_func.finditem(NextTreeItem!,ll_handl)
  372. loop
  373. end subroutine
  374. public subroutine wf_set_tvnext (long arg_handl);//====================================================================
  375. // Function: wf_find_childtree()
  376. //--------------------------------------------------------------------
  377. // Description:
  378. //--------------------------------------------------------------------
  379. // Arguments:
  380. // value long arg_handl
  381. // value long arg_state
  382. //--------------------------------------------------------------------
  383. // Returns: integer
  384. //--------------------------------------------------------------------
  385. // Author: yyx Date: 2004.11.18
  386. //--------------------------------------------------------------------
  387. // Modify History:
  388. //
  389. //====================================================================
  390. long ll_handl
  391. treeviewitem tvi
  392. ll_handl = arg_handl
  393. tv_func.getitem(ll_handl,tvi)
  394. tvi.StatePictureIndex = 1
  395. tv_func.setitem(ll_handl,tvi)
  396. ll_handl = tv_func.finditem(NextTreeItem!,ll_handl)
  397. do while ll_handl > 0
  398. wf_set_tvchild(ll_handl)
  399. ll_handl = tv_func.finditem(NextTreeItem!,ll_handl)
  400. loop
  401. end subroutine
  402. on w_system_window_ch.create
  403. this.cb_refresh=create cb_refresh
  404. this.cb_ch=create cb_ch
  405. this.tv_func=create tv_func
  406. this.cb_exit=create cb_exit
  407. this.r_bar=create r_bar
  408. this.ln_bar=create ln_bar
  409. this.ln_bar2=create ln_bar2
  410. this.Control[]={this.cb_refresh,&
  411. this.cb_ch,&
  412. this.tv_func,&
  413. this.cb_exit,&
  414. this.r_bar,&
  415. this.ln_bar,&
  416. this.ln_bar2}
  417. end on
  418. on w_system_window_ch.destroy
  419. destroy(this.cb_refresh)
  420. destroy(this.cb_ch)
  421. destroy(this.tv_func)
  422. destroy(this.cb_exit)
  423. destroy(this.r_bar)
  424. destroy(this.ln_bar)
  425. destroy(this.ln_bar2)
  426. end on
  427. event open;cb_refresh.triggerevent(clicked!)
  428. end event
  429. event key;If key = KeyEnter! Or Key = KeyDownArrow! Then //
  430. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  431. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  432. Return 1
  433. End If
  434. end event
  435. event resize;ln_bar.endx = this.width
  436. ln_bar2.endx = this.width
  437. r_bar.width = this.width
  438. tv_func.width = this.width - 20
  439. tv_func.height = this.height - 350
  440. end event
  441. event close;CLOSEWITHRETURN(THIS,cur_mainid)
  442. end event
  443. type cb_refresh from uo_imflatbutton within w_system_window_ch
  444. integer width = 165
  445. integer height = 164
  446. integer taborder = 180
  447. string text = "刷新"
  448. string normalpicname = "refresh.bmp"
  449. integer picsize = 16
  450. toolbaralignment pic_align = alignattop!
  451. boolean border = false
  452. end type
  453. event clicked;call super::clicked;
  454. wf_build_functree()
  455. end event
  456. type cb_ch from uo_imflatbutton within w_system_window_ch
  457. integer x = 165
  458. integer width = 165
  459. integer height = 164
  460. integer taborder = 50
  461. string text = "选择"
  462. string normalpicname = "ok.bmp"
  463. integer picsize = 16
  464. toolbaralignment pic_align = alignattop!
  465. boolean border = false
  466. end type
  467. event clicked;call super::clicked;Long ll_getitem,ll_newhandle
  468. s_sys_func ls_s_func
  469. TreeViewItem ltvi_Item
  470. IF il_handle <= 0 THEN
  471. MessageBox("系统提示","请选择系统窗口")
  472. RETURN
  473. END IF
  474. ll_getitem = tv_func.GetItem(il_handle, ltvi_Item)
  475. IF ll_getitem <= 0 THEN
  476. MessageBox("系统提示","请选择系统窗口")
  477. RETURN
  478. END IF
  479. ls_s_func = ltvi_Item.Data
  480. IF ls_s_func.functype <> 8 THEN
  481. MessageBox("系统提示","当前选择不是系统窗口")
  482. RETURN
  483. END IF
  484. cur_mainid = ls_s_func.mainid
  485. close(parent)
  486. end event
  487. type tv_func from treeview within w_system_window_ch
  488. integer y = 184
  489. integer width = 3109
  490. integer height = 1432
  491. integer taborder = 20
  492. integer textsize = -9
  493. integer weight = 400
  494. fontcharset fontcharset = gb2312charset!
  495. fontpitch fontpitch = variable!
  496. string facename = "宋体"
  497. long textcolor = 33554432
  498. borderstyle borderstyle = stylelowered!
  499. boolean linesatroot = true
  500. boolean disabledragdrop = false
  501. boolean hideselection = false
  502. boolean tooltips = false
  503. string picturename[] = {"application.ico","graphics\Shell32 005.ico","graphics\blue folder.ico","graphics\Shell32 025.ico","Custom029!"}
  504. long picturemaskcolor = 536870912
  505. long statepicturemaskcolor = 536870912
  506. end type
  507. event clicked;int ls_state
  508. treeviewitem tvi
  509. tv_func.getitem(handle,tvi)
  510. ls_state = tvi.StatePictureIndex
  511. if handle > 0 then
  512. if ls_state = 2 then //孩子全部取消
  513. wf_set_tvchild(handle)
  514. elseif ls_state = 1 then//父亲选定
  515. wf_set_tvparent(handle)
  516. end if
  517. il_handle = handle
  518. end if
  519. end event
  520. event rightclicked;//IF Handle <= 0 THEN RETURN
  521. //il_handle = Handle
  522. //m_popup om_1
  523. //om_1 = CREATE m_popup
  524. ////把菜单的anyobject指向被右击的对象(dw_1)
  525. //om_1.anyobject = THIS
  526. ////om_1.setmenuitem("添加子项|添加兄弟|编辑|-|删除")
  527. ////可在此调用om_1.setitemdisable(itemorder)函数disable某菜单项。
  528. //om_1.popupmenu(THIS.X+THIS.PointerX(),THIS.Y+THIS.PointerY())
  529. //
  530. //DESTROY om_1
  531. //
  532. end event
  533. event doubleclicked;Long ll_getitem,ll_newhandle
  534. s_sys_func ls_s_func
  535. TreeViewItem ltvi_Item
  536. il_handle = Handle
  537. IF il_handle > 0 THEN
  538. ll_getitem = tv_func.GetItem(il_handle, ltvi_Item)
  539. IF ll_getitem > 0 THEN
  540. ls_s_func = ltvi_Item.Data
  541. IF ls_s_func.functype = 8 THEN
  542. cur_mainid = ls_s_func.mainid
  543. Close(PARENT)
  544. END IF
  545. END IF
  546. END IF
  547. end event
  548. type cb_exit from uo_imflatbutton within w_system_window_ch
  549. integer x = 329
  550. integer width = 165
  551. integer height = 164
  552. integer taborder = 170
  553. boolean bringtotop = true
  554. string text = "退出"
  555. string normalpicname = "exit.bmp"
  556. integer picsize = 16
  557. toolbaralignment pic_align = alignattop!
  558. boolean border = false
  559. end type
  560. event clicked;call super::clicked;close(parent)
  561. end event
  562. type r_bar from rectangle within w_system_window_ch
  563. long linecolor = 16777215
  564. integer linethickness = 4
  565. long fillcolor = 1073741824
  566. integer x = 1257
  567. integer width = 146
  568. integer height = 68
  569. end type
  570. event constructor;this.fillcolor = 14215660
  571. this.linecolor = 14215660
  572. this.x = -1
  573. this.y = -1
  574. this.height = ln_bar.beginy - 5
  575. end event
  576. type ln_bar from line within w_system_window_ch
  577. long linecolor = 268435456
  578. integer linethickness = 4
  579. integer beginy = 168
  580. integer endx = 1481
  581. integer endy = 168
  582. end type
  583. type ln_bar2 from line within w_system_window_ch
  584. long linecolor = 16777215
  585. integer linethickness = 4
  586. integer beginy = 172
  587. integer endx = 1513
  588. integer endy = 172
  589. end type