第七章 对象操作函数 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)函数去强制回收内存堆栈。 |