Тема: Объекты Visual FoxPro. Свойства, события, методы. Задание: на основе базовых классов СУБД создать собственные пользовательские классы и включить их объекты в интерфейс проекта
Часть 2).
Задание: на основе базовых классов СУБД создать собственные пользовательские классы и включить их объекты в интерфейс проекта.
Выполнение:
1. Создадим русифицированный класс кнопок управления. Для этого исследуем структуру объектов ранее созданной с помощью Мастера формы (см.рис.4.1); посмотрим код формы с помощью кнопки «View Class Code» окна «Class Browser» (см.рис.4.2).
Рис.4.1. Окно «Class Browser».
Рис.4.2. Окно кода формы.
2. Изучим список кнопок управления: классы текстовых кнопок и кнопок с изображениями включают в себя кнопки перехода к следующей, предыдущей, первой и последней записям таблицы, а также добавления, удаления и редактирования текущей записи, поиска записей и закрытия активной формы, функциональность кнопок обеспечивает за счет соответствующих методов (см.рис.4.3):
Рис.4.3. Список кнопок управления.
3. Создадим собственный класс текстовых кнопок. Поле «TXTBTNS» в появившемся диалоговом окне оставим не тронутым, что позволит сохранить коды разработчиков на кнопках (рис.4.4). Сохраним класс в папке «Libs».
Рис.4.4. Создание нового пользовательского класса.
4. Перейдем в окно Конструктора класса. Изменим заголовки кнопок следующим образом, установив свойство Caption каждой из них (см.рис.4.5):
Рис.4.5. Конструктор класса.
5. Изменим метод setcaption класса кнопок, чтобы завершить изменение заголовков кнопок на русские названия (см.листинг 4.1). Добавим класс к проекту с помощью кнопки «Add» на вкладке менеджера проекта «Classes».
Листинг 4.1.
#DEFINE ADD_CAPTION_LOC "\<Добавить"
#DEFINE EDIT_CAPTION_LOC "\<Редактировать"
#DEFINE REV_CAPTION_LOC "\<Отмена"
#DEFINE SAVE_CAPTION_LOC "\<Сохранить"
IF THIS.EditMode
THIS.cmdAdd.Caption = SAVE_CAPTION_LOC
THIS.cmdEdit.Caption = REV_CAPTION_LOC
ELSE
THIS.cmdAdd.Caption = ADD_CAPTION_LOC
THIS.cmdEdit.Caption = EDIT_CAPTION_LOC
ENDIF
6. Создадим пользовательский класс mainform на основе Form. Организуем стиль его оформления, изменив цвет его фона и добавив в Конструкторе на форму картинку, кнопку управления и несколько надписей (см.рис.4.6), при этом событие Click надписей «Выход», «О проекте» и «На главную» будет запрограммировано так, чтобы пользователь мог нажатием на них осуществить переход на другие формы (см.листинги 4.2-4.5).
Листинг 4.2. «Выход».
thisForm.Release
DO FORM 'Forms\entrance.scx'
CLOSE TABLES ALL
Листинг 4.3. «О программе».
thisForm.Release
DO FORM 'Forms\about.scx'
CLOSE TABLES ALL
Листинг 4.4. «На главную».
thisForm.Release
DO FORM 'Forms\mainmenu.scx'
Листинг 4.5. Кнопка «Сервис».
thisForm.Release
DO FORM 'Forms\service.scx'
Рис.4.6. Класс mainform.
7. Создадим пользовательские классы my_checkbox, my_grid, my_OLE,my_optgroup,my_shape,my_line,my_command и поместим их на одну форму, организовав их взаимодействие (см.рис.4.7-4.8). События MouseEnter и MouseLeave класса my_checkbox запрограммированы так, чтобы цвет фона изменялся при проставлении/снятии галочки. Класс my_line имеет цвет линии фиолетовый, линия проходит из верхнего левого угла в правый нижний. Класс my_optgroup имеет 2 переключателя, цвет фона – прозрачный. Источником данных my_grid1 является таблица sotrudniki. Класс my_OLE имеет заданные ширину и высоту. Объект my_command1 запрограммирован таким образом, чтобы пользователь мог управлять свойством Visible объекта my_optgroup1.
Рис.4.7. Взаимодействие объектов пользовательских классов.
Рис.4.8. Взаимодействие объектов пользовательских классов.
ЛАБОРАТОРНАЯ РАБОТА №5