При создании форм назначения прав доступа (Employee) и просмотра прав доступа (Access) воспользуемся такой возможностью,
предоставляемой Visual FoxPro, как работа с классами. Поэтому сначала немного об объектно-ориентированном
программировании (ООП).
Вспомним его основные термины.
Объектно-ориентированное программирование можно сравнить с поваренной книгой,
содержащей список рецептов. В терминах ООП эти рецепты названы классами, а сама поваренная
книга - библиотекой классов. По рецептам (то есть классам) можно
готовить блюда, которые называются объектами
или экземплярами объектов.
В поваренной книге есть раздел "супы". В этом
разделе описаны рецепты десятков супов: овощных, грибных, рыбных и т.д. Рецепты
какого-то одного раздела названы подклассами.
Каждый рецепт в поваренной книге содержит список необходимых
продуктов и список инструкций по приготовлению блюда. Продукты известны как свойства класса, а инструкции
- как методы.
По этим "рецептам" в "поваренной книге"
можно начать "готовить" свои программы. Однако
объектно-ориентированное программирование предоставляет одну дополнительную
возможность, которая может только сниться тем, кто использует поваренные книги.
Каждый раз, когда вы вносите изменения в рецепт (класс), все приготовленные по
нему блюда (объекты) немедленно тоже изменяются. Это явление называется наследованием. Настоящая мощь ООП
заключается в возможности повторно использовать различные компоненты. Вместо
разработки отдельной программы по каждому отдельному вопросу разработчики могут
сосредоточить усилия на создании набора повторно используемых объектов,
составляющих основу прикладной программы.
Создадим свой первый класс – визуальный класс с именем Worker. Он будет использоваться при создании
как минимум двух форм, что должно несколько облегчить наши труды по разработке
приложения. Для его создания можно
использовать конструктор форм. Создание нового класса с помощью конструктора
форм сводится к созданию новой формы или выбору необходимых деталей уже
существующей и последующему выбору пункта File и Save As Class главного меню Visual FoxPro. При этом открывается окно диалога Save Class, запрашивающее дополнительную
информацию о сохраняемом классе. Окно Save Class позволяет выбрать сохраняемую информацию. Это может быть набор
выделенных объектов, вся форма или весь набор форм. После определения
сохраняемой информации нужно дополнительно ввести имя, под которым надо
сохранить класс, имя библиотеки классов, в
которую следует записать определение класса (файл библиотеки имеет расширение vcx) и описание записываемого
класса.
Но мы воспользуемся конструктором визуальных классов. В главном меню Visual FoxPro File
выберите New, выделите Class и выберите New
File. Появится окно (рис. 4.7.) В
диалоговом окне New Class задайте имя класса Worker, укажите его базовый класс Container и имя библиотеки Worker.vcx , куда
он будет записан. Эта библиотека может содержать несколько классов. Ограничимся
пока одним. Сделаем щелчок по кнопке OK. Класс создан.
Для выбора класса сначала следует выбрать библиотеку, а
затем выделить модифицируемый класс и нажать на него два раза мышью или нажать
на кнопку Open. После
того как класс выбран, активизируется окно конструктора классов Class
Designer, которое
позволяет изменять свойства и методы класса (рис. 4.8).
Конструктор классов кроме этого позволяет разработчику
определять пиктограммы и другие элементы описания, которые будут появляться при
использовании класса в конструкторе форм.
Поскольку основа приложения будет
использована в течение всего процесса разработки приложения, она должна
способствовать этому процессу. Значительную часть времени разработчик уделяет
написанию кода отладки. Использование объектно-ориентированного метода
позволяет вводить возможности отладки на самом низком уровне. Это не слишком
сильно усложняет процесс создания программы, но благодаря наследованию
позволяет в дальнейшем отлаживать любой фрагмент программного комплекса.
После создания класса приступим к разработке формы Access. В окружении данных формы (Data Environment) разместим таблицу User. Вы уже умеете это делать. Добавить класс в форму не
сложно. Откройте панель Form Controls (элементы управления формы). Она показана на рис. 4.9. Если панель
отсутствует на экране – выберите в главном меню Visual FoxPro пункт View, а
в открывшемся подменю пункт Toolbars.
Откроется окно Toolbars.
Сделайте отметку напротив названия панели - Form Controls и щелкните кнопку OK.
Выберите на панели значок View Classes. Откроется меню, выберите в нем первый пункт Add. В открывшемся диалоговом окне Open найдите
библиотеку классов Worker.vcx и
класс Worker. После щелчка по OK на
панели Form Controls появится
пиктограмма класса , а
сама панель станет значительно меньше. Исчезнут стандартные классы (Standard). Щелкните по пиктограмме. В нужном месте активной
области формы при помощи левой кнопки мыши отведите место для класса Worker.
Форма Access и
ee окружение данных в
конструкторе форм показана на рис. 4.10.