找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3018|回复: 7

[教学] DCL 操作类

[复制链接]
发表于 2014-8-23 12:54:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 Free-Lancer 于 2014-8-23 14:14 编辑

lib.vlx 已包含
  1. ;; 填充列表
  2. ;; key ---   key
  3. ;; val ---   list
  4. ;; item ---  默认值
  5. (defun DCL:AddList (key val item)
  6.   (start_list key)
  7.   (foreach n val
  8.     (add_list n)
  9.   )
  10.   (end_list)
  11.   (set_tile key (itoa item))
  12. )
  13. ;;填充 slide
  14. ;; key   ----- key
  15. ;; sldname --- slide name
  16. ;; color   --- color (int)
  17. (defun DCL:SlideImage (key sldname color / x y)
  18.   (setq        x (dimx_tile key)
  19.         y (dimy_tile key)
  20.   )
  21.   (start_image key)
  22.   (fill_image 0 0 x y color)
  23.   (slide_image 0 0 x y sldname)
  24.   (end_image)
  25. )
  26. ;;单色
  27. ;;key ------ key
  28. ;;color ---- color (int)
  29. (defun DCL:ImageFillColor (key color)
  30.   (setq        x (dimx_tile key)
  31.         y (dimy_tile key)
  32.   )
  33.   (start_image key)
  34.   (fill_image 0 0 x y color)
  35.   (slide_image 0 0 x y key)
  36.   (end_image)
  37.   (mode_tile key 1)
  38. )
  39. ;;禁用 Image button
  40. ;; key ---- key
  41. (defun DCL:ImageCrlDisable (key)
  42.   (mapcar
  43.     '(lambda (x)
  44.        (dcl:ImageFillColor x 253)
  45.      )
  46.     key
  47.   )
  48. )
  49. ;;启用控件
  50. ;;clist ---  key list
  51. (defun dcl:CtrlEnable (clist)
  52.   (mapcar
  53.     '(lambda (x)
  54.        (mode_tile x 0)
  55.      )
  56.     clist
  57.   )
  58. )
  59. ;;禁用控件
  60. ;;clist ---  key list
  61. (defun dcl:CtrlDisable (clist)
  62.   (mapcar
  63.     '(lambda (x)
  64.        (mode_tile x 1)
  65.      )
  66.     clist
  67.   )
  68. )
  69. ;;清空 errtile 控件显示
  70. (defun DCL:RsError ()
  71.   (set_tile "error" "")
  72. )
  73. ;;设置 errtile 控件 文字
  74. ;;var ----- string
  75. (defun DCL:SetError        (val)
  76.   (dcl:RsError)
  77.   (set_tile "error" val)
  78. )
  79. ;;检查输入格式(数字)
  80. ;;input  ---- $value
  81. ;;format ---- string
  82. ;;kk     ---- key
  83. (defun DCL:CheckIn (input format kk /)
  84.   (if (and (distof input 2) (> (atof input) 0))
  85.     (progn (dcl:RsError) input)
  86.     (progn
  87.       (dcl:SetError (strcat "无效的" format "输入"))
  88.       (mode_tile kk 2)
  89.       nil
  90.     )
  91.   )
  92. )
  93. ;; Radio 组 Action
  94. ;; keylst ---- radio key list
  95. ;; def    ---- key
  96. (defun Dcl:RadioAction (keylst def / action)
  97.   (defun actionx ()
  98.     (mapcar '(lambda (x)
  99.                (if (= x def)
  100.                  (set_tile x "1")
  101.                  (set_tile x "0")
  102.                )
  103.              )
  104.             keylst
  105.     )
  106.   )
  107.   (foreach x keylst
  108.     (action_tile x "(actionx)")
  109.   )
  110. )
  111. ;;初始化 Radio 组
  112. ;; keylst ---- radio key list
  113. ;; def    ---- key
  114. (defun DCL:RadioInit (keylst def)
  115.   (mapcar '(lambda (x)
  116.              (if (= x def)
  117.                (set_tile x "1")
  118.                (set_tile x "0")
  119.              )
  120.            )
  121.           keylst
  122.   )
  123. )
  124. ;;获取 Radio 组的选中 key
  125. ;;keylst ----- radio key list
  126. (defun DCL:RadioStatus (keylst)
  127.   (car
  128.     (vl-remove-if '(lambda (x) (= (get_tile x) "0")) keylst)
  129.   )
  130. )
  131. ;;=============================================================
  132. ;;获取 控件 值
  133. ;;lst ---- key list
  134. (defun DCL:Gettile (lst)
  135.   (mapcar '(lambda (x)
  136.              (get_tile x)
  137.            )
  138.           lst
  139.   )
  140. )
  141. ;;批量设置控件值
  142. ;;kl  ------ key list
  143. ;;pl  ------ list
  144. (defun DCL:Settile (kl pl)
  145.   (mapcar '(lambda (x y)
  146.              (set_tile x y)
  147.            )
  148.           kl
  149.           pl
  150.   )
  151. )
  152. ;;;=============================================================
  153. ;;将DCL表写出文件
  154. (defun DCL:Make (lst / flname ofile)
  155.   (setq        FlName (vl-filename-mktemp (strcat "FYDCL" ".dcl"))
  156.         oFile  (open FlName "w")
  157.   )
  158.   (foreach fStream lst (write-line fStream oFile)) ;写入文件
  159.   (close oFile) ;_关闭文档
  160.   flname
  161. )
  162. ;;加载 DCL 文件
  163. (defun DCL:Load (flname na / id)
  164.   (setq id (load_dialog FlName))
  165.   (if (not (new_dialog na id ""))
  166.     (progn (alert "对话框加载失败!") (exit))
  167.   )
  168.   id
  169. )

评分

参与人数 2D豆 +15 收起 理由
xshrimp + 5 很给力!经验;技术要点;资料分享奖!
炫翔 + 10 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2014-8-23 13:19:37 | 显示全部楼层
DCL  编写推荐用 飞诗 版主这个编辑器ListDCLediter,直观,省得自己码代码

listdclediter.jpg

ListDCLediter.rar

31.03 KB, 下载次数: 84, 下载积分: D豆 -1 , 活跃度 1

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

发表于 2014-8-23 13:48:49 | 显示全部楼层
本帖最后由 lucas3 于 2014-8-23 14:10 编辑

谢谢大师,分享,飞诗的编辑器很早接触过,只是不太会用,
大师的第一个贴里面的代码格式出了问题,可能跟表情符号有关,就自动认为是表情符号了,
  1. ;;加载 DCL 文件
  2. (defun DCL<img src="static/image/smiley/default/sweat.gif" smilieid="10" border="0" alt="" />oad (flname na / id)
  3.   (setq id (load_dialog FlName))
  4.   (if (not (new_dialog na id ""))
  5.     (progn (alert "对话框加载失败!") (exit))
  6.   )
  7.   id
  8. )

建议直接上传文件或者使用代码格式中使用空格分开
  1. ;;加载 DCL 文件
  2. (defun DCL:load (flname na / id)
  3.   (setq id (load_dialog FlName))
  4.   (if (not (new_dialog na id ""))
  5.     (progn (alert "对话框加载失败!") (exit))
  6.   )
  7.   id
  8. )


像大写的L:L就是认为是汗水符号,换一个小写就没事了

点评

谢谢提醒,已修改,勾选“禁用表情”即可  详情 回复 发表于 2014-8-23 14:17

评分

参与人数 1D豆 +5 收起 理由
炫翔 + 5 技术引导讨论和指点奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-23 14:17:33 | 显示全部楼层
lucas3 发表于 2014-8-23 13:48
谢谢大师,分享,飞诗的编辑器很早接触过,只是不太会用,
大师的第一个贴里面的代码格式出了问题,可能跟 ...

谢谢提醒,已修改,勾选“禁用表情”即可

评分

参与人数 1D豆 +4 收起 理由
xtdwynij + 4 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-8-23 22:15:15 | 显示全部楼层
从楼主这学到了不少东西!感谢!顶起!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-8-24 07:13:19 | 显示全部楼层
{:soso_e179:}总有惊喜
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

发表于 2014-8-25 10:24:06 | 显示全部楼层
前些日子学了对话框。呵呵  感谢楼主贡献的工具。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 48个

财富等级: 招财进宝

发表于 2017-12-10 07:55:47 来自手机 | 显示全部楼层
谢谢楼主分享,DCL操作类函数汇总
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-27 04:01 , Processed in 0.241514 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表