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

Элементы массива ArrayName, когда второй параметр равен 0

Элемент

Что содержит

Тип

1

Объект-источник события

Object

2

Событие

Character

3

Тип события или как событие вызвано: 0 – системный; 1 – вызвано функцией RAISEEVENT( ) 2 – вызов метода

Integer

Если событие является свойством, значение третьего элемента равно 1 или 2. Причем оно равно 2, если значение свойства устанавливается.

1 – функция AEVENTS( ) возвращает двумерный массив с 4-я столбцами, содержащий информацию о сообщении Windows. Массив содержит одну строку для каждого связывания. Элементы строки массива описаны в табл. 6.8.

Таблица 6.8

Элементы массива ArrayName, когда второй параметр равен 1

Элемент

Что содержит

Тип

1

hWnd

Integer

2

Сообщение Windows

Integer

3

Ссылка или идентификатор

Ссылка на объект

4

Имя связанного метода

Character

oEventObject – ссылка на объект, содержащий метод, установленный в качестве обработчика события (привязанный к событию). При задании параметра AEVENTS( ) возвращает двумерный массив с 5-ю столбцами, содержащими приведенный в табл. 6.9 сведения.

Таблица 6.9

Содержимое строки массива ArrayName, когда задан параметр oEventObject

Номер столбца

Что содержит

Тип

1

.T., если второй элемент – это источник события; .F., если второй элемент – это идентификатор события

Logical

2

Источник события, если oEventObject – это идентификатор события, или идентификатор события, если oEventObject – это источник события

Ссылка на объект

3

Событие

Character

4

Метод, связанный с событием

"

5

Флаг функции BINDEVENT( )

Integer

Массив ArrayName не изменяется (или не создается), если

  • не существует указанного события;

  • второй параметр равен 0, а AEVENTS( ) вызывается не в момент возникновения события или oEventObject не имеет связанных событий.

Пример. Создается класс OneButtonForm, содержащий один объект – кнопку. Обработчик события Click этой кнопки закрывает, выполняя метод Release, форму. С событием Click кнопки CommandClose формы связывается метод SayWord объекта oHandler типа Inf. При возникновении события Click форма закрывается, однако прежде выполняется метод SayWord: вызывается функция MESSAGEBOX( ), сообщающая "Форма <имя формы> будет закрыта!".

&& Идентификаторы объектов объявляем как PUBLIC

public oForm, oHandler

&& Создаем объект класса OneButtonForm и определяем его свойства:

&& размеры, автоматическое центрирование и видимость

oForm = CreateObject("OneButtonForm")

with oForm

.Width = 300

.Height = 100

.AutoCenter = .T.

.Visible = .T.

&& Определяем свойства кнопки формы: заголовок, размеры и координаты

&& Кнопка в форме центрируется как по горизонтали, так и по вертикали

with .CommandClose

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

.Width = 84

.Height = 27

.Left = (oForm.Width – .Width) / 2

.Top = (oForm.Height – .Height) / 2

endWith

endWith

&& Создаем объект типа Inf

oHandler = CreateObject("Inf")

&& Связываем событие Click объекта oForm.CommandClose

&& с процедурой SayWord объекта oHandler

BindEvent(oForm.CommandClose, "Click", oHandler, "SayWord")

&& Формируем массив arrayEvent, содержащий информацию о связанном событии

Aevents(arrayEvent, oHandler)

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

define class OneButtonForm as Form

add object CommandClose as CommandButton

&&

&& Обработчик события Click кнопки формы

procedure CommandClose.Click

ThisForm.Release

endProc

endDefine

&& Создаем класс Inf, процедура SayWord которого будет выполняться

&& при нажатии на кнопку "Закрыть" формы OneButtonForm

define class Inf as Custom

procedure SayWord

MessageBox("Форма " + _Screen.ActiveForm.Name + " будет закрыта!")

endProc

endDefine

После запуска программы и нажатия на кнопку "Закрыть" на экране появятся 2 окна (рис. 6.2).

Рис. 6.2. Вызвана процедура SayWord

Массив arrayEvent, сформированный AEVENTS( ), содержит следующие данные:

.T. (Object) CLICK SAYWORD 0

Функция

AFIELDS(ArrayName [, nWorkArea | cTableAlias])

размещает в массиве ArrayName информацию о структуре таблицы и возвращает число полей в таблице. Результирующий массив содержит 18 столбцов. Число строк массива равно числу полей таблицы.

Параметры:

nWorkArea – номер рабочей области исследуемой таблицы.

cTableAlias – псевдоним исследуемой таблицы.

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

Содержимое каждой строки массива описано в табл. 6.10; значения в столбцах 10 – 16 появляются только в первой строке массива.

Таблица 6.10

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