CheckBox — элемент управления
Стр 1 из 12Следующая ⇒ Программируем правильно, а значит объектно-ориентированно В то время как Visual FoxPro 5.0 поддерживает стандартное процедурное программирование Xbase и при желании мы можем не обращать никакого внимания ни на какую «объектность», новые расширения языка дают пользователям мощность и гибкость объектно-ориентированного программирования, что предопределяет изменение всей логики и методики разработки прикладной программы. Вместо того, чтобы ломать голову над программой, начиная с первой строки кода, программист должен думать о создании объектов — компонентов прикладной программы. Классы и объекты — два фундаментальных понятия объектно-ориентированного программирования. Класс содержит информацию о том, как объект должен выглядеть и вести себя. Другими словами, класс — это прообраз объекта. Visual FoxPro 5.0 дает возможность пользователям создавать объекты как с помощью визуальных средств, так и программно на основании базовых классов, список которых приведен в табл. 1. Более подробная информация по классам Visual FoxPro приведена ниже. Таблица 1. Базовые классы Visual FoxPro
Для описания объекта используется набор свойств. Эти свойства объект получает из соответствующего класса, на основании которого он создан. Если нам нужен объект, имеющий свойства, отличные от свойств его класса, мы должны создать подкласс с измененными свойствами и уже его использовать для создания объекта. Для описаний действий, выполняемых объектом, используются методы, то есть процедуры и функции, объявленные внутри класса и непосредственно с ним связанные. Методы легко координируются с событиями, происходящими при работе программы. Главное преимущество для разработчика здесь заключается в том, что привязанные к событию методы выполняются автоматически, и у нас даже есть возможность принудительно вызвать какое-то событие. Список в табл. 2 представляет основные события Visual FoxPro, которые могут использовать большинство объектов управления пользовательского интерфейса. Для каждого класса этот список может меняться как в сторону расширения, так и сужения.
Таблица 2. Основные события Visual FoxPro
Для программиста здесь кроется простая возможность организации полного контроля программы за работой пользователя с приложением не только с помощью клавиатуры, но и мыши.
Рассмотрим некоторые из возможностей объектной модели Visual FoxPro.
Наследование Наследование — одна из наиболее мощных возможностей объектно-ориентированного программирования. Заново созданный объект может наследовать характеристики (то есть свойства и методы) от предшественника — другого объекта. Хотя объекты могут наследовать характеристики от родительских классов, они также могут и не принимать во внимание наследование. Это позволяет разработчикам устранить потребность в двойном коде, когда необходимы подобные функциональные возможности, и настроить объекты для использования в конкретных условиях. Visual FoxPro 5.0 полностью поддерживает наследование и, в случае надобности, его отмену либо программно, либо с помощью интерфейса. Создание подклассов Использование подклассов значительно расширяет возможности как наследования, так и классов. Это означает, что не только заново созданный объект способен наследовать характеристики от родительского класса, но также и заново созданный класс может быть наследником родительского. В дополнение к выгодам наследования, способность создания подклассов дает разработчикам возможность создавать библиотеки классов для многократного использования с очень маленьким новым кодом или вообще без него. Кроме того, если новые функциональные возможности нужны во всех полученных дочерних классах, разработчик просто реализует эти возможности только в родительском классе, а во всех полученных дочерних классах функциональные возможности будут наследоваться автоматически. Инкапсуляция Объектно-ориентированное программирование также позволяет пользователям помещать атрибуты (свойства) и правила поведения (методы) в объекты. В Visual FoxPro программисты могут разместить информацию об объекте так, чтобы доступ к ней был невозможен. Это позволяет создавать «черные ящики», которые скрывают информацию. Даже если внутренняя реализация объекта и управление им может быть полностью скрыта, объект «знает» все, что ему требуется «знать», чтобы вести себя в соответствии с задуманным алгоритмом. Полиморфизм Visual FoxPro 5.0 дает программистам возможность пользоваться преимуществами полиморфизма. Полиморфизм полезен, когда специфическая функция должна вести себя по-разному при различных обстоятельствах. Например, произвольный метод Append может быть полиморфен в зависимости от типа объекта (скажем, различные кнопки в пользовательской форме для добавления данных в различные таблицы), который вызвал метод Append. Это динамическое связывание функциональных возможностей позволяет создавать структурные классовые иерархии, где базисные скелеты объектов определены в базовом классе, а специализированный код — в полученных подклассах.
Простейший пример создания управляющей кнопки для завершения работы с формой средствами объектно-ориентированного программирования приведен на рис. 1.
При работе в Visual FoxPro следует обратить самое серьезное внимание на то, что классы и объекты хотя и являются очень близкими понятиями, но это не одно и то же. Класс содержит информацию о том, как объект будет выглядеть и как он будет себя вести. Другими словами, класс — это прототип или шаблон объекта. Когда вы создадите класс, опишете его свойства и необходимую реакцию на возможные события, с точки зрения пользователя в программе ничего не изменится. Чтобы что-то появилось (кнопка, поле и т. д.), необходимо на основании этого класса создать объект. Естественно, что чем точнее описания свойств класса соответствуют необходимой функциональности объекта, тем меньше работы придется выполнить, чтобы пройти путь от шаблона до реального объекта. Стандартные возможности средств управления заложены в свойствах базовых классов Visual FoxPro. Описание базовых классов включено в саму СУБД и не может быть модернизировано. Это готовый инструмент для работы или исходный образец для создания других классов и подклассов. Кроме перечисленных, новые для FoxPro средства управления и объекты могут быть созданы визуально или программно на основе соответствующих базовых классов. В табл. 3 перечислены доступные элементы управления и соответствующие им типы данных.
Таблица 3. Типы данных элементов управления
Приведем краткое описание объектов и элементов управления Visual FoxPro. CheckBox — элемент управления Создает поле проверки, которое используется для переключения между двумя состояниями. Работает аналогично предыдущим версиям FoxPro за исключением возможности отображения неопределенного состояния (только программным путем), когда значение поля проверки равно 2 или NULL. Column — объект Создает столбец в объекте Grid. Столбец может содержать данные из поля в таблице или выражение. Используйте свойство DataSource, чтобы определить данные, которые появятся в столбце. Столбец также может включать в себя элементы управления. Для формы, содержащей Grid, элемент управления может быть добавлен к столбцу с помощью метода AddObject в событии Init. Для определения активного элемента управления в Grid используйте свойство CurrentControl. Применение элементов управления в объекте Grid позволяет стандартными средствами упростить и упорядочить ввод и редактирование данных. Для логических данных можно использовать элемент управления CheckBox, для фиксированных числовых данных — Spinner, для выбора данных из списка — ListBox или ComboBox, многострочное представление данных в одной строке Grid можно организовать с помощью EditBox и т. д. Число столбцов в Grid определяется свойством ColumnCount объекта Grid.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|