找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2031|回复: 24

[LISP函数]:ObjectDCL问题---望XD赐教

[复制链接]
发表于 2002-10-29 16:22:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
这是我用ODC做的幻灯片显示程序,如何取得列表框中的选取项?
用Odcl_ListBox_GetCurSel好象不行。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-10-29 22:44:28 | 显示全部楼层
可以使用列表框的SelChanged事件,
c:DclForm1_ListBox1_OnSelChanged回调函数有两个参数,第二个参数就是列表框显示的文字。

运行效果:


                               
登录/注册后可看大图


修改后的程序见附件。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-10-30 10:58:13 | 显示全部楼层
多谢Qlin指点。继续请教,如何从SLB中提取SLD呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-10-30 12:01:21 | 显示全部楼层
最初由 hqd9639 发布
[B]多谢Qlin指点。继续请教,如何从SLB中提取SLD呢? [/B]


这个你可以使用XDRX_API,提供了对幻灯片完美的支持。


  1. [FONT=courier new]
  2. 43.xdrx_slide_list

  3. 功能:列出幻灯片库中幻灯片的目录。

  4. 调用格式:(xdrx_slide_list <幻灯片文件名> [幻灯片名])

  5. 说明:文件名可以带或不带扩展名.slb

  6. 返回值:1.不给参数:[幻灯片名],若幻灯片库文件存在且有效,返回库中的所有
  7.           幻灯片名字符串表。
  8.           否则返回NIL。
  9.         2.若指定参数[幻灯片名],则幻灯片名做为前缀,查找以给定字符为前缀的
  10.           所有幻灯片名。

  11. 44.xdrx_slide_del

  12. 功能:删除幻灯片库中的幻灯片。

  13. 调用格式:(xdrx_sldbel <幻灯片文件名> [幻灯片名] [查找标记])

  14. 说明:参数用法同 函数43。

  15. 返回值:若成功删除,返回删除的幻灯片数目(整数)
  16.         否则返回NIL。


  17. 45. xdrx_slide_del1

  18. 功能:删除幻灯片库中的幻灯片。若给[查找标记]参数为T,则给的的名字作为前缀。
  19.       同时删除给的目录的同名DWG文件。


  20. 调用格式:(xdrx_sldbel1 <dwg文件存放路径> <幻灯片文件名> [幻灯片名] [查找标记])

  21. 说明:1.<dwg文件存放路径>为和幻灯片名同名的DWG文件的存放目录。
  22.       2.其他参数用法同 函数43。
  23.       3.幻灯名大小写均可,程序自动转换成大写。

  24. 返回值:若成功删除,返回删除的幻灯片数目(整数)
  25.         否则返回NIL。

  26. 46. xdrx_slide->sld

  27. 功能:从幻灯片库slb中提取幻灯片存成文件。

  28. 调用格式:(xdrx_slide->sld <幻灯片库slb文件名> <幻灯片名> [查找标记])

  29. 说明:1.文件名可以带扩展名SLB也可以不带
  30.       2.若查找标记参数存在且为T,则提取所有以给定幻灯片名开头的幻灯片。
  31.       3.提取的幻灯片文件保存在当前目录下。
  32.       4.幻灯名大小写均可,程序自动转换成大写。

  33. 返回值:若找到幻灯片,则返回生成的幻灯片的文件的数量。
  34.         否则返回NIL。

  35. 47. xdrx_slide->slb

  36. 功能:将源幻灯库中的指定的文件加到目的幻灯库中,若目的幻灯片库不存在,创建。

  37. 调用格式:(xdrx_slide->slb <源幻灯片库> <幻灯片名> <目的幻灯片库> [查找标记])

  38. 说明: 1.若指定幻灯片名为"*",则把源幻灯片库中全部文件加到目的幻灯片库。
  39.        2.若查找加标记T,则指定文件做为前缀
  40.        3.幻灯名大小写均可,程序自动转换成大写。



  41. 返回值:若成功,返回给LISP 加入的文件数,
  42.         否则返回NIL.

  43. 48. xdrx_slide_rename

  44. 功能:将幻灯片库中的指定的幻灯片改名。

  45. 调用格式:(xdrx_slide_rename <幻灯片库> <要修改的幻灯片名> <新名字> [查找标记])

  46. 说明:1. 若查找标记存在且为T,那么以要修改的幻灯片名为前缀,找到第一个满足条件的幻灯片
  47.       后,新名字改为 新名字+源名字的后缀。
  48.       如: 要修改的名字为ansi,新名字为ABC,若给参数标记T,
  49.            那么假如找到第一个符合条件的幻灯片为ANSI-35, 那么改后的名字为:ABC-35
  50.    
  51.       2.幻灯名大小写均可,程序自动转换成大写。

  52. 返回值:新名字,若失败返回NIL。

  53. 49. xdrx_slide_add

  54. 功能:把幻灯片SLD文件加到幻灯片库SLB中。

  55. 调用格式:(xdrx_slide_add <幻灯片库SLB文件名> <幻灯片SLD文件名>)

  56. 说明:   文件名可以带路径,大小写均可,可以不带也可以带扩展名,程序自动
  57.          把第一个参数做为幻灯库,第二个参数作为幻灯片。

  58. 返回值:若加入成功(幻灯片库中没有重名的幻灯存在)返回T
  59.         否则返回NIL。

  60. 50. xdrx_slide_magic

  61. 功能:幻灯库文件的万能生成及管理函数。

  62. 调用格式:(xdrx_slide_magic  <操作方式>  <幻灯库文件名>  <幻灯片文件名>  [新幻灯片文件名])

  63. 说明:1. 幻灯库文件名和幻灯片文件名可以也不可以带扩展名。
  64.       2. 操作方式
  65.           0:改名
  66.           1:加入
  67.           2:删除
  68.           3:加入(若存在同名幻灯片,则替换)并加随机后缀名

  69.       3.随机名:
  70.         1:"改名" 时不变, 返回原有后缀(随机名), 如 "AMF"。
  71.         2:"加入" 时不生成后缀, 返回空字符 ""。
  72.         3:"删除" 时返回原有后缀(随机)名, 如 "AMF"。
  73.         4: "加入(若存在同名幻灯片,则替换)并加随机后缀名" 时新生成后缀(随机)名,
  74.            如新加入则返回新生成随机名, 如 "GMA";
  75.            如替换则返回新生成随机名和原有随机名表, 如 ("GMA AMF")。

  76. 返回值:成功返回  随机后缀名或新老随机后缀名表, 失败返回 nil。


  77. 51. xdrx_slide->dwg

  78. 功能:读取幻灯片或幻灯库文件数据绘制DWG图, 或用LISP表返回图形数据。

  79. 调用格式:(xdrx_slide->dwg <文件名1>  [文件名2]  [绘图标志1] [绘图标志2])

  80. 说明:1.若给出两个文件名,则第一个作为幻灯库SLB文件,第二个做为库中的幻灯片名。
  81.         若只给一个文件名,则做为磁盘上的幻灯片SLD文件名。
  82.       2.文件名可以带路径,可以带也可以不带扩展名,程序自动判断处理。
  83.       3.绘图标志为"P":在当前视窗上(充满,完美再现vslide命令)用PLINE 画线, 用SOLID做实体填充, 没有返回值。
  84.       4.绘图标志为"L":在当前视窗上用 LINE 画线, 用SOLID做实体填充, 无返回值。
  85.       5.若给绘图标志2,且为T,那么以幻灯片定义的实际大小用PLINE,或LINE绘制。绘制完后,
  86.         zoom 至幻灯大小的范围。

  87.       6.若不给绘图标志1,返回LISP数据表格式 ((p1 p2 . . .) ("C" n) ("S" p1 p2 p3 [p4]) . . .)
  88.                                                    线       颜色      实体填充

  89. 返回值: 成功返回给LISP表, 失败或空幻灯片文件返回 nil。

  90. 224. xdrx_slide->bmpfile

  91. 功能:幻灯片生成BMP文件

  92. 调用格式:(xdrx_slide->bmpfile <"幻灯文件名">)

  93. 返回值:bmp文件名


  94. 99. xdrx_makesld

  95. 功能:制作幻灯片文件

  96. 调用格式:(xdrx_makesld <选择集> <幻灯片名> [窗口比例] [插入点][插入点十字的颜色值])

  97. 返回值:若成功,返回T

  98. 说明:将选择集SS以外的其他实体删除,然后根据视口高宽比,将选择集ZOOM E,然后以屏幕中心
  99.       为基点,缩小0.95倍(为幻灯片完全清楚显示出来),若不提供视口高宽比,则以当前视窗为基准。
  100.       制作完幻灯片后,恢复先前删除的实体。
  101.       1.[窗口比例]-可选项,制作幻灯片的视口高宽比
  102.       2.[插入点]-可选项,配合制作图库时候使用。
  103.       3.[插入点十字的颜色值]-若提供[插入点],该项起作用,指定插入十字叉的颜色值(1--255)
  104.                               默认值为1(红色)

  105. 示例:(xdrx_makesld ss "ex")  ;将选择集SS制作为幻灯片ex.sld
  106.       (xdrx_makesld ss "ex" pt1 2);将选择集SS制作为幻灯片,并在点pt1处插入十字,颜色黄色
  107.       (xdrx_makesld ss "ex" 0.7 pt1 2);同上,不同是将当前视口高宽比设置为0.7
  108.       (xdrx_makesld ss "ex" 0.7)
  109.       (xdrx_makesld ss "ex" pt1) ;使用默认的颜色红色,十字叉

  110.       之所以提供视口高宽比,是为了满足一些制作幻灯片图库的DCL对话框文件的图像控件的比例。

  111. [/FONT]
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-10-30 15:33:58 | 显示全部楼层
谢谢XD,我本想知道Objectdcl中有没有类似的函数。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-10-30 15:49:51 | 显示全部楼层
最初由 hqd9639 发布
[B]谢谢XD,我本想知道Objectdcl中有没有类似的函数。 [/B]


如果显示一个SLB中的幻灯片,ODCL有的,右键SLD控件选“对象浏览器”,里面有控件的全部的回调事件,SLIDEIMAGE里面的代码你看看。


                               
登录/注册后可看大图
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2002-10-31 15:30:55 | 显示全部楼层
看了几篇ODCL的帖子,看来真的仍了DCL,去学ODCL了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-11-1 12:45:33 | 显示全部楼层
XD,上述方法只能显示库中的指定SLD,如何分解库中SLD,并加入列表框中?

顺便问下,上述图片怎样贴上来的?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-11-1 18:20:48 | 显示全部楼层
最初由 hqd9639 发布
[B]XD,上述方法只能显示库中的指定SLD,如何分解库中SLD,并加入列表框中?

顺便问下,上述图片怎样贴上来的? [/B]


1、得到幻灯片库中的幻灯片名字,用XDRX_API


  1. [FONT=courier new]
  2. 43.xdrx_slide_list

  3. 功能:列出幻灯片库中幻灯片的目录。

  4. 调用格式:(xdrx_slide_list <幻灯片文件名> [幻灯片名])

  5. 说明:文件名可以带或不带扩展名.slb

  6. 返回值:1.不给参数:[幻灯片名],若幻灯片库文件存在且有效,返回库中的所有
  7.           幻灯片名字符串表。
  8.           否则返回NIL。
  9.         2.若指定参数[幻灯片名],则幻灯片名做为前缀,查找以给定字符为前缀的
  10.           所有幻灯片名。
  11. [/FONT]
复制代码


2、你是问怎么得到的“对象浏览器”吗? 在ODCL的IDE里面,点击空间后,右键,最下面的选项就是。通过这个,可以得到控件上的所有支持的回调事件和LISP示例代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-11-4 09:15:38 | 显示全部楼层
边学l边做的AUTOCAD图形浏览器,可看SLD,dwg,bmp,jpeg,请指教。

XD,我是想知如何直接把图片贴到这里,我不会,不好意思。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-11-4 12:43:00 | 显示全部楼层
最初由 hqd9639 发布
[B]边学l边做的AUTOCAD图形浏览器,可看SLD,dwg,bmp,jpeg,请指教。

XD,我是想知如何直接把图片贴到这里,我不会,不好意思。 [/B]


找个截图软件,如SNAGIT ,论坛有,用SNAGIT搜索论坛。

然后截图成GIF文件,用附件就传上来了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-11-4 15:49:25 | 显示全部楼层
谢谢,我试试。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-11-12 16:38:29 | 显示全部楼层
(defun c:DclForm5_ListBox2_OnSelChanged (nSelection sSelText /)

xd,其中的nSelection 为什么总是列表中的第一项?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-11-12 16:53:33 | 显示全部楼层
最初由 hqd9639 发布
[B](defun c:DclForm5_ListBox2_OnSelChanged (nSelection sSelText /)

xd,其中的nSelection 为什么总是列表中的第一项? [/B]


把新写的代码贴论坛来吧,直接贴代码,大家看的清楚。

你的意思是说,初始化的时候,自己设置的项,不能显示? 总是第一个?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-11-13 09:29:45 | 显示全部楼层
你的list控件是否设定为自动排序?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-26 02:12 , Processed in 0.525894 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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