激活并显示弹出菜单l
你好有没有关于在选中切换框时如何激活和停用弹出列表的示例?
类似于绘图对话框中的内容。(当选中切换“适合纸张”时,“缩放”弹出列表将被停用,反之亦然。
如果您指的是标准DCL:在切换互动程序的action\u tile语句中,使用作用于popup\u list互动程序的mode\u互动程序表达式。 示例:
(defun c:test ( / sampdcl val)
(setq sampdcl (load_dialog "plotsample.dcl"))
(if (not (new_dialog "plotsample" sampdcl))
(exit)
)
(start_list "lst")(mapcar 'add_list '("1:10" "1:20" "1:50"))(end_list)
(start_list "UNIT:")(mapcar 'add_list '("mm" "inches"))(end_list)
(action_tile "FTP"
"(setq val $value)(mode_tile \"lst\" (boole 1 (atoi val)))
(mode_tile \"UNIT:\" (boole 1 (atoi val)))")
(action_tile "accept" "(done_dialog 1)")
(action_tile "cancel""(done_dialog 0)" )
(start_dialog)
(unload_dialog sampdcl)
)
plotsample : dialog {
label = "Try me....";
: boxed_column {
: toggle { label = "F&it to paper"; key = "FTP"; }
: popup_list { label = "&Scale:"; key = "lst"; width = 25; }
: popup_list { key = "UNIT:";
alignment = right;
width = 10;
fixed_width = true;}
}
ok_cancel ;
}
谢谢李提供的信息。
感谢pBe提供的完美示例,它非常有效。
如果从弹出列表中选择一个特定的项目,我们能有同样的技巧吗?
非常感谢你 这与塔尔瓦特的做法相同。
前任。
(setq lst_ '("mm" "inches"))
(action_tile "LstKey"
(vl-prin1-to-string (quote
(progn
(setq val2 (nth (atoi (get_tile $key)) lst_))
(mode_tile "key" (if (member val2 '("mm" "cm" "m")) 1 0))
)
)
)
我相信你会明白这段话是怎么回事。
顺便说一句:前面的代码并不是一个完美的例子,而是实现它的许多方法之一。
给,我给你测试了一下
(defun c:test ( / sampdcl val)
(setq lst_ '("1:10" "1:20" "1:50" "1:60"))
(setq sampdcl (load_dialog "plotsample.dcl"))
(if (not (new_dialog "plotsample" sampdcl))
(exit)
)
(start_list "lst")(mapcar 'add_list lst_)(end_list)
(start_list "UNIT:")(mapcar 'add_list '("mm" "inches"))(end_list)
(action_tile "FTP"
"(setq val $value)(mode_tile \"lst\" (boole 1 (atoi val)))
(mode_tile \"UNIT:\" (boole 1 (atoi val)))")
(action_tile "lst"
(vl-prin1-to-string (quote
(progn
(setq val2 (nth (atoi (get_tile $key)) lst_))
(mode_tile "UNIT:" (if (member val2 '("1:20" "1:60")) 1 0))
)))
)
(action_tile "accept" "(done_dialog 1)")
(action_tile "cancel""(done_dialog 0)" )
(start_dialog)
(unload_dialog sampdcl)
)
这确实是一项非常伟大的工作,你为我做了这一切真是太好了。
我必须玩一点,以满足我的需要。
非常感谢你。
不客气,塔瓦
很高兴你发现这些例子很有用。
干杯 你好,pBe。
你注意到在Vlisp中检查代码时它抛出了一个错误吗?这正常吗?
我真的不知道什么是“正常”。
Anyhoo如果在布尔函数行上添加另一个参数,则错误消息将消失。
(action_tile "FTP"
"(setq val $value)(mode_tile \"lst\" (boole 1 1 (atoi val)))
(mode_tile \"UNIT:\" (boole 1 1 (atoi val)))")
想想看,帮助文件确实说
直到现在我才注意到。很好,塔瓦特。
干杯
确切地发生了什么事并解决了它。
谢谢。
页:
[1]