找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1096|回复: 7

[求助] [求助]:ODCL加载时图片为何不能显示

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

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

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

×
程序加载后,以按钮的click动作加载图片文件正常,
但程序加载时同样的动作却不能显示图片。

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

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-10-12 16:58:12 | 显示全部楼层

Re: [求助]:ODCL加载时图片为何不能显示

最初由 Qlin 发布
[B]程序加载后,以按钮的click动作加载图片文件正常,
但程序加载时同样的动作却不能显示图片。

代码、图片和对话框文件见附件。 [/B]


我想,应该在FORM初始化回调事件里面,设置PICTRUE BOX的属性来完成。

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

使用道具 举报

 楼主| 发表于 2002-10-12 18:19:40 | 显示全部楼层
找到办法了,要在PictureBox1元件OnPaint事件
的回调函数里进行设置。

另外还有个麻烦的地方,我每次修改了对话框定义
后要重新开启AutoCAD才能见效。

修改后的lisp代码:

  1. (defun ObjectDCL_LoadArx ()

  2.    (if (not (member "objectdcl.arx" (arx)))
  3.       (arxload "objectdcl.arx" "ObjectDCL.arx not found.")
  4.    )
  5. )

  6. (defun c:hello (/  show_id)
  7.    ; ensure the ObjectDCL.arx file is loaded
  8.    (ObjectDCL_LoadArx)

  9.    ; call the method to load the Hello.odc file.
  10.    (Odcl_LoadProject "hi")

  11.    ; call the method to show the Hellow world dialog box example
  12.    (Odcl_Form_Show hi_DclForm1)

  13.    (princ)
  14. )


  15. (defun c:DclForm1_Initialize ()
  16.   (Odcl_Form_SetTitleBarText hi_DclForm1 "大家好!")
  17.   (Odcl_Control_SetProperty hi_DclForm1_Label1 "Caption" "ObjectDCL第一步")
  18. )

  19. ;;;下面这个函数好像没有被执行
  20. (defun c:DclForm1_OnInitialize ()
  21.   (alert "aaa")
  22. )


  23. (defun c:DclForm1_TextButton1_OnClicked ()
  24.   (Odcl_Form_Close hi_DclForm1)
  25. )

  26. (defun c:DclForm1_TextButton2_OnClicked ()
  27.   (if show_id
  28.     (progn
  29.       (Odcl_PictureBox_Clear hi_DclForm1_PictureBox2)
  30.       (setq show_id nil)
  31.       (Odcl_Control_SetProperty hi_DclForm1_Label1 "Caption" "图片已经清除")      
  32.       (Odcl_Control_SetProperty hi_DclForm1_TextButton2 "Caption" "显示图片")
  33.     );progn
  34.     (progn
  35.       (setq fn (findfile "hi.jpg"))
  36.       (if fn
  37.         (progn
  38.           (Odcl_PictureBox_LoadPictureFile hi_DclForm1_PictureBox2 fn)
  39.           (Odcl_Control_SetProperty hi_DclForm1_Label1 "Caption" "拍摄于陈家祠民间艺术博物馆")
  40.           (Odcl_Control_SetProperty hi_DclForm1_TextButton2 "Caption" "清除图片")
  41.           (setq show_id T)
  42.         )
  43.       );if
  44.     )
  45.   );if  
  46. )

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-10-12 18:23:43 | 显示全部楼层
最初由 Qlin 发布
[B]找到办法了,要在PictureBox1元件OnPaint事件
的回调函数里进行设置。

另外还有个麻烦的地方,我每次修改了对话框定义
后要重新开启AutoCAD才能见效。

修改后的lisp代码:
[CODE]
(defun ObjectDCL_LoadAr... [/B]


因为默认的Odcl_Form_Show 是要检测是否加载FORM到内存了,加载后,以后就不重新调入了,所以你要重新启动ACAD才有效。

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

使用道具 举报

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-10-12 22:16:36 | 显示全部楼层
最初由 Qlin 发布
[B]我试了一下,在我的系统上,还要把
Odcl_LoadProject 也加上参数T [/B]


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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2002-10-13 20:47:36 | 显示全部楼层
最初由 Qlin 发布
[B]找到办法了,要在PictureBox1元件OnPaint事件
的回调函数里进行设置。

另外还有个麻烦的地方,我每次修改了对话框定义
后要重新开启AutoCAD才能见效。

修改后的lisp代码:
[CODE]
(defun ObjectDCL_LoadAr... [/B]


QLIN老师,以后有问题要象你请教了。

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-26 02:23 , Processed in 0.192567 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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