Классы и объекты тесно связаны друг с другом, но, тем не менее, эти понятия не тождественны. Класс содержит информацию о том, как должен выглядеть объект и определяет выполняемые им действия. Объект является экземпляром класса, который наследует характеристики класса.
Базовые классы Visual FoxPro
При создании объектов приложения вы можете использовать базовые классы Visual FoxPro, классы внешних библиотек, а также создавать новые классы.
Visual FoxPro содержит большое число базовых классов (табл. 19.1), которые можно использовать при создании форм любой сложности. Единственным недостатком базовых классов является невозможность их модификации, но вы можете использовать базовые классы для создания пользовательских классов, полностью вами управляемых. Далее при создании форм можно применять пользовательские классы вместо базовых.
Таблица 19.1. Базовые классы Visual FoxPro
Наименование | Назначение | Видимый | Контейнер |
ActiveDoc | Активный документ | Нет | Нет |
CheckBox | Флажок | Да | Нет |
Column | Столбец | Да | Да |
ComboBox | Раскрывающийся список | Да | Нет |
CommandButton | Кнопка управления | Да | Нет |
CommandGroup | Набор кнопок управления | Да | Да |
Container | Контейнер | Да | Да |
Control | Базовый визуальный класс | Да | Нет |
Custom | Базовый невизуальный класс | Нет | Нет |
EditBox | Поле редактирования | Да | Нет |
Form | Форма | Да | Да |
FormSet | Набор форм | Нет | Да |
Grid | Таблица | Да | Да |
Header | Заголовок столбцов таблицы | Да | Нет |
HyperLink Object | Гиперссылка | Нет | Нет |
Image | Изображение | Да | Нет |
Label | Надпись | Да | Нет |
Line | Линия | Да | Нет |
ListBox | Список | Да | Нет |
01eContainerControl | OLE-объект управления | ||
OleBoundControl | OLE-объект данных | ||
OptionButton | Переключатель | Да | Нет |
OptionGroup | Набор переключателей | Да | Да |
Page | Вкладка формы | Да | Да |
PageFrame | Макет страницы | Нет | Да |
ProjectHook | Проект | Нет | Да |
Separator | Разделитель | Да | Нет |
Shape | Обрамление | Да | Нет |
Spinner | Счетчик | Да | Нет |
TextBox | Поле ввода | Да | Нет |
Timer | Таймер | Нет | Нет |
ToolBar | Панель управления | Да | Да |
Почти все базовые классы являются визуальными. Объекты, созданные на их основе, отображаются на экране. Некоторые из базовых классов невидимы. Они используются для объединения объектов (например, FormSet), обработки специальных событий (например, Timer) или создания невизуальных объектов (например, ProjectHook).
В Visual FoxPro широко применяется вложенность классов. Вложенным является класс, являющийся частью другого класса, называемого контейнером (container class). Наиболее яркий пример контейнера представляет собой таблица, компоненты которой — это столбцы и надписи к ним. При создании формы и после запуска ее на выполнение вы можете получить доступ ко всем компонентам контейнера.
Каждый базовый класс предназначен для выполнения определенных функций и обладает соответствующим набором свойств, методов и событий. Кроме свойств и событий, специфических для данного класса, каждый базовый класс содержит основной набор свойств (табл. 19.2) и событий (табл. 19.3).
Таблица 19.2. Минимальный набор свойств класса
Наименование | Описание |
Class | Тип класса |
BaseClass | Базовый класс, на основе которого создан данный класс |
ClassLibrary | Библиотека классов, в которой хранится данный класс |
ParentClass | Определенный пользователем класс, на основе которого создан данный класс |
Таблица 19.3. Минимальный набор событий
Наименование | Описание |
Init | Наступает при создании объекта |
Destroy | Наступает при освобождении обьекта из памяти |
Error | Наступает при возникновении ошибки, связанной с объектом |