Functions.AMembers 方法 | |
-- todo --
将对象的属性、过程和成员对象的名称放入变量数组中。
命名空间:
XSharp.VFP
程序集:
XSharp.VFP (在 XSharp.VFP.dll 中) 版本:2.22 GA
语法 FUNCTION AMembers(
ArrayName,
oObjectNameOrClassName,
nArrayContentsID,
cFlags
) AS USUAL CLIPPER
[ClipperCallingConventionAttribute(new string[] { ... })]
public static __Usual AMembers(
__Usual ArrayName = default,
__Usual oObjectNameOrClassName = default,
__Usual nArrayContentsID = default,
__Usual cFlags = default
)
查看代码参数
- ArrayName (Optional)
- 类型:__Usual
指定存放 oObjectName 成员属性名称的数组。
如果指定的数组不存在,系统会自动创建该数组。
如果数组不够大,无法容纳所有名称,X# 会自动增加数组的大小。
- oObjectNameOrClassName (Optional)
- 类型:__Usual
指定要将其成员属性放入 ArrayName 指定的变量数组中的对象或 X# 类。
这可以是任何计算结果为对象的表达式,如对象引用、对象变量或对象数组元素。
- nArrayContentsID (Optional)
- 类型:__Usual
指定数组的内容。
- cFlags (Optional)
- 类型:__Usual
指定应用于 AMembers() 函数返回的数组的过滤。
当 AMembers() 传递 COM 对象时(ArrayContentsID 的值为 3),cFlags 将不起作用。
某些标志是互斥的,因此如果使用多个 cFlag,请按以下分组使用:
1[P | H | G] [N | U] [C] [I | B] [R]
返回值
类型:
__Usual
数值
备注 | 描述 |
---|
0 |
指定数组包含单列属性名称。省略 nArrayContentsID 参数等同于传递 0。
|
1 |
指定数组包含对象或类的属性名称,以及方法和成员对象。
结果数组是二维的,第二列指定第一列中列出的成员类型。
第二列的可能值为 Property、Event、Method 或 Object。
|
2 |
指定数组包含 oObjectName 指定的原生 X# 对象的成员对象的名称。结果数组是一维的。
此选项提供了一种方法来确定容器中子对象的名称,例如表单集中的所有 Form 对象或表单中的控件。
|
3 |
指定数组包含一个或多个对象的信息。您可以传递原生 X# 对象或 COM 对象的对象引用。
备注: |
---|
在 .app 或 .exe 应用程序中不支持此参数值为 3。 |
|
指定此参数时返回的数组由四列组成,如备注部分的表格所述:
列 | 描述 |
---|
1 | 事件或方法的名称 |
2 | 属性类型(例如,PROPERTYPUT、PROPERTYGET、PROPERTYPUTREF、METHOD) |
3 |
函数签名(参数及其类型,以及函数返回类型)。
此信息类似于 IntelliSense 展开方法时提供的快速信息文本。
|
4 | 帮助字符串 |
如果省略 nArrayContentsID,AMembers() 返回一个包含属性的单列数组。
下表描述了 cFlags 的有效值。
值 | 过滤标志 |
---|
P | 受保护的属性、方法或事件 |
H | 隐藏的属性、方法或事件 |
G | 公共属性、方法或事件 |
N | 原生(内部)属性、方法或事件 |
U | 用户定义(外部)属性、方法或事件 |
C | 已更改的属性(但不包括已更改的数组属性) |
I | 继承的属性、方法或事件 |
B | 基本属性、方法或事件(使用 AddProperty 方法) |
R | 只读属性 |
cFlags 指定的过滤的默认配置是标志之间的逻辑 OR。您可以使用特殊的 "+" cFlags 来更改这一点。
值 | 特殊标志 |
---|
# | 向输出数组添加一个新列,其中包含相应的 cFlags 值。 |
+ | 在过滤标志之间执行逻辑 AND。 |
AMembers() 返回对象的对象、属性和过程的数量,如果无法创建数组则返回 0。
如果省略可选的 1、2 或 3 标志参数,将创建一个包含 oObjectName 属性的一维数组。
您可以将 COM 对象引用传递给 AMembers() 函数,但在这样做时,您还必须在第三个(标志)参数中传递值 3,
如以下示例所示。
1oExcel = CreateObject("excel.application")
2= AMembers(gaPropArray, oExcel, 3)
示例 1Clear
2goForm1 = CreateObject("Form")
3= AMembers(gaPropArray, goForm1, 1)
4Display MEMORY LIKE gaPropArray
参见