乐筑天下

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

[编程交流] 警报输入框

[复制链接]

20

主题

95

帖子

75

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 10:02:20 | 显示全部楼层 |阅读模式
我搜索了我能找到的和找不到的答案。是否有一个类似于“alert”的LISP函数,但它不只是弹出框,而是让用户在那里输入一些东西(而不是在LISP中使用“prompt”?
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 10:14:40 | 显示全部楼层
您可以使用DCL/ODCL或查看DosLib,它有几个输入“警报”样式框。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:24:08 | 显示全部楼层
我觉得写一个例子很有趣:
 
  1. (defun PromptBox ( title msg / dcl dch file val )
  2. ;; ------------------------------------------- ;;
  3. ;; Arguments:-                                 ;;
  4. ;; ------------------------------------------- ;;
  5. ;; title - Dialog Box Title                    ;;
  6. ;; msg   - [Optional] Text to Display          ;;
  7. ;; ------------------------------------------- ;;
  8. ;; Returns:-                                   ;;
  9. ;; ------------------------------------------- ;;
  10. ;; Entered String if user presses OK, else nil ;;
  11. ;; ------------------------------------------- ;;
  12. ;; Example by Lee Mac 2010  -  www.lee-mac.com ;;
  13. ;; ------------------------------------------- ;;
  14. (cond
  15.    (
  16.      (not
  17.        (and
  18.          (setq dcl  (vl-filename-mktemp nil nil ".dcl"))
  19.          (setq file (open dcl "w"))
  20.          (progn
  21.            (write-line
  22.              (strcat
  23.                "promptbox : dialog { label = "" title ""; initial_focus = "txt"; spacer;"
  24.                ": edit_box { key = "txt"; edit_width = 60; edit_limit = 2048; allow_accept = true; } spacer; ok_cancel; }"
  25.              )
  26.              file
  27.            )
  28.            (setq file (close file))
  29.            (findfile dcl)
  30.          )
  31.        )
  32.      )
  33.    )
  34.    (
  35.      (<= (setq dch (load_dialog dcl)) 0)
  36.      (vl-file-delete dcl)
  37.    )
  38.    (
  39.      (not (new_dialog "promptbox" dch))
  40.      (unload_dialog dch)
  41.      (vl-file-delete dcl)
  42.    )
  43.    (t
  44.      (if msg (setq val (set_tile "txt" msg)))
  45.      (action_tile "txt" "(setq val $value)")
  46.      (if (zerop (start_dialog)) (setq val nil))
  47.      (unload_dialog dch)
  48.      (vl-file-delete dcl)
  49.    )
  50. )
  51. val
  52. )
或者:
 
回复

使用道具 举报

20

主题

95

帖子

75

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 10:36:59 | 显示全部楼层
好的,我试试。谢谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:45:55 | 显示全部楼层
 
非常欢迎JMerch-如果对代码有任何问题,请提问
回复

使用道具 举报

20

主题

95

帖子

75

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 10:55:16 | 显示全部楼层
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:06:34 | 显示全部楼层
 
You're very welcome JMerch - any questions about the code, just ask
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 00:10 , Processed in 0.723710 second(s), 66 queries .

© 2020-2025 乐筑天下

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