以下是引用ycvf在2019-8-24 08:57:45的发言:
目前学习assign方法的应用,碰到问题。请帮助找处发的附件中问题处在哪?
Visual FoxPro 9.0
Access 和 Assign 方法程序
请参阅
Visual FoxPro 支持 Access 和 Assign 方法程序,它们是与类属性有同样名称,并有 _ACCESS 或 _ASSIGN 后缀添加到过程或函数名后面的自定义过程或函数。当你查询一个属性值或试图更改该属性值时,可以使用 Access 和 Assign 方法程序来执行代码。只有在运行时刻查询或更改属性值,Visual FoxPro 才执行 Access 和 Assign 方法程序。在设计时刻查询或更改属性值,不会执行。你可以单独和互相独立地创建 Access 和 Assign 方法程序。
Access 和 Assign 方法程序提供下列帮助:
可以给执行单独接口的类或对象创建一个公共接口。
可以轻松地进行属性有效性确认。
可以方便地保护子类 ActiveX 控件的属性。
当查询一个属性值,通常通过使用一个对象的引用属性,存储属性值到一个变量或用带问号 (?) 的命令来显示属性值时,Visual FoxPro 执行 Access 方法程序代码。
当你试图更改属性值,通常使用 STORE 命令或 = 操作符去分配一个新值给属性时,Visual FoxPro 执行 Assign 方法程序代码。
注意:
可以为 Visual FoxPro 大多数固有的属性创建 Access 和 Assign 方法程序,可以给只读属性创建 Assign 方法程序,可是该方法程序永远也不会执行。Visual FoxPro 不支持控件 Value 属性的 Assign 方法程序,也不支持 ActiveX 控件固有属性、事件或方法的 Access 和 Assign 方法程序。然而,Visual FoxPro 支持包含在 Visual FoxPro OLE 容器中 ActiveX 控件属性、事件和方法的 Access 和 Assign 方法程序。
注意:
当使用一个固有数组函数 (如 ASCAN()) 访问数组时,成员数组的 Access 和 Assign 方法程序不被激发。
注意:
当它们的值被查询并且没有改变时,某些固有属性的 Assign 方法程序将被激发。这些包括尺寸方面的属性如 Top、Left、Height、Width 以及其他少数象 Visible 属性等。这是由于 Visual FoxPro 内部处理了这些属性。
在运行时刻,Visual FoxPro 将 Access 和 Assign 方法程序作为 Protected,因此它们不能被外部的类定义访问。可是,当你在“类设计器”中,Visual FoxPro 对这些 Access 和 Assign 方法程序有一个特定的方法。当你将一个对象放入一个容器 (例如将一个命令按钮放入一个表单) 中时,Visual FoxPro 通常标记该对象的 Protected 方法程序为只读,并且在设计器中不能修改。然而,你可以在类设计器中编辑该对象的 Access 和 Assign 方法程序。
THIS_ACCESS 方法程序
当你改变对象成员的值或查询该对象成员时,可以创建 THIS_ACCESS 方法程序来执行代码。THIS_ACCESS 方法程序必须返回一个对象引用;否则 Visual FoxPro 会产生错误。通常情况,方法程序返回 THIS 对象引用。THIS_ACCESS 方法程序还必须包含一个参数,来接收被更改或查询的对象成员的名称。
注意:
THIS_ACCESS 并不是要在全局范围内替换 Access 和 Assign 方法程序。它仅提供有关被访问或查询的对象成员的信息。与 Access 或 Assign 方法程序不同,THIS_ACCESS 不提供对返回到特定对象成员值的控制。
请参阅
其他资源
如何创建 Access 和 Assign 方法程序
使用 Visual FoxPro 的类
发送有关本主题的建议给微软。© Microsoft 公司版权所有。
本主题中文翻译:王 苏(wangsuww) E-MAIL: wangsu01@