乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 18|回复: 9

[编程交流] DCL输入规则

[复制链接]

6

主题

14

帖子

8

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 06:34:08 | 显示全部楼层 |阅读模式
亲爱的朋友们:,
 
我想学习如何应用编辑框输入规则。
例如,如果您只想接受以下格式的数字:
 
888.8.88
 
我该如何实施这一规则?
 
谢谢你,很抱歉我的英语不好。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 06:41:42 | 显示全部楼层
你是怎么找到你的旧线索的?
 
我们是在浪费时间和你在一起还是怎么了?
 
http://www.cadtutor.net/forum/showthread.php?79303-DCL帮助
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 06:48:32 | 显示全部楼层
尝试将此代码改写为您的西装:
  1. (defun C:NUMP   (/ dcl_id text pick)
  2.   
  3. (defun box_callback(text act)
  4. (if (member act (list 1 2))
  5.   (if  (not (wcmatch text "###.#.##" ))
  6.     (progn
  7. (set_tile "txt" (substr text 1 (1- (strlen text))))
  8. (alert "Wrong character removed, try again")
  9.       )
  10. )
  11. )
  12. )  
  13. (defun rem_blanks  (input)
  14.    (vl-list->string
  15.      (vl-remove 32
  16.       (vl-string->list input)
  17.   )
  18.      )
  19. )
  20.   
  21. (setvar "CMDECHO" 0)
  22. (setq dcl_id (load_dialog "NUMP.dcl"))
  23. (if (not (new_dialog "NUMP" dcl_id))
  24.    (exit))
  25. (action_tile
  26. "txt"
  27. "(box_callback $value $reason)"
  28. )
  29. (action_tile "accept" (strcat
  30.       "(progn "   
  31.    "(setq text (get_tile "txt"))"
  32.     "(done_dialog 1))"))
  33. (action_tile
  34.    "cancel"
  35.    "(done_dialog 2)")
  36. (setq pick (start_dialog))
  37. (unload_dialog dcl_id)
  38. (if (= pick 1)
  39.    (alert (strcat "You entered: " (rem_blanks text))))
  40. (setvar "CMDECHO" 1)
  41. (princ)
  42. )

 
//DCL
 
  1.    NUMP : dialog {
  2.   label = "Validate Text Input";
  3.   spacer;
  4.    :row {                                   
  5.    fixed_width = true;
  6.    : boxed_column {
  7.    label = " Enter numbers in format of  XXX.X.XX:";
  8.    fixed_width = true;
  9.    width=30;
  10.    : edit_box {
  11.    key = "txt";
  12.    initial_focus=true;
  13.    edit_width =29;
  14.    fixed_width_font =true;
  15.    }
  16.    spacer;
  17.    }
  18.    }
  19.    ok_cancel;
  20.    }  
回复

使用道具 举报

8

主题

159

帖子

153

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 06:59:54 | 显示全部楼层
加载附加文件,然后:
  1. (cd:DCL_StdEditBoxDialog
  2. (list 3
  3.    (list
  4.      (cons 1 "Enter real number")
  5.      (cons 2 "Number can't be a zero")
  6.      (cons 8 "Space not allowed")
  7.      (cons 16 "This is not a number")
  8.      (cons 32 "Number to small")
  9.      (cons 64 "Number to big")
  10.    )
  11.    "19" -100 100 2 2
  12. )
  13. "Level" "Enter level: (-100 < X < 100)" 40 13 (list "&Ok" "&Cancel") T nil
  14. )

克鲁格
CADPL-Pack-v1。lsp
回复

使用道具 举报

6

主题

14

帖子

8

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 07:06:11 | 显示全部楼层
塔瓦,这是给你的。
我知道我是这些编程冒险的新手,如果你认为你的问题需要浪费时间,我很抱歉。我不是程序员,我的英语也不好,但我想学习。我试着学习我的节奏。如果这让你不高兴,我很抱歉。
给我的朋友菲索和克鲁格。非常感谢您的帮助和一切。
拥抱。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 07:08:01 | 显示全部楼层
@克鲁格:您可能希望简化用作参数的列表的语法,以避免一些计算:
  1. '(3
  2. ((1  . "Enter real number")
  3.   (2  . "Number can't be a zero")
  4.   (8  . "Space not allowed")
  5.   (16 . "This is not a number")
  6.   (32 . "Number to small")
  7.   (64 . "Number to big"))
  8. "19" -100 100 2 2)
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 07:19:33 | 显示全部楼层
这个职位一定很有趣。
 
http://www.cadtutor.net/forum/showthread.php?76484-在DCL&p=516049&viewfull=1#post516049中是否可能
回复

使用道具 举报

8

主题

159

帖子

153

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 07:26:42 | 显示全部楼层
谢谢MSasu
 
再一个:
  1. (cd:DCL_StdEditBoxDialog
  2. '(1
  3.    (
  4.      (1  . "Empty string error")
  5.      (2  . "Invalid layer name")
  6.      (4  . "Layer already exist")
  7.      (8  . "Space not allowed")
  8.      (16 . "Layer do not match pattern")
  9.      (32 . "Number to small")
  10.    )
  11.    "" "LAYER" "??-???"
  12. )
  13. "Layer" "Enter layer name (format ##-###)" 40 13 (list "&Im sure" "&Leave window") T 6
  14. )
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-6 07:31:04 | 显示全部楼层
 
我认为,在提供帮助/建议/解决方案后,通常会给出某种反馈,至少是一句“谢谢”(正如你在上一篇文章中强调的那样),或者建议/帮助/解决方案是否足够。你的另一个线程请求帮助,而你提供了0个反馈。
 
您的反馈也为寻求类似解决方案的其他人提供了帮助。
回复

使用道具 举报

6

主题

14

帖子

8

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 07:38:57 | 显示全部楼层
我知道你充满了理性,我为此道歉。由于工作中的一次事故,我出现了一种影响认知能力的缺陷,这让我忘记了上个月学习的内容,但这是一个个人问题,我不会告诉你,因此我道歉并保证我不会问任何问题。要在这里写这些台词,我必须使用在线翻译,我希望这不会麻烦。
衷心感谢所有帮助过我的人。
直到永远。
 
R、 马修斯
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 18:24 , Processed in 0.515921 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表