Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VisualFoxPro.doc
Скачиваний:
15
Добавлен:
01.07.2025
Размер:
11 Мб
Скачать
☆

13.6. Информация о классе и объекте

Возвращается функциями ACLASS( ), AINSTANCE( ), AMEMBERS( ) и выводится командой DISPLAY | LIST OBJECTS. Функции рассмотрены в разд. 6.1.5, а команда – в разд. 4.3.

Пример. Выводится информация об объекте oArray – экземпляре класса _arraylib библиотеке _utility.vcx.

vcxFile = 'c:\Program Files\Microsoft Visual FoxPro 9\Ffc\_utility.vcx'

&& Создаем объект на базе класса _arraylib

oArray = NewObject('_arraylib', vcxFile)

display objects like oArray to file d:\a.txt

Результат:

Object: OARRAY

Priv

O

_ARRAYLIB

Class Tree:

_ARRAYLIB

c:\Program files\Microsoft Visual FoxPro 9\ffc\_utility.vcx

_CUSTOM

c:\Program files\Microsoft Visual FoxPro 9\ffc\_base.vcx

CUSTOM

Properties:

AOBJECTREFS

A

(1, 1)

L

.F.

(1, 2)

L

.F.

(1, 3)

L

.F.

BASECLASS

C

"Custom"

BUILDER

C

""

…

Methods and Events:

ACOLSCAN

ADDOBJECT

ADDPROPERTY

DELAITEM

DESTROY

ERROR

INIT

INSAITEM

…

Команда

DO (_BROWSER)

открывает браузер классов, позволяющий выбрать класс и получить доступ к его компонентам с целью их просмотра и редактирования.

Имя программы-браузера классов хранит системная переменная _BROWSER. По умолчанию ее значение равно

"c:\Program Files\Microsoft Visual FoxPro 9\Browser.app"

Число одновременно открытых браузеров класса произвольно.

Браузер (рис. 13.12) можно открыть, указав имя библиотеки классов и класс, например:

do (_browser) with Home(2) + 'Classes\Buttons.vcx', 'Vcr'

Рис. 13.12. Просматривается класс Vcr библиотеки классов Buttons.vcx

Команда

DO (_OBJECTBROWSER)

открывает браузер COM-объектов, позволяющий просматривать состав классов COM-объектов и получать информацию о классах и COM-объектах. Информация об интерфейсах COM-объекта может быть перенесена в программу VFP; детали см. в описании функции EVENTHANDLER( ).

Имя программы-браузера COM-объектов хранится системной переменной _OBJECTBROWSER. По умолчанию ее значение равно

"c:\Program Files\Microsoft Visual FoxPro 9\ObjectBrowser.app"

Функция

GETPEM(oObjectName | cClassName, cProperty | cEvent | cMethod) )

возвращает текущее значение свойства или код метода или обработчика события. Тип результата, если он получается для события или метода – Character, если – для свойства, то зависит от типа свойства. Функция употребляется как на этапе разработки, так и при исполнении программы.

Параметры:

oObjectName – ссылка на объект, для свойства, события или метода которого функция получает значение. Тип параметра – Object.

cClassName – имя класса, для свойства, события или метода которого возвращается результат. Тип параметра – Character.

cProperty, cEvent, cMethod – соответственно имя свойства, события или метода, для которого получается результат.

Чтобы на этапе исполнения получить код события или метода, нужно воспользоваться свойством Class.

Пример 1. Используется свойство Class экземпляра объекта.

local oObject, lcCode

oObject = NewObject("_form", Home( ) + "Ffc\_base.vcx")

lcCode = GetPEM(oObject.Class, "Release")

? lcCode

Результат, полученный функцией GETPEM( ):

local lcBaseClass

if This.lRelease

nodefault

return .F.

endif

This.lRelease = .T.

lcBaseClass = Lower(This.BaseClass)

This.oHost = .NULL.

This.ReleaseObjRefs

if not Inlist(lcBaseClass + " ", "form", "formset", "toolbar")

release This

endif

Пример 2. Тот же результат, что и в примере 1 получается при задании параметра cClassName.

local lcCode

&& Открываем библиотеку классов _base.vcx

set classlib to Home( ) + "Ffc\_base.vcx"

lcCode = GetPEM("_form", "Release")

? lcCode

Пример 3. Выводится значение свойства Caption кнопки CommandClose формы oForm.

public oForm

oForm = CreateObject("OneButtonForm")

propertyValue = GetPEM(oForm.CommandClose, "Caption")

? propertyValue && Напечатает: Закрыть

oForm.Show

&& Создаем класс OneButtonForm – форму с одной кнопкой

define class OneButtonForm as Form

add object CommandClose as CommandButton

CommandClose.Caption = "Закрыть"

&&

procedure CommandClose.Click

ThisForm.Release

endProc

endDefine

Функция

PEMSTATUS(oObjectName | cClassName, cProperty | cEvent | cMethod | cObject, nAttribute) )

возвращает значение атрибута для свойства, события, метода или объекта. Тип результата – Character или Logical.

Параметры:

oObjectName – ссылка на объект, для свойства, события или метода которого функция возвращает атрибут. Тип параметра – Object. Если oObjectName – это контейнер, например такой, как форма, то можно получить атрибут объекта, принадлежащего контейнеру.

cClassName – имя класса, для свойства, события или метода которого возвращается результат. Тип параметра – Character.

cProperty, cEvent, cMethod, cObject – соответственно имя свойства, события, метода или объекта, для которого получается результат. Параметр cObject указывается, если oObjectName – это контейнер и соответствующий cObject объект принадлежит этому контейнеру.

nAttribute – задает вид возвращаемого атрибута; принимает приведенные в табл. 13.9 значения.

Таблица 13.9

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]