找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2169|回复: 4

[求助] Enter键修改文字内容

[复制链接]
发表于 2014-8-13 21:18:18 | 显示全部楼层 |阅读模式

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

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

×
DCL的源码:
er_dcl:dialog{
label="文字编辑";
initial_focus="edit_box_1";
spacer_1;
:edit_box{
label="文字内容";
key="edit_box_1";
edit_width=100;
}//end edit_box
spacer_1;
ok_cancel;
}//end dialog

LISP的源码:
(defun c:er()
  (setq duixiang (entget(car(entsel "\n 请选择需要修改的文字内容"))))
  (setq old_neirong (cdr(assoc 1 duixiang)))
  (setq dcl_id (load_dialog "useful"))
  (new_dialog "er_dcl" dcl_id)
  (set_tile "edit_box_1" old_neirong)
  (setq qishi (get_tile "edit_box_1"))
  (action_tile "accept" "(er_dcl_lisp_1)")
  (action_tile "edit_box_1" "(er_dcl_lisp_2)")
  (start_dialog)
  (unload_dialog dcl_id)
  (entmod new_duixiang)
  (princ)
  )
(defun er_dcl_lisp_1()
  (setq zuizhong (get_tile "edit_box_1"))
  (setq new_neirong_list (cons 1 zuizhong))
  (setq new_duixiang (subst new_neirong_list (cons 1 old_neirong) duixiang))
  (done_dialog dcl_id)
  ;(entmod new_duixiang)
  )
(defun er_dcl_lisp_2()
  (mode_tile "accept" 2)
  )


疑问:现在文字内容修改之后,需要按两下Enter键才能修改成功,怎么修改程序改成只需要按一下Enter键?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 10395个

财富等级: 富甲天下

发表于 2014-8-14 08:06:25 | 显示全部楼层
  1. er_dcl:dialog{
  2. label="文字编辑";
  3. initial_focus="edit_box_1";
  4. spacer_1;
  5. :edit_box{
  6. label="文字内容";
  7. key="edit_box_1";
  8. edit_width=100;
  9. is_default=true;
  10. }//end edit_box
  11. spacer_1;
  12. ok_cancel;
  13. }
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-8-14 08:21:16 | 显示全部楼层
虽然退出了这个DCL,但是为什么文字内容没有改变啊。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-8-14 08:22:06 | 显示全部楼层
思路有些问题,都改了下,自己对照着看看
  1. er_dcl:dialog
  2. {
  3.   label="文字编辑";
  4.   initial_focus="edit_box_1";
  5.   spacer_1;
  6.   : edit_box
  7.     {
  8.       label="文字内容";
  9.       key="edit_box_1";
  10.       edit_width=100;
  11.       allow_accept = true;//允许回车
  12.     }//end edit_box
  13.    spacer_1;
  14.    ok_cancel;
  15. }//end dialog

相应的 Lisp
  1. (defun c:er (/ e el str dcl_id nstr)
  2.   (if (and (setq e (car (entsel "\n选择文字: ")))
  3.            (setq el (entget e))
  4.            (= (cdr (assoc 0 el)) "TEXT")
  5.       )
  6.     (progn
  7.       (setq str           (cdr (assoc 1 el))
  8.             dcl_id (load_dialog "useful")
  9.       )
  10.       (new_dialog "er_dcl" dcl_id)
  11.       (set_tile "edit_box_1" str)
  12.       (action_tile
  13.         "accept"
  14.         "(setq nstr (get_tile \"edit_box_1\"))(done_dialog dcl_id)"
  15.       )
  16.       (action_tile
  17.         "edit_box_1"
  18.         "(setq nstr $value)"
  19.       )
  20.       (start_dialog)
  21.       (unload_dialog dcl_id)
  22.       (if (/= nstr str)
  23.         (entmod (subst (cons 1 nstr) (assoc 1 el) el))
  24.       )
  25.     )
  26.   )
  27.   (princ)
  28. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-8-14 08:36:16 | 显示全部楼层
这个LISP太难了,得好好复制下来研究一下哈哈。十二分感谢!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 21:59 , Processed in 0.224110 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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