乐筑天下

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

[编程交流] 激活并显示弹出菜单l

[复制链接]

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 08:02:20 | 显示全部楼层 |阅读模式
你好
 
有没有关于在选中切换框时如何激活和停用弹出列表的示例?
 
类似于绘图对话框中的内容。(当选中切换“适合纸张”时,“缩放”弹出列表将被停用,反之亦然。
090225sllxuni7mmmurdig.jpg
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:09:15 | 显示全部楼层
如果您指的是标准DCL:在切换互动程序的action\u tile语句中,使用作用于popup\u list互动程序的mode\u互动程序表达式。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:16:47 | 显示全部楼层
示例:
  1. (defun c:test ( / sampdcl val)
  2. (setq sampdcl (load_dialog "plotsample.dcl"))
  3. (if (not (new_dialog "plotsample" sampdcl))
  4. (exit)
  5.   )
  6. (start_list "lst")(mapcar 'add_list '("1:10" "1:20" "1:50"))(end_list)
  7. (start_list "UNIT:")(mapcar 'add_list '("mm" "inches"))(end_list)
  8. ([color=blue]action_tile[/color] "FTP"
  9.      "(setq val $value)([color=blue]mode_tile[/color] "lst" (boole 1 (atoi val)))
  10.         ([color=blue]mode_tile[/color] "UNIT:" (boole 1 (atoi val)))")
  11. (action_tile "accept" "(done_dialog 1)")
  12. (action_tile "cancel"  "(done_dialog 0)" )
  13. (start_dialog)
  14. (unload_dialog sampdcl)
  15.      )

 
  1. plotsample : dialog {
  2. label = "Try me....";
  3. : boxed_column {
  4. : [color=blue]toggle[/color] { label = "F&it to paper"; key = "FTP"; }
  5. : [color=blue]popup_list[/color] { label = "&Scale:"; key = "lst"; width = 25; }
  6. : [color=blue]popup_list[/color] { key = "UNIT:";
  7. alignment = right;
  8. width = 10;
  9. fixed_width = true;}
  10. }
  11. ok_cancel ;
  12. }
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 08:28:21 | 显示全部楼层
谢谢李提供的信息。
 
感谢pBe提供的完美示例,它非常有效。
 
如果从弹出列表中选择一个特定的项目,我们能有同样的技巧吗?
 
非常感谢你
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:29:58 | 显示全部楼层
这与塔尔瓦特的做法相同。
前任。
  1. (setq lst_ '("mm" "inches"))
  2. (action_tile "LstKey"
  3. (vl-prin1-to-string (quote
  4. (progn                          
  5. (setq val2 (nth (atoi (get_tile $key)) lst_))
  6. (mode_tile "key" (if (member val2 '("mm" "cm" "m")) 1 0))
  7. )
  8. )
  9. )

 
我相信你会明白这段话是怎么回事。
 
顺便说一句:前面的代码并不是一个完美的例子,而是实现它的许多方法之一。
 
给,我给你测试了一下
  1. (defun c:test ( / sampdcl val)
  2. [color=blue](setq lst_ '("1:10" "1:20" "1:50" "1:60"))      
  3. [/color](setq sampdcl (load_dialog "plotsample.dcl"))
  4. (if (not (new_dialog "plotsample" sampdcl))
  5. (exit)
  6.   )
  7. (start_list "lst")(mapcar 'add_list [color=blue]lst_[/color])(end_list)
  8. (start_list "UNIT:")(mapcar 'add_list '("mm" "inches"))(end_list)
  9. (action_tile "FTP"
  10.      "(setq val $value)(mode_tile "lst" (boole 1 (atoi val)))
  11.         (mode_tile "UNIT:" (boole 1 (atoi val)))")
  12. [color=blue](action_tile "lst"
  13. (vl-prin1-to-string (quote
  14. (progn                          
  15. (setq val2 (nth (atoi (get_tile $key)) lst_))
  16. (mode_tile "UNIT:" (if (member val2 '("1:20" "1:60")) 1 0))
  17.     )))
  18.       )[/color][color=blue]      
  19. [/color](action_tile "accept" "(done_dialog 1)")
  20. (action_tile "cancel"  "(done_dialog 0)" )
  21. (start_dialog)
  22. (unload_dialog sampdcl)
  23.      )
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 08:36:19 | 显示全部楼层
这确实是一项非常伟大的工作,你为我做了这一切真是太好了。
 
我必须玩一点,以满足我的需要。
 
非常感谢你。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 08:44:34 | 显示全部楼层
 
不客气,塔瓦
很高兴你发现这些例子很有用。
 
干杯
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 08:53:53 | 显示全部楼层
你好,pBe。
 
你注意到在Vlisp中检查代码时它抛出了一个错误吗?这正常吗?
 
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 09:01:14 | 显示全部楼层
 
我真的不知道什么是“正常”。
Anyhoo如果在布尔函数行上添加另一个参数,则错误消息将消失。
  1. (action_tile "FTP"
  2.      "(setq val $value)(mode_tile "lst" (boole 1 [b][color=blue]1 [/color][/b](atoi val)))
  3.         (mode_tile "UNIT:" (boole 1 [b][color=blue]1[/color] [/b] (atoi val)))")

 
想想看,帮助文件确实说
直到现在我才注意到。很好,塔瓦特。
 
干杯
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:06:47 | 显示全部楼层
 
确切地发生了什么事并解决了它。
 
谢谢。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 21:39 , Processed in 0.457226 second(s), 75 queries .

© 2020-2025 乐筑天下

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