dcl中的下拉列表框中数据怎么在lisp中读出来
1.dcl中的下拉列表框:popup_list{
label="选择绘图类型 ";
key="mylist";
edit_width=20;
list ="桌子\n椅子\n茶几\n门\n窗户";
}
具体的在lisp程序中该如何确定你选择的是哪一个,并且将它调用出来
2.比如说我要画出桌子,就是当我选择桌子这个选项之后是
(setq u (nt h (atoi (get_tile "mylist")) '(桌子 椅子 茶几 门 窗户)))
是么?可是我用(princ u)命令行出来的是桌子
请教一下,实在是不明白,下拉框到底该怎么对应到具体的值上?
(atoi (get_tile "mylist")) 不就是你想要的值么?如果选了桌子就是0,选了门就是3。
(setq u (nth (atoi (get_tile "mylist")) '(桌子 椅子 茶几 门 窗户))) 是把'(桌子 椅子 茶几 门 窗户)这个列表里第(atoi (get_tile "mylist"))个元素赋值给u,你选的是桌子,得到的当然是桌子。 那如果选择了桌子,u值到底是等于“桌子”这个字符串还是指代0这个整数呢?
请教了,刚入门 (defun c:jzlt(/ dcl_id )
(setq dcl_id (load_dialog "jzlt.dcl"))
(if (not (new_dialog "jzlt" dcl_id)) (exit))
(if (= xbl nil) (setq xbl 1.0))
(if (= ybl nil) (setq ybl 1.0))
(set_tile "xbl" (rtos xbl))
(set_tile "ybl" (rtos ybl))
(pbxs u)
(action_tile "xbl" "(setq xbl (atof $value))")
(action_tile "ybl" "(setq ybl (atof $value))")
(action_tile "accept" " (getlist)(done_dialog)")
(action_tile "cancel" "(exit)(done_dialog)")
(start_dialog)
(unload_dialog dcl_id)
(cond ((= u "桌子") (command "-insert" "zhuozi" pause xbl ybl))
((= u "窗户") (command "-insert" "chuanghu" pause xbl ybl))
((= u "床") (command "-insert" "chuang" pause xbl ybl))
)
)
(defun show(kimage sld / x y)
(setq x (dimx_tile kimage))
(setq y (dimy_tile kimage))
(start_image kimage)
(fill_image 0 0 x y -2)
(slide_image 0 0x y sld)
(end_image)
)
(defun getlist ()
(setq u (nth (atoi (get_tile "mylist")) '(桌子 窗户 床)))
)
(defun pbxs(u)
(cond ((= u "桌子") (show "kimage" "zhuozi"))
((= u "窗户") (show "kimage" "chuanghu"))
((= u "床") (show "kimage" "chuang"))
)
) 谁能指教一下,不明白。。。。。。。
明茉菲嫣 发表于 2011-10-14 20:42 static/image/common/back.gif
那如果选择了桌子,u值到底是等于“桌子”这个字符串还是指代0这个整数呢?
请教了,刚入门
u的值取决于你给它的赋值。
你的语句不是有(setq u ...)么? 可是我现在使用
(setq u(get_tile "mylist"))
然后我用(princ u)检验,无论我选择列表中的哪一个,命令行始终都显示o,也就是第一个索引,这是为什么? 谢谢各位的帮忙,解决了。。。。
vormittag 和cabinsummer ,非常感谢你们 看来楼上的指教,又学了点,谢谢 收藏学习了!
页:
[1]