找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2096|回复: 5

[对话框] (XD::DCL:EditBoxAction)编辑框控件定义

[复制链接]
发表于 2014-10-6 21:13:09 | 显示全部楼层 |阅读模式
函数发布
函数名称: XD::DCL:EditBoxAction
调用格式: (XD::DCL:EditBoxAction klst syml)
参数说明: klst -- 控件名或控件列表
syml -- 变量名或变量名表
返回值:
函数简介: 编辑框控件定义
函数来源: 原创
函数作者: Free-Lance
适用版本: 不限 
最后更新时间: 2014-10-06
备注: -
演示图片: -

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

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

×

  1. (defun XD::DCL:EditboxAction (klst syml)
  2.   (if (listp syml)
  3.     (mapcar '(lambda (x y)
  4.                (set_tile x (vl-princ-to-string (vl-symbol-value y)))
  5.                (action_tile
  6.                  x
  7.                  (strcat "(setq " (vl-symbol-name y) " $value)")
  8.                )
  9.              )
  10.             klst
  11.             syml
  12.     )
  13.     (progn
  14.       (set_tile klst (vl-symbol-value syml))
  15.       (action_tile
  16.         klst
  17.         (strcat "(setq " (vl-symbol-name syml) " $value)")
  18.       )
  19.     )
  20.   )
  21. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2014-10-6 21:14:02 | 显示全部楼层
Sample
  1. (defun c:tt (/ strl fn id)
  2.   (setq        strl '("temp:dialog {"
  3.                " label = \"toggle test\";"
  4.                " : row {"
  5.                "  : boxed_column {"
  6.                "    label = \"Params\";"
  7.                "    :edit_box { label = \"文字1\"; key = \"k1\";}"
  8.                "    :edit_box { label = \"数字1\"; key = \"k2\";}"
  9.                "    :edit_box { label = \"文字2\"; key = \"k3\";}"
  10.                "    }"
  11.                "  : boxed_radio_column {"
  12.                "    label = \"选项\";"
  13.                "    :edit_box { label = \"数字2\"; key = \"k4\";}"
  14.                "    :edit_box { label = \"数字3\"; key = \"k5\";}"
  15.                "    :edit_box { label = \"文字3\"; key = \"k6\";}"
  16.                "    }"
  17.                "  }"
  18.                " ok_cancel;"
  19.                " errtile;}"
  20.               )
  21.         fn   (xd::dcl:make strl) ;_写出 DCL
  22.         id   (xd::dcl:load fn "temp") ;_加载 DCL
  23.         txt1 "one"
  24.         txt2 "two"
  25.         txt3 "three"
  26.         num1 100.
  27.         num2 200.
  28.         num3 300.
  29.   )
  30.   (XD::DCL:numEditBoxAction
  31.     '("k2" "k4" "k5") ;_控件名
  32.     '(num1 num2 num3) ;_变量名表
  33.   ) ;_定义 数字格式 edit_box
  34.   (XD::DCL:EditBoxAction
  35.     '("k1" "k3" "k6") ;_控件名
  36.     '(txt1 txt2 txt3) ;_变量名表
  37.   ) ;_ string 格式获取
  38.   (if (= (xd::dcl:start id fn) 1)
  39.     (progn
  40.       (foreach x (list txt1 txt2 txt3 num1 num2 num3)
  41.         (princ (strcat "\n" (vl-princ-to-string (type x)) " is "))
  42.         (princ x)
  43.       )
  44.     )
  45.   )
  46.   (princ)
  47. )
editbox.gif
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-6 22:47:18 | 显示全部楼层
本帖最后由 Free-Lancer 于 2014-10-6 22:49 编辑

经常用到数字获取,单独写一个
  1. (defun XD::DCL:numEditboxAction        (klst syml)
  2.   (if (listp syml)
  3.     (mapcar '(lambda (x y)
  4.                (set_tile x (vl-princ-to-string (vl-symbol-value y)))
  5.                (action_tile
  6.                  x
  7.                  (strcat "(XD::DCL:CheckIn $value \"数字\"  $key)"
  8.                          "(setq "
  9.                          (vl-symbol-name y)
  10.                          "(distof  $value))"
  11.                  )
  12.                )
  13.              )
  14.             klst
  15.             syml
  16.     )
  17.     (progn
  18.       (set_tile klst (vl-symbol-value syml))
  19.       (action_tile
  20.         klst
  21.         (strcat "(XD::DCL:CheckIn $value \"数字\"  $key)"
  22.                          "(setq "
  23.                          (vl-symbol-name syml)
  24.                          "(distof  $value))"
  25.                  )
  26.       )
  27.     )
  28.   )
  29. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2016-5-12 23:44:06 | 显示全部楼层
本帖最后由 nirs_674971560 于 2016-5-12 23:45 编辑

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

使用道具 举报

已领礼包: 201个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 201个

财富等级: 日进斗金

发表于 2018-8-9 09:48:53 | 显示全部楼层
怎么样使对话框变量的值下次使用时默认为上次输入的值呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 11:38 , Processed in 0.286617 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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