乐筑天下

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

[编程交流] DCL输入-对话框帮助

[复制链接]

3

主题

5

帖子

2

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 07:46:31 | 显示全部楼层 |阅读模式
我有一个非常简单的例程,使用对话框进行用户输入(见下文)。有一个小问题,我相信已经涵盖其他地方,但我找不到答案。填写方框时出现以下问题:
[列表]
  • 用户完成输入框(默认值已经存在)。
  • 在“日程表插入点”下,用户选择一个点并进入主屏幕
  • 拾取点后,X:Y:Z:值即完成,但之前完成的框已恢复为默认值。
    对话框确实有效,但只有在从上到下完成时才有效。应该是这样吗?
     
    084634kyzyg3awxy22yq3z.jpg
  • 回复

    使用道具 举报

    35

    主题

    2471

    帖子

    2447

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    174
    发表于 2022-7-6 08:35:07 | 显示全部楼层
    在临时关闭点输入对话框之前,需要从字段中创建当前输入的列表,并在重新显示对话框时恢复这些输入,而不是默认值。
     
    不知道你的意思是什么-你是在说标签顺序吗?
    回复

    使用道具 举报

    3

    主题

    5

    帖子

    2

    银币

    初来乍到

    Rank: 1

    铜币
    15
    发表于 2022-7-6 08:48:04 | 显示全部楼层
     
    没有。基本上,输入框的数据不会被忘记,我一直在从上到下的对话框中工作。
     
    你能详细阐述一下关于当前输入列表的观点吗?何处会加上这个?
     
    1. (defun selch ()
    2. (setq dcl_id (load_dialog "schdialog.dcl"))
    3. (while (> flag 2)
    4. (if (not (new_dialog "schdialog" dcl_id))
    5.    (exit)
    6. )
    7. (set_tile "eb1" ptx)
    8. ;display x value
    9. (set_tile "eb2" pty)
    10. ;display y value
    11. (set_tile "eb3" ptz)
    12. ;display z value
    13. (action_tile
    14.    "cancel"      ;if cancel button pressed
    15.    "(done_dialog) (setq flag 0)"  ;close dialog, set flag
    16.    );action_tile
    17. (action_tile
    18.    "accept" ;if O.K. pressed
    19.    (strcat
    20.      "(progn         
    21.       (setq chtp (get_tile "gp_prefix"))"
    22.      "(setq chn (get_tile "gp_start"))"
    23.      "(setq col (get_tile "gp_col"))"
    24.      "(setq seqy (atof (get_tile "gp_freq")))"
    25.      "(setq ans (get_tile "tfile"))"
    26.      "(setq fnam (get_tile "tfilen"))"
    27.      "(setq sel (atof (get_tile "selc")))"
    28.      "(done_dialog) (setq userclick T))"
    29.     ); strcat
    30. ); action
    31.   (action_tile
    32.    "picker"
    33.    "(done_dialog 4)"
    34. )
    35. ;if pick button selected, hide the dialogue
    36. ;and set the flag to 4
    37. (setq flag (start_dialog))
    38. ;start the dialogue and set flag
    39. ;to value of start dialogue
    40. (if (and (= ptx "0")(/= flag 0)) ;(= flag 4)
    41. ;if the pick button was selected
    42.    (progn
    43.    ;do the following
    44.      (setq selpoint (getpoint "\nSchedule Insertion Point: "))
    45.      ;get the insertion point
    46.      (setq ptx (rtos (car selpoint) 2 4))
    47.      ;get the x value
    48.      (setq pty (rtos (cadr selpoint) 2 4))
    49.      ;get the y value
    50.      (setq ptz (rtos (caddr selpoint) 2 4))
    51.      ;get the z value
    52.      (setq pnt selpoint)
    53. (command "text" "tl" pnt "" "" "Reference")
    54. (setq ts (getvar "textsize"))
    55. (setq xc (* ts 5))
    56. (setq chp (car pnt))
    57. (setq xcc (* xc 2))
    58. (setq cha (+ xcc chp))
    59. (setq chb (cadr pnt))
    60. (setq chp (list cha chb))
    61. (command "text" "tl" chp "" "" "Easting")
    62. (setq xc (* ts 4.5))
    63. (setq cht (car chp))
    64. (setq xcc (* xc 2))
    65. (setq chx (+ xcc cht))
    66. (setq chy (cadr pnt))
    67. (setq cht (list chx chy))
    68. (command "text" "tl" cht "" "" "Northing")
    69.    );progn
    70.    );if
    71.      );while
    72. (start_dialog)
    73. (unload_dialog dcl_id)  ;unload
    74. (princ)
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-9 22:00 , Processed in 0.669525 second(s), 61 queries .

    © 2020-2025 乐筑天下

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