明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7705|回复: 17

DCL对话框鼠标双击添加、删除

[复制链接]
发表于 2014-5-2 16:27 | 显示全部楼层 |阅读模式
在DCL对话框中经常用到双击列表框中的对象添加到另外的列表框中,和双击列表框中的内容删除之!希望高手帮忙改改使得更通用、方便!
;;使用样例  (action_tile "List1" "(tt22 $value)")
;;keys1  keys2 "List2" 这几个根据使用的实际对话框来改变
(defun tt22(vvs)
  (cond((= $reason 4)
        (setq keys2(sjtjdzdlbk keys1 keys2 "List2"))
        )
       ((= $reason 1)())
  );;cond
)

;;功能  双击下拉列表1中的内容添加到指定下拉列表中
;;lst  下拉列表1中的列表内容 如 (setq lst '("线宽种类" "倒角种类" "填充种类"))
;;lst1  指定下拉列表内容
;;key  指定下拉列表的key值
(defun sjtjdzdlbk(lst lst1 key / sjtjdzdlbk-1);;(sjtjdzdlbk 双击添加到指定列表框)
  (setq sjtjdzdlbk-1(nth(atoi vvs)lst))
  (setq lst1(cons sjtjdzdlbk-1 lst1))
  (start_list key)
  (mapcar 'add_list lst1)
  (end_list)
  lst1
)
  1. ;;使用样例  (action_tile "List1" "(tt22 $value)")
  2. ;;keys1  keys2 "List2" 这几个根据使用的实际对话框来改变
  3. (defun tt22(vvs)
  4.   (cond((= $reason 4)
  5.   (setq keys2(sjtjdzdlbk keys1 keys2 "List2"))
  6.   )
  7.        ((= $reason 1)())
  8.   );;cond
  9. )

  10. ;;功能  双击下拉列表1中的内容添加到指定下拉列表中
  11. ;;lst  下拉列表1中的列表内容 如 (setq lst '("线宽种类" "倒角种类" "填充种类"))
  12. ;;lst1  指定下拉列表内容
  13. ;;key  指定下拉列表的key值
  14. (defun sjtjdzdlbk(lst lst1 key / sjtjdzdlbk-1);;(sjtjdzdlbk 双击添加到指定列表框)
  15.   (setq sjtjdzdlbk-1(nth(atoi vvs)lst))
  16.   (setq lst1(cons sjtjdzdlbk-1 lst1))
  17.   (start_list key)
  18.   (mapcar 'add_list lst1)
  19.   (end_list)
  20.   lst1
  21. )


  22. ;;使用样例  (action_tile "List1" "(list_sjsc $value)")
  23. (defun list_sjsc(vvs);;(list_sjsc 下拉列表双击删除)
  24.   (cond((= $reason 4)
  25.   (setq keys1(sjsc_list "List1" keys1));;不要这句把下面progn这段撤销注释同样效果
  26. ;;;   (progn    ;;用这段的话就可以不要sjsc_list这个子程序
  27. ;;;     (setq list_sjsc-1 (atoi(get_tile "List1")))
  28. ;;;     (setq list_sjsc-2(MJ:removeNth list_sjsc-1 keys1))
  29. ;;;     (setq keys1 list_sjsc-2)
  30. ;;;     (dcl_lbfz "List1" keys1)
  31. ;;;   )
  32.        )
  33.        (= $reason 1())
  34.   );;cond
  35. );;defun

  36. ;;131.2 [功能] 从列表中删除指定的第n个元素
  37. ;;index 要删除的第几个元素
  38. ;;lst 列表
  39. (defun MJ:removeNth (index lst / c)
  40.   (setq c -1)
  41.   (apply 'append
  42.    (mapcar '(lambda (x)
  43.         (if  (/= (setq c (1+ c)) index)
  44.           (list x)
  45.         )
  46.       )
  47.      lst
  48.    )
  49.   )
  50. )

  51. ;;函数说明
  52. ;;key  控件的key值(字符串)
  53. ;;lst  列表
  54. (defun dcl_lbfz(key lst)
  55.   (start_list key);直列表 {"List4"} 初始化
  56.   (mapcar 'add_list lst);添加列表项
  57.   (end_list)
  58. )

  59. ;;函数功能  双击删除下拉列表中的元素
  60. ;;函数说明
  61. ;;调用方式 (setq lst(sjsc_list key lst))
  62. ;;例子 (setq keys1(sjsc_list "List1" keys1))
  63. ;;key 控件的key值
  64. ;;lst 赋予下拉列表控件的表
  65. ;;lst 值 样例 (setq lst '("1" "2" "3" "4" "5" "9" "6" "8" "7"))
  66. (defun sjsc_list(key lst / list_sjsc-1)
  67.   (setq list_sjsc-1(atoi(get_tile key)))
  68.   (setq lst(MJ:removeNth list_sjsc-1 lst))
  69.   (start_list key)
  70.   (mapcar 'add_list lst)
  71.   (end_list)
  72.   lst
  73. ;;;  (dcl_lbfz key lst)
  74. )

本帖子中包含更多资源

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

x
发表于 2020-5-5 10:23 | 显示全部楼层
找这个找了很久   试一下效果怎么样   非常感谢分享
发表于 2019-10-7 14:44 | 显示全部楼层

虽然不明白,努力学习中。。。,楼主辛苦,支持原创
发表于 2023-1-17 22:02 | 显示全部楼层
学习中,双击的确有用
发表于 2014-5-6 07:02 | 显示全部楼层
虽然不明白,努力学习中。。。,楼主辛苦,支持原创
发表于 2014-5-7 22:37 | 显示全部楼层
不错~ 收藏备用~
发表于 2014-5-10 11:14 | 显示全部楼层
太有用了,顶起来,
发表于 2014-5-13 15:55 | 显示全部楼层
比较厉害
发表于 2014-11-28 23:47 | 显示全部楼层
正在学习  感谢分享,收藏了.
发表于 2014-12-2 20:36 来自手机 | 显示全部楼层
右边对话框可以点着拖拽来调整上下位置就更美妙了
 楼主| 发表于 2014-12-3 12:37 | 显示全部楼层
ymcui 发表于 2014-12-2 20:36
右边对话框可以点着拖拽来调整上下位置就更美妙了

你可以自己弄在指定位置加入!拖动倒是真不会!
发表于 2015-1-23 11:31 | 显示全部楼层
太有用了,顶起来
发表于 2015-2-2 23:30 | 显示全部楼层
........................
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-3-29 23:11 , Processed in 0.216193 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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