明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6593|回复: 9

第七章 对象操作函数

[复制链接]
发表于 2012-10-26 21:23 | 显示全部楼层 |阅读模式
第七章 对象操作函数
Visual LISP提供了一系列用于创建、操控和关闭ActiveX对象的函数。这通常是对外部应用程序会话对象而言的,但它同时也可以适用于任何外部进程对象,如DLL或OCX接口。

(vlax-get-object program-id)
尝试连接到存在的对象(进程),与Visual Basic/VBA函数GetObject (program-id)相同。

参数:
Program-ID – 字符串,应用对象类标识符的名称。例如“Word.Application”或“Excel.Application”。

示例:
(setq xlapp (vlax-get-object “Excel.Application”))
成功时返回外部Excel应用程序进程的vla-对象,否则返回nil。

(vlax-create-object program-id)
尝试创建一个新的对象会话(进程)。与Visual Basic函数CreateObject (program-id)相同。

参数:
Program-ID – 字符串,应用程序对象类标识符名称。例如“Word.Application”或“Excel.Application”。

示例:
(setq xlapp (vlax-create-object “Excel.Application”))
成功时返回新的外部Excel应用程序进程的vla-对象,否则返回nil。

(vlax-get-or-create-object program-id)
尝试先连接到存在的对象会话,然后,如果找不到,就尝试创建一个新的对象会话。这个函数在Visual Basic中没有对应的函数,它是Visual LISP中特有的。

参数:
Program-ID – 字符串,指应用程序对象类标识符名称。例如“Word.Application”或“Excel.Application”。

示例:
(setq xlapp (vlax-get-or-create-object “Excel.Application”))
成功时返回外部Excel应用程序对象的vla-对象,否则返回nil。

(vlax-write-enabled-p object)
如果object可以修改则返回T,否则返回nil。

备注:请小心该函数。在对象实际上是开放可修改状态下,有时它会返回False。

参数:
Object – 任何Vla-对象

(vlax-object-erased-p object)
如果object在图中已经被删除则返回T,否则返回nil。

参数:
Object – 任何代表图元对象类型的vla-对象。

(vlax-release-object object)
从内存中释放对象。它不是重新分配内存。当释放一个指向外部应用程序会话的对象时,这里强烈建议使用(gc),它能从操作系统资源中强行释放外部进程。

参数:
Object – 任何vla-对象。

警告!尽管对象符号是局部的,函数用完后不一定要释放对象的资源。但还是建议当已经不需要这个对象时可使用该函数以确保释放对象。然而,需要提醒的是,既使是释放了由外部应用程序驱动的对象,它也可能没有从内存或操作系统进程堆栈中被全部释放。最好是在你完成代码后释放所有不再使用的对象,然后再调用(gc)函数去强制回收内存堆栈。
发表于 2012-10-27 13:14 | 显示全部楼层
学习。老大辛苦了。
发表于 2012-10-31 20:15 | 显示全部楼层
支持~~~继续学习中~~
发表于 2013-7-19 07:08 | 显示全部楼层
楼主多发几个其它函数
发表于 2013-8-1 23:52 | 显示全部楼层
楼主,还有没有更多的内容呢
发表于 2013-11-20 19:42 | 显示全部楼层
zhichizhidhichi
发表于 2015-8-11 11:14 | 显示全部楼层
新人学习中
发表于 2016-6-10 14:51 | 显示全部楼层
好好学习,抽象,但学习Vlsp,离不开他
发表于 2020-3-8 01:54 | 显示全部楼层
调用后如果修改图元并保存?
发表于 2023-4-8 16:40 | 显示全部楼层
感觉 vlax-get-object 跟vlax-create-object 是多余的  直接用vlax-get-or-create-object就好了吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 05:09 , Processed in 1.157775 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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