createobject( ) 函数 : 从类定义或支持 OLE 的应用程序中创建对象。
语法 :CREATEOBJECT(ClassName [, eParameter1, eParameter2, ...])
参数
ClassName : 指定用来创建新对象的类或 OLE 对象。Visual FoxPro 按下面的顺序搜索类或 OLE 对象:
1. Visual FoxPro 基类。
2. 在内存中按加载顺序排列的用户自定义类定义。
3. 当前程序中的类。
4. 用 SET CLASSLIB 打开的 .VCX 类库中的类。
5. 用 SET PROCEDURE 打开的过程文件中的类。
6. 在 Visual FoxPro 程序执行链中的类。
7. Windows 注册表(对 OLE 对象而言)。
可对 ClassName 使用下面语法创建 OLE 对象:
ApplicationName.Class
例如,若要创建 Microsoft Excel 工作表(支持 OLE 自动化),可用下面的语法:
x = CREATEOBJECT('Excel.Sheet')
当运行这个代码时,启动 Microsoft Excel(如果还没有运行),并创建一个新的工作表。
一个类库有一个别名。若要用别名来指定类库中的对象,可包含类库别名,后接一个句点号和对象名。
eParameter1, eParameter2, ... :这些可选参数用来把值传给类的 Init 事件过程。当发出 CREATEOBJECT( ) 时执行 Init 事件,并进行对象初始化工作。
返回值类型 : 对象
说明 : 可用 CREATEOBJECT( ) 从类定义或支持 OLE 自动化的应用程序中创建对象,并将对象引用赋给内存变量或数组元素。
由用户自定义类创建对象之前,用户自定义类必须先用 DEFINE CLASS 来创建,或者必须是用 SET CLASSLIB 打开的 .VCX 可视类库中的类。
可用 = 或 STORE 来将对象引用赋给内存变量或数组元素。如果释放指定给内存变量或数组元素的对象,则内存变量或数组元素包含 Null 值。可用 RELEASE 从内存中移去内存变量或数组元素。
newobject( ) 函数 : 直接从一个 .vcx 可视类库或程序创建一个新类或对象。
语法 : NEWOBJECT(cClassName [, cModule [, cInApplication [, eParameter1, eParameter2, ...]]])
返回值类型 : 对象
参数
cClassName : 指定类或对象,从该类或对象创建新的类或对象。
对于 cClassName,可使用以下语法创建 OLE 对象:
ApplicationName.Class
例如,为了创建一个 Microsoft Excel 工作表(支持 OLE 自动服务),可以使用以下语法:
oExcelSheet = NEWOBJECT('Excel.Sheet')
cModule : 指定 .vcx 可视类库或 Visual FoxPro程序(.prg、.mpr、.app、.exe 等等),其中包含 cClassName 指定的类或对象。默认指定一个 .vcx 可视类库;如果想指定一个程序,必须包含一个扩展名。
注意 类库可以有一个别名。为了使用类库别名指定类库中的类或对象,可在类库后面带一个点号以及对象名。
如果省略 cModule,或者 cModule 为空字符串或 null 值,则 Visual FoxPro 按以下顺序搜索类或对象:
Visual FoxPro 基类。
按加载的顺序在内存中搜索用户自定义类。
当前程序中的类。
使用 SET CLASSLIB 打开的类库。
过程文件中使用SET PROCEDURE打开的类。
Visual FoxPro 程序执行链中的类。
如果 SET OLEOBJECT 为 ON,则搜索 OLE 注册表。
cInApplication : 指定 Visual FoxPro 应用程序(.exe 或 .app),其中包含 cClassLibName 指定的 .vcx 可视类库。该应用程序必须具有扩展名。如果省略 cModule,或者cModule 为空字符串或 null 值,则忽略 cInApplication。
eParameter1, eParameter2, ... : 指定可选参数,该参数传递到类或对象的 Init 事件。
说明
NEWOBJECT() 允许您创建一个新类或对象,而不必打开一个 .vcx 可视类库或过程文件。
可以使用 = 或 STORE,将 NEWOBJECT(?) 返回的对象引用分配给一个变量或数组元素。如果分配给变量或数组元素的一个对象被释放了,则该变量或数组元素包含 null值。可以使用 RELEASE 命令从内存中删除变量或数组元素。
addobject 方法 : 运行时,在容器对象中添加对象。
语法 : Object.AddObject(cName, cClass [, cOLEClass] [, aInit1, aInit2 ...])
参数
cName : 指定引用新对象的名称。
cClass : 指定添加对象所在的类。
cOLEClass : 指定添加对象的 OLE 类。
aInit1, aInit2 ... : 指定传给新对象的 Init 事件的参数。
说明
调用 addobject 方法时,将触发新添加对象的 Init 事件。在表单集中加入表单时,Load 事件在 Init 事件之前发生。
附注
当用 addobject 方法往容器中加入对象时,对象的 Visible 属性设置为“假”(.F.)。因此您可以设置对象的属性,而不看更改对象外观时的一些中间效果。
newobject 方法 : 直接从一个 .vcx 可视类库或程序将一个新类或对象添加到一个对象中。
语法 : Object.NEWOBJECT(cObjectName, cClassName [, cModule [, cInApplication [, eParameter1, eParameter2, ...]]])
cObjectName : 指定用于引用新添加类或对象的名称。
cClassName : 指定类或对象,从该类或对象添加新的类或对象。
cModule : 指定一个 .vcx 可视类库或 Visual FoxPro 程序(.prg、.mpr、.app、.exe等等),其中包含 cClassName 指定的类或对象。默认的是一个 .vcx 可视类库;如果想指定一个程序,必须包含一个扩展名。
注意 : 一个类库可以具有别名。为了通过一个别名指定类库中的类或对象,在该类库别名后面加一个点号以及对象的名称。
如果省略 cModule,或者 cModule 为空字符串或 null 值,则 Visual FoxPro 按以下顺序搜索类或对象:
Visual FoxPro 基类。
按加载的顺序在内存中搜索用户自定义类。
当前程序中的类。
使用 SET CLASSLIB 打开的类库。
过程文件中使用 SET PROCEDURE 打开的类。
Visual FoxPro 程序执行链中的类。
如果 SET OLEOBJECT 为 ON,则搜索 OLE 注册表。
cInApplication : 指定 Visual FoxPro 应用程序(.exe 或 .app),其中包含 cClassLibName 指定的 .vcx 可视类库。该应用程序必须具有扩展名。如果省略 cModule,或者cModule 为空字符串或 null 值,则忽略 CinApplication。
eParameter1, eParameter2, ... : 指定可选参数,该参数传递到类或对象的 Init 事件。
说明 : NEWOBJECT() 允许您创建一个新类或对象,而不必打开一个 .vcx 可视类库或过程文件。