- •Министерство образования российской федерации
- •Задание на лабораторную работу
- •Лабораторная работа № 2 создание баз данных как совокупности взаимосвязанных таблиц
- •Вопросы.
- •Лабораторная работа №3 поиск записей и организация запрсов Теоретические сведения.
- •Вопросы.
- •Лабораторная работа №4 просмотры, параметрические запросы и курсоры
- •Вопросы.
- •Лабораторная работа №5 конструктор отчетов и этикеток
- •Вопросы.
- •Лабораторная работа №6 разработка проекта и приложения
- •Вопросы.
- •Лабораторная работа №7 программирование: поиск, сортировка, наложение фильтра
- •Вопросы.
- •Лабораторная работа №8 программирование: индексирование таблиц и установление связей между таблицами при создании баз данных
- •Вопросы.
- •Лабораторная работа №9 создание группы экранных форм
- •Вопросы.
- •Лабораторная работа №10 обработка событий в VisualFoxPro
- •Вопросы.
- •Лабораторная работа №11 создание классов объектов
- •Вопросы.
- •Лабораторная работа №12 обеспечение целостности данных
- •Вопросы.
- •Список использованных источников
Вопросы.
Что собой представляет объект группа экранных форм?
Каким образом можно обратиться при работе приложения к конкретному методу или свойству одной из форм группы экранных форм?
Каким образом создаётся группа экранных форм?
Каким образом добавить новое свойство и новый метод в форму?
Лабораторная работа №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=значение.
Задание на лабораторную работу.
Создать всплывающее меню при работе на уровне поля, содержащее пункты: ввод значение по умолчанию, очищение поля.
Выполнить проверку значения вводимой даты поступления в институт до ввода в базу данных.
Вывести сообщение в строку статуса, поясняющее содержимое поля ввода при появлении фокуса в этом поле.
Выделить поле особым цветом при попадании фокуса в это поле и вернуть прежний цвет при потере фокуса.