Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум по БД_2013.DOC
Скачиваний:
10
Добавлен:
16.03.2015
Размер:
877.06 Кб
Скачать

Вопросы.

  1. Что собой представляет объект группа экранных форм?

  2. Каким образом можно обратиться при работе приложения к конкретному методу или свойству одной из форм группы экранных форм?

  3. Каким образом создаётся группа экранных форм?

  4. Каким образом добавить новое свойство и новый метод в форму?

Лабораторная работа №10 обработка событий в VisualFoxPro

Теоретические сведения.

Модель события Visual FoxPro позволяет программисту разрабатывать истинно немодальные приложения, то есть дает возможность, например, автоматически координировать множественные формы и одновременно выполнять множественные экземпляры форм. Окно или форма является немодальным, если пользователь не должен закрывать их перед переключением к другой форме или окну. Система обработки событий Visual FoxPro автоматически вызывает код события в ответ на действия пользователя, нужно только посредством определения класса объекта управления определить, что должно произойти после выбора данного объекта управления, а для последующей обработки не следует писать никакого дополнительного кода. В общем случае событие – это переход объекта из одного состояния в другое. К основным событиям можно отнести загрузку формы (Load), удаление формы (Unload), инициализация объекта (Init), щелчок мыши (Click), активизация (GotFocus), деактивизация (LotFocus) и другие. Событие RightClick происходит при нажатии на правую кнопку мыши. Перекрыв это событие можно создать всплывающее меню. Для этого на уровне формы, перекрыв события Init или Load, описывается меню с помощью операторов вида:

DEFINE POPUP <имя меню> IN WINDOW <имя формы, в которой используется меню>

DEFINE BAR <номер пункта меню> OF <имя меню> PROMPT “название пункта меню”

Для описания действий при выборе пунктов меню используются операторы

ON SELECTION POPUP <имя меню> DO <имя командного файла, запускаемого при выборе пунктов меню>.PRG

(Например меню сосоит из двух пунктов: А и В, тогда для его описания нужна последовательность команд:

DEFINE POPUP m IN WINDOW form1

DEFINE BAR 1 OF m PROMPT “А”

DEFINE BAR 2 OF m PROMPT “В”

ON SELECTION POPUP m g.prg)

Перекрыв событие нажатия правой кнопки мыши, например на уровне формы, вызывается созданное меню:

MOVE POPUP <имя меню> TO <номер строки,номер столбца, где будет отображено меню>

ACTIVATE POPUP <имя меню>

(В нашем примере: move popup m to 6,35

activate popup m)

Кроме этого должен быть описан программный файл,показывающий действия при выборе пунктов меню.

(В нашем примере это g.prg :

PROCEDURE G

IF BAR()=1

MESSAGE(“текст1”)

ELSE

MESSAGE(“текст2”)

ENDIF

ENDPROC )

Событие Valid происходит на уровне ввода значения в поле базы данных. Это событие возвращает .T., если данное удовлетворяет условию, иначе данное не вводится в базу данных и остается в режиме ожидания ввода в поле. Например, код события может включать следующие команды:

IF THIS.VALUE > <значение типа поля ввода>

RETURN .T.

ELSE

RETURN .F.

ENDIF)

Событие GotFocus возникает при активизации объекта, а LostFocus при деактивизации объекта. Перекрыв эти события на уровне поля можно при попадания фокуса на поле выделить его цветом, набрав последовательность команд:

THIS.FORECOLOR=RGB(0,0,0)

THIS.BACKCOLOR=RGB(255,0,0)

При потере фокуса – последовательность команд:

THIS.FORECOLOR=RGB(0,0,0)

THIS.BACKCOLOR=RGB(255,255,255)

Обработка события Message приводит к выводу сообщения в стоке статуса.

Обработка события Programmatic Change происходит при изменении у объекта свойства Value программным путём, то есть, когда в программе есть код Object.Value=значение.

Задание на лабораторную работу.

  1. Создать всплывающее меню при работе на уровне поля, содержащее пункты: ввод значение по умолчанию, очищение поля.

  2. Выполнить проверку значения вводимой даты поступления в институт до ввода в базу данных.

  3. Вывести сообщение в строку статуса, поясняющее содержимое поля ввода при появлении фокуса в этом поле.

  4. Выделить поле особым цветом при попадании фокуса в это поле и вернуть прежний цвет при потере фокуса.