明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1798|回复: 5

[基础] ******dcl赋值(新问题)******

[复制链接]
发表于 2009-12-2 12:23 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2009-12-4 16:12:14 编辑

如有表 (“a” “b” “c”)

对话框如下:

dcl_settings : default_dcl_settings { audit_level = 3; }

pnout : dialog {
    : popup_list {
        label = "pnout";
        key = "pnout";
        mnemonic = "p";
        list = "a\nb\nc";      这里能否把lisp获取的表放进来                   
    }
    ok_only;
}

发表于 2009-12-2 12:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2009-12-2 15:54 | 显示全部楼层
还是感谢一下,还有个问题,用GET_TILE,返回的不是原来的a或b或c,而是顺序号!怎么处理啊!
 楼主| 发表于 2009-12-2 16:09 | 显示全部楼层

找了一些资料,还没弄明白怎么处理!

LIST及POPUP_LIST的VALUE值应当是列表的索引值,在LISP中返回的是字符串类型的数字。所以,你如果在它们的ACTION里对它们本身调用了SET_TILE函数,那它们将会根据你提供的VALUE重新调整索引值,如果你提供的VALUE第一个字符不是数字,那它的索引值将会是0,否则根据你提供的VALUE里的数字进行调整。

 楼主| 发表于 2009-12-2 16:30 | 显示全部楼层

找了一下资料,汇总如下:

1.popup_list返回的是索引值,你可根据此控件中的内容做成表,按返回的索引值从表中取出内容

2.列表框返回的是选中的是列表的第几项(从“0”开始),从你的画面上看,应该返回“4”,所以,你应该由这个数字,用(nth  n list) 去你的列表中寻找对应的字符串。

3.

(setq lis '((1 . 10) (2 . 20) (3 . 30))) 
(action_tile "accept" (strcat "(setq i (atoi (get_tile \"p_list\")))"
 "(setq ns (assoc i lis))"
 "(done_dialog)"))
get_tile 返回选中项目的索引值

 楼主| 发表于 2009-12-2 16:49 | 显示全部楼层

搞定:

 (setq shh (atoi (get_tile "project_name")))  ;;;返回顺序号
           (setq xmdh (nth shh xmdhlb))   ;;;在xmdhlb中,返回第“顺序号”个元素!

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-17 19:10 , Processed in 0.177879 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表