乐筑天下

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

[编程交流] 灰显弹出列表

[复制链接]

55

主题

243

帖子

188

银币

后起之秀

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

铜币
275
发表于 2022-7-6 09:33:58 | 显示全部楼层 |阅读模式
嗨,我有一个对话框,有2个单选按钮和3个弹出列表
 
我在灰显弹出列表时遇到问题。
 
当选择一个单选按钮(横向坡度)时,我希望“横向坡度”弹出列表清晰,其他两个按钮,即“左外倾角%和右外倾角%变灰”。
 
当选择“外倾角”单选按钮时,“外倾角%左”和“外倾角%右”弹出列表清晰,“横向坡度”变灰。
 
任何人都有一个解决方案,而不改变我的dcl功能太多-因为我或多或少了解它。
非常感谢
 
  1. (defun c:greytest (/)
  2. (setq ONOFF "0")
  3. (greytestdcl)
  4. )
  5.       
  6. (defun greytestdcl (/  ReturnValue  GradTypeTile)
  7. (defun CheckOnClose (/ )
  8. (cond
  9. ((not(setq GradTypeTile (get_tile "GradType")))
  10. (mode_tile "GradType" 2)
  11. )
  12.   (T
  13. (setq
  14.     XFallLhs     (nth (read (get_tile "XFallLhs"  ))XFallLhsList)
  15.     XFallRhs     (nth (read (get_tile "XFallRhs"  ))XFallRhsList)
  16.     XFall        (nth (read (get_tile "XFall"      ))XFallList)
  17. );setq
  18. (done_dialog 1)
  19. );T
  20. );cond
  21. );defun CheckOnClose
  22. (if (> (setq DLGID (load_dialog "greytest.dcl")) 0)
  23. (progn
  24. (new_dialog "greytest" DLGID)
  25. (setq XFallLhsList '( "0.5" "1.0" "1.5" "2.0" "2.5" "3.0" "3.5" "4.0" ))
  26. (start_list "XFallLhs")
  27. (mapcar 'add_list   XFallLhsList)
  28. (end_list)
  29. (if (member XFallLhs XFallLhsList)
  30. (set_tile "XFallLhs" (rtos (vl-position XFallLhs XFallLhsList) 2 0))
  31. (set_tile "XFallLhs" "3")
  32. );if
  33. (setq XFallRhsList '( "0.5" "1.0" "1.5" "2.0" "2.5" "3.0" "3.5" "4.0" ))
  34. (start_list "XFallRhs")
  35. (mapcar 'add_list   XFallrhsList)
  36. (end_list)
  37. (if (member XFallRhs XFallRhsList)
  38. (set_tile "XFallRhs" (rtos (vl-position XFallRhs XFallRhsList) 2 0))
  39. (set_tile "XFallRhs" "3")
  40. );if
  41. (setq XFallList '( "0.5" "1.0" "1.5" "2.0" "2.5" "3.0" "3.5" "4.0" ))
  42. (start_list "XFall")
  43. (mapcar 'add_list   XFallList)
  44. (end_list)
  45. (if (member XFall XFallList)
  46. (set_tile "XFall" (rtos (vl-position XFall XFallList) 2 0))
  47. (set_tile "XFall" "3")
  48. );if
  49. (action_tile "XFallLhs" "(ErrorDLG 0)")
  50. (action_tile "XFallRhs" "(ErrorDLG 0)")
  51. (action_tile "XFall" "(ErrorDLG 0)")
  52. (action_tile "onoff" "(setq onoff $value)(onf)")
  53. (action_tile "accept" "(CheckOnClose)")
  54. (action_tile "cancel" "(exit)")
  55. (if (= ONOFF "1")
  56. (set_tile "onoff" "1")
  57. );if
  58. (ONF)
  59. (setq ReturnValue(start_dialog))
  60. (unload_dialog DLGID)
  61. );progn
  62. (not (princ "\nNo DCL"))
  63. );if
  64. ReturnValue
  65. );defun
  66. (defun ONF ()
  67. (if (= ONOFF "1")
  68. (progn
  69. (mode_tile "XFall" 0)
  70. );progn
  71. (progn
  72. (mode_tile "XFall" 1)
  73. );progn
  74. );if
  75. );defun
  76. (defun ErrorDLG (pErr)
  77. (cond
  78. ((= pErr 0) (set_tile "error" ""))
  79. );cond
  80. );defun
  81. dcl_settings : default_dcl_settings { audit_level = 3 ; }
  82. greytest : dialog {
  83.   label = "Grey test" ;
  84.   spacer_1;
  85.   :boxed_radio_column  {
  86.   fixed_width = true ;
  87.   label =  "Road Gradient Type"  ;
  88.   key = "GradType";
  89.   :radio_button {
  90.   label =  "Cross Fall                                                                " ;
  91.   key = "CrossFall" ;
  92.   }
  93.   :radio_button {
  94.   label =  "Camber";
  95.   key = "Camber" ;
  96.   }
  97.   }//End radio row
  98. :boxed_column {
  99.    width = 1 ;
  100.   :popup_list {  
  101.   label = "Camber % Left                                             ";
  102.   key = "XFallLhs" ;
  103.   }//popup list
  104.   width = 1 ;
  105.   :popup_list {
  106.   label = "Camber % Right                                          ";
  107.   key = "XFallRhs" ;
  108.   }//popup list
  109.   width = 1 ;
  110.   :popup_list {
  111.   label = "Crossfall %                                                  ";
  112.   key = "XFall" ;
  113.   }//popup list
  114.   
  115. width = 1 ;
  116. spacer_1 ;
  117.     }//boxed column
  118.   errtile ;
  119.   ok_cancel ;
  120.   }//dialog
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 09:43:12 | 显示全部楼层
  1. (defun c:greytest (/)
  2. (setq ONOFF "0")
  3. (greytestdcl)
  4. )
  5. (defun greytestdcl (/  ReturnValue  GradTypeTile)
  6. (defun CheckOnClose (/ )
  7. (cond
  8. ((not(setq GradTypeTile (get_tile "GradType")))
  9. (mode_tile "GradType" 2)
  10. )
  11.   (T
  12. (setq
  13.     XFallLhs     (nth (read (get_tile "XFallLhs"  ))XFallLhsList)
  14.     XFallRhs     (nth (read (get_tile "XFallRhs"  ))XFallRhsList)
  15.     XFall        (nth (read (get_tile "XFall"      ))XFallList)
  16. );setq
  17. (done_dialog 1)
  18. );T
  19. );cond
  20. );defun CheckOnClose
  21. (if (> (setq DLGID (load_dialog "greytest.dcl")) 0)
  22. (progn
  23. (new_dialog "greytest" DLGID)
  24. (setq XFallLhsList '( "0.5" "1.0" "1.5" "2.0" "2.5" "3.0" "3.5" "4.0" ))
  25. (start_list "XFallLhs")
  26. (mapcar 'add_list   XFallLhsList)
  27. (end_list)
  28. (if (member XFallLhs XFallLhsList)
  29. (set_tile "XFallLhs" (rtos (vl-position XFallLhs XFallLhsList) 2 0))
  30. (set_tile "XFallLhs" "3")
  31. );if
  32. (setq XFallRhsList '( "0.5" "1.0" "1.5" "2.0" "2.5" "3.0" "3.5" "4.0" ))
  33. (start_list "XFallRhs")
  34. (mapcar 'add_list   XFallrhsList)
  35. (end_list)
  36. (if (member XFallRhs XFallRhsList)
  37. (set_tile "XFallRhs" (rtos (vl-position XFallRhs XFallRhsList) 2 0))
  38. (set_tile "XFallRhs" "3")
  39. );if
  40. (setq XFallList '( "0.5" "1.0" "1.5" "2.0" "2.5" "3.0" "3.5" "4.0" ))
  41. (start_list "XFall")
  42. (mapcar 'add_list   XFallList)
  43. (end_list)
  44. (if (member XFall XFallList)
  45. (set_tile "XFall" (rtos (vl-position XFall XFallList) 2 0))
  46. (set_tile "XFall" "3")
  47. );if
  48. [color=blue](mode_tile "XFallLhs" 1)[/color]
  49. [color=blue](mode_tile "XFallRhs" 1)[/color]
  50. [color=blue](mode_tile "XFall" 1)[/color]
  51. [color=blue](action_tile "CrossFall" "(Modetest)")[/color]
  52. [color=blue](action_tile "Camber"  "(Modetest)")[/color]
  53. (action_tile "XFallLhs" "(ErrorDLG 0)")
  54. (action_tile "XFallRhs" "(ErrorDLG 0)")
  55. (action_tile "XFall" "(ErrorDLG 0)")
  56. (action_tile "onoff" "(setq onoff $value)(onf)")
  57. (action_tile "accept" "(CheckOnClose)")
  58. (action_tile "cancel" "(exit)")
  59. (if (= ONOFF "1")
  60. (set_tile "onoff" "1")
  61. );if
  62. (ONF)
  63. (setq ReturnValue(start_dialog))
  64. (unload_dialog DLGID)
  65. );progn
  66. (not (princ "\nNo DCL"))
  67. );if
  68. ReturnValue
  69. );defun
  70. (defun ONF ()
  71. (if (= ONOFF "1")
  72. (progn
  73. (mode_tile "XFall" 0)
  74. );progn
  75. (progn
  76. (mode_tile "XFall" 1)
  77. );progn
  78. );if
  79. );defun
  80. (defun ErrorDLG (pErr)
  81. (cond
  82. ((= pErr 0) (set_tile "error" ""))
  83. );cond
  84. );defun
  85. [color=blue](defun ModeTest ()[/color]
  86. [color=blue] (if (eq  (get_tile "CrossFall") "1")[/color]
  87. [color=blue]    (progn (mode_tile "XFallLhs" 1)[/color]
  88. [color=blue]            (mode_tile "XFallRhs" 1)[/color]
  89. [color=blue]        (mode_tile "XFall" 0))[/color]
  90. [color=blue]    (progn (mode_tile "XFallLhs" 0)[/color]
  91. [color=blue]            (mode_tile "XFallRhs" 0)[/color]
  92. [color=blue]        (mode_tile "XFall" 1))[/color]
  93. [color=blue]   )[/color]
  94. [color=blue])[/color]

 
单选按钮的操作
回复

使用道具 举报

55

主题

243

帖子

188

银币

后起之秀

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

铜币
275
发表于 2022-7-6 09:55:58 | 显示全部楼层
嘿,PBe-太棒了!!!-我的尝试没有那么接近。非常感谢。
 
只有一个小问题-我知道如何让弹出列表和编辑框中的值记住
它们在会话中的价值,但如何使单选按钮记住其“位置”?(即其最后设置)
我的总是返回默认单选按钮
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:00:10 | 显示全部楼层
  1. (set_tile  "1")
回复

使用道具 举报

8

主题

159

帖子

153

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 10:10:40 | 显示全部楼层
http://web2.airmail.net/terrycad/Tutorials/MyDialogs.htm#MyRadios
克鲁格
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:17:19 | 显示全部楼层
 
可能需要一些时间来研究以下代码:
[code](defunc:测试(/*错误*文件手);;-------------------------------------------------------;;;;示例演示如何回忆以前的内容;;;;所选单选按钮;;;;;;©Lee Mac 2011-www.Lee-Mac。通用域名格式;;;;-----------------------------------------------------------------;;defun*错误*(msg)(if和[color]手部(
回复

使用道具 举报

8

主题

159

帖子

153

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 10:20:53 | 显示全部楼层
李:你应该在什么地方出版你的样本/测试例程书?我想买一个
保存单选按钮设置,对话框位置,动态创建dcl-太好了。
 
克鲁格
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:31:07 | 显示全部楼层
谢谢Kruuger
 
我不确定我是否有时间(或足够的知识)出版整本书。。。但我很高兴你能发现我的例子很有帮助。我可能会在某个时候将其添加到我的网站,以便于访问。
 
谢谢
 
回复

使用道具 举报

55

主题

243

帖子

188

银币

后起之秀

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

铜币
275
发表于 2022-7-6 10:40:13 | 显示全部楼层
谢谢Kruuger和Lee mac帮助我
旧金山
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 02:07 , Processed in 0.349183 second(s), 70 queries .

© 2020-2025 乐筑天下

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