找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1512|回复: 10

[编程申请] DCL动态输入

[复制链接]

已领礼包: 106个

财富等级: 日进斗金

发表于 2017-5-10 17:21:52 | 显示全部楼层 |阅读模式
悬赏188D豆未解决
如何才能做到自动得出总数.
比如(1+?=总数)?输入1总数自动变成2,在1后面再输入1相当(11)总数自动变成12
谢谢



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

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-5-10 17:51:29 | 显示全部楼层
用OPENDCL吧,免费的。DCL不行,没事件回调监控。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 496个

财富等级: 日进斗金

发表于 2017-5-12 11:00:50 | 显示全部楼层
本帖最后由 fangmin723 于 2017-5-12 11:06 编辑

在一个输入框输入数据后,按    回车   或   点击计算按钮   或   点击其他的输入框    就会计算总数!希望能帮到你!

  1. (defun c:tt();此部分是测试代码用
  2.         (jixuanqi_load)
  3. )
  4. ;-------------------------------------
  5. (defun jixuanqi_load(/ dcl_id dcl_file dialog_return keys key)
  6.         (vl-load-com)
  7.         (setq dcl_id (load_dialog (setq Dcl_File (Write_Dcl_jixuanqi))));对话框加载
  8.         (vl-file-delete Dcl_File);加载后删除DCL文件
  9.         (setq Dialog_Return 2)
  10.         (while (> Dialog_Return 1) ;循环控制对话框是否结束
  11.                 (new_dialog "jisuanqi" dcl_id);建立窗体
  12.         ;--->--->---对话框初始化--->--->---
  13.                 (setq keys '("befnum" "midnum" "endnum" "zero"));列表全部控件名称
  14.                 ;(action_tile "accept" "(done_dialog 1)")
  15.                 ;(action_tile "cancel" "(done_dialog 0)")
  16.                 (foreach key keys;全部控件的初始化
  17.                         ;(if (eval (read (strcat key "_bak"))) (set_tile key (eval (read (strcat key "_bak")))));控件内容
  18.                         (action_tile key "(Action_jixuanqi_Keys $key $value)");点击动作 $reason
  19.                 )
  20.         ;---<---<---对话框初始化完成---<---<---
  21.                 (setq Dialog_Return (start_dialog));开启对话框(用户可见)
  22.         )
  23.         (unload_dialog dcl_id);退出时卸载对话框
  24.         (cond
  25.                 ;((= Dialog_Return 1) (princ "\n确定"))
  26.                 ((= Dialog_Return 0) (princ "\n*取消*"))
  27.         )
  28.         (prin1);防止函数回显
  29. )
  30. ;-------------------------------------
  31. (defun Action_jixuanqi_Keys (key value);全部控件的点击动作触发
  32.         (cond
  33.                 ((= key "accept") ;{确认按钮}
  34.                         ()
  35.                         ;(Get_jixuanqi_Data)
  36.                         ;(done_dialog 1);对话框退出返回主函数 传递给Dialog_Return值为1
  37.                 )
  38.                 ((= key "zero") ;{确认按钮}
  39.                         (set_tile "befnum" "")
  40.                         (set_tile "midnum" "")
  41.                         (set_tile "endnum" "")
  42.                 )
  43.                 ((= key "cancel") ;{取消按钮}
  44.                         (done_dialog 0);对话框退出返回主函数 传递给Dialog_Return值为0
  45.                 )
  46.                 ((= key "befnum");{ } (输入框)
  47.                         (setq befnum (atof (get_tile "befnum")))
  48.                         (setq midnum (atof (get_tile "midnum")))
  49.                         (setq endnum (atof (get_tile "endnum")))
  50.                         (cond
  51.                                 ((and (/= befnum 0) (/= midnum 0)) (setq endnum (+ befnum midnum)) (set_tile "endnum" (rtos endnum)))
  52.                                 (T (set_tile "endnum" ""))
  53.                         )
  54.                 )
  55.                 ((= key "midnum");{ } (输入框)
  56.                         (setq befnum (atof (get_tile "befnum")))
  57.                         (setq midnum (atof (get_tile "midnum")))
  58.                         (setq endnum (atof (get_tile "endnum")))
  59.                         (cond
  60.                                 ((and (/= befnum 0) (/= midnum 0)) (setq endnum (+ befnum midnum)) (set_tile "endnum" (rtos endnum)))
  61.                                 (T (set_tile "endnum" ""))
  62.                         )
  63.                 )
  64.                 ((= key "endnum");{ } (输入框)
  65.                         (setq befnum (atof (get_tile "befnum")))
  66.                         (setq midnum (atof (get_tile "midnum")))
  67.                         (setq endnum (atof (get_tile "endnum")))
  68.                         (cond
  69.                                 ((and (/= befnum 0) (/= endnum 0) (= midnum 0)) (setq lsnum 1))
  70.                                 ((and (/= midnum 0) (/= endnum 0) (= befnum 0)) (setq lsnum 0))
  71.                         )
  72.                         (cond
  73.                                 ((= lsnum 1) (setq midnum (- endnum befnum)) (set_tile "midnum" (rtos midnum)))
  74.                                 ((= lsnum 0) (setq befnum (- endnum midnum)) (set_tile "befnum" (rtos befnum)))
  75.                         )
  76.                 )
  77.         )
  78. )
  79. ;-------------------------------------
  80. ;(defun Get_jixuanqi_Data( / key);临时生成Dcl文件 返回文件名
  81. ;        (foreach key keys
  82. ;                (set (read (strcat key "_bak")) (get_tile key));每个控件都赋给一个变量 用于下次开启初始化
  83. ;        )
  84. ;)
  85. ;-------------------------------------
  86. (defun Write_Dcl_jixuanqi(/ Dcl_File file str)
  87.         (setq Dcl_File (vl-filename-mktemp nil nil ".Dcl"))
  88.         (setq file (open Dcl_File "w"))
  89.         (foreach str '(
  90.                 "/*★★★★★ListDCL @ fsxm.mjtd.com★★★★★*/"
  91.                 ""
  92.                 "jisuanqi:dialog{"
  93.                 "    key = \"计算器\" ;"
  94.                 "    label = \"计算器\" ;"
  95.                 "    :row {"
  96.                 "        :edit_box {"
  97.                 "            key = \"befnum\" ;"
  98.                 "        }"
  99.                 "        :text {"
  100.                 "            label = \"+\" ;"
  101.                 "        }"
  102.                 "        :edit_box {"
  103.                 "            key = \"midnum\" ;"
  104.                 "        }"
  105.                 "        :text {"
  106.                 "            label = \"=\" ;"
  107.                 "        }"
  108.                 "        :edit_box {"
  109.                 "            key = \"endnum\" ;"
  110.                 "        }"
  111.                 "    }"
  112.                 "    :row {"
  113.                 "        :button {"
  114.                 "            key = \"zero\" ;"
  115.                 "            label = \"归零\" ;"
  116.                 "        }"
  117.                 "        :button {"
  118.                 "            key = \"accept\" ;"
  119.                 "            label = \"计算\" ;"
  120.                 "        }"
  121.                 "        :button {"
  122.                 "            is_cancel = true ;"
  123.                 "            key = \"cancel\" ;"
  124.                 "            label = \"取消\" ;"
  125.                 "        }"
  126.                 "    }"
  127.                 "}"
  128.                                                                 )
  129.                                                                 (write-line str file)
  130.         )
  131.         (close file)
  132.         Dcl_File
  133. )

评分

参与人数 2D豆 +15 收起 理由
ymcui2005 + 5 热心帮忙奖!
XDSoft + 10 热心帮忙奖!

查看全部评分

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

使用道具 举报

已领礼包: 106个

财富等级: 日进斗金

 楼主| 发表于 2017-5-12 14:02:45 | 显示全部楼层

非常感谢,但程序还有一点问题.无法运行( 错误: 参数太少),希望解决 谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 106个

财富等级: 日进斗金

 楼主| 发表于 2017-5-12 14:15:57 | 显示全部楼层

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

使用道具 举报

已领礼包: 496个

财富等级: 日进斗金

发表于 2017-5-12 15:50:05 | 显示全部楼层
本帖最后由 fangmin723 于 2017-5-12 15:55 编辑

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

使用道具 举报

已领礼包: 106个

财富等级: 日进斗金

 楼主| 发表于 2017-5-12 16:30:37 | 显示全部楼层

谢谢,我装个2012试试

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

使用道具 举报

已领礼包: 496个

财富等级: 日进斗金

发表于 2017-5-14 08:00:42 | 显示全部楼层

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

使用道具 举报

已领礼包: 106个

财富等级: 日进斗金

 楼主| 发表于 2017-5-15 13:55:19 来自手机 | 显示全部楼层
fangmin723 发表于 2017-5-14 08:00

CAD2006

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 12:32 , Processed in 0.188205 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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