Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

CheckBox — элемент управления




Программируем правильно, а значит объектно-ориентированно

В то время как Visual FoxPro 5.0 поддерживает стандартное процедурное программирование Xbase и при желании мы можем не обращать никакого внимания ни на какую «объектность», новые расширения языка дают пользователям мощность и гибкость объектно-ориентированного программирования, что предопределяет изменение всей логики и методики разработки прикладной программы.

Вместо того, чтобы ломать голову над программой, начиная с первой строки кода, программист должен думать о создании объектов — компонентов приклад­ной программы.

Классы и объекты — два фундаментальных понятия объектно-ориентированно­го программирования. Класс содержит информацию о том, как объект должен выглядеть и вести себя. Другими словами, класс — это прообраз объекта. Visual FoxPro 5.0 дает возможность пользователям создавать объекты как с помощью визуальных средств, так и программно на основании базовых классов, список которых приведен в табл. 1. Более подробная информация по классам Visual FoxPro приведена ниже.

Таблица 1. Базовые классы Visual FoxPro

CheckBox EditBox ListBox Shape
Column Form OLEBoundControl Spinner
CommandButton FormSet OLEContainerControl TextBox
CommandGroup Grid OptionButton Timer
CombcBox Header OptionGroup ToolBar
Container Image Page
Control Label PageFrame
Custom Line Separator

Для описания объекта используется набор свойств. Эти свойства объект получает из соответствующего класса, на основании которого он создан. Если нам нужен объект, имеющий свойства, отличные от свойств его класса, мы должны создать подкласс с измененными свойствами и уже его использовать для создания объекта.

Для описаний действий, выполняемых объектом, используются методы, то есть процедуры и функции, объявленные внутри класса и непосредственно с ним связанные. Методы легко координируются с событиями, происходящими при работе программы. Главное преимущество для разработчика здесь заключается в том, что привязанные к событию методы выполняются автоматически, и у нас даже есть возможность принудительно вызвать какое-то событие. Список в табл. 2 представляет основные события Visual FoxPro, которые могут исполь­зовать большинство объектов управления пользовательского интерфейса. Для каждого класса этот список может меняться как в сторону расширения, так и сужения.

 

 

Таблица 2. Основные события Visual FoxPro

Событие Описание
Load Форма или набор форм загружаются в память
Unload Форма или набор форм удаляются из памяти
Init Объект создается
Destroy Объект удаляется из памяти
Click Пользователь щелкает на объекте основной кнопкой мыши
DblClick Пользователь дважды щелкает на объекте основной кнопкой мыши
RightClick Пользователь щелкает на объекте дополнительной кнопкой мыши
GotFocus Объект выделяется либо действиями пользователя (с помощью клавиатуры или мыши), либо программно (используя метод SetFocus)
LostFocus Объект перестает быть выделенным либо действиями пользователя (выделяется другой объект), либо программно (используя метод SetFocus)
KeyPress Пользователь нажимает или отпускает клавишу
MouseDown Пользователь нажимает кнопку мыши, когда указатель мыши находится на объекте
MouseMove Пользователь перемещает мышь над объектом
MouseUp Пользователь отпускает кнопку мыши, когда указатель мыши находится на объекте
InteractiveChange Значение объекта изменяется интерактивно
ProgrammaticChange Значение объекта изменяется программно

 

Для программиста здесь кроется простая возможность организации полного контроля программы за работой пользователя с приложением не только с помощью клавиатуры, но и мыши.

Рассмотрим некоторые из возможностей объектной модели Visual FoxPro.

 

Наследование

Наследование — одна из наиболее мощных возможностей объектно-ориентиро­ванного программирования. Заново созданный объект может наследовать харак­теристики (то есть свойства и методы) от предшественника — другого объекта. Хотя объекты могут наследовать характеристики от родительских классов, они также могут и не принимать во внимание наследование. Это позволяет разра­ботчикам устранить потребность в двойном коде, когда необходимы подобные функциональные возможности, и настроить объекты для использования в конкретных условиях. Visual FoxPro 5.0 полностью поддерживает наследование и, в случае надобности, его отмену либо программно, либо с помощью интер­фейса.

Создание подклассов

Использование подклассов значительно расширяет возможности как наследова­ния, так и классов. Это означает, что не только заново созданный объект способен наследовать характеристики от родительского класса, но также и заново созданный класс может быть наследником родительского. В дополнение к выгодам наследования, способность создания подклассов дает разработчикам возможность создавать библиотеки классов для многократного использования с очень маленьким новым кодом или вообще без него. Кроме того, если новые функциональные возможности нужны во всех полученных дочерних классах, разработчик просто реализует эти возможности только в родительском классе, а во всех полученных дочерних классах функциональные возможности будут наследоваться автоматически.

Инкапсуляция

Объектно-ориентированное программирование также позволяет пользователям помещать атрибуты (свойства) и правила поведения (методы) в объекты. В Visual FoxPro программисты могут разместить информацию об объекте так, чтобы доступ к ней был невозможен. Это позволяет создавать «черные ящики», которые скрывают информацию. Даже если внутренняя реализация объекта и управление им может быть полностью скрыта, объект «знает» все, что ему требуется «знать», чтобы вести себя в соответствии с задуманным алгоритмом.

Полиморфизм

Visual FoxPro 5.0 дает программистам возможность пользоваться преимущест­вами полиморфизма. Полиморфизм полезен, когда специфическая функция должна вести себя по-разному при различных обстоятельствах. Например, произвольный метод Append может быть полиморфен в зависимости от типа объекта (скажем, различные кнопки в пользовательской форме для добавления данных в различные таблицы), который вызвал метод Append. Это динамичес­кое связывание функциональных возможностей позволяет создавать структур­ные классовые иерархии, где базисные скелеты объектов определены в базовом классе, а специализированный код — в полученных подклассах.

Простейший пример создания управляющей кнопки для завершения работы с формой средствами объектно-ориентированного программирования приведен на рис. 1.

 

 
 

 


При работе в Visual FoxPro следует обратить самое серьезное внимание на то, что классы и объекты хотя и являются очень близкими понятиями, но это не одно и то же.

Класс содержит информацию о том, как объект будет выглядеть и как он будет себя вести. Другими словами, класс — это прототип или шаблон объекта. Когда вы создадите класс, опишете его свойства и необходимую реакцию на возможные события, с точки зрения пользователя в программе ничего не изменится. Чтобы что-то появилось (кнопка, поле и т. д.), необходимо на основании этого класса создать объект. Естественно, что чем точнее описания свойств класса соответст­вуют необходимой функциональности объекта, тем меньше работы придется выполнить, чтобы пройти путь от шаблона до реального объекта.

Стандартные возможности средств управления заложены в свойствах базовых классов Visual FoxPro. Описание базовых классов включено в саму СУБД и не может быть модернизировано. Это готовый инструмент для работы или исход­ный образец для создания других классов и подклассов.

Кроме перечисленных, новые для FoxPro средства управления и объекты могут быть созданы визуально или программно на основе соответствующих базовых классов. В табл. 3 перечислены доступные элементы управления и соот­ветствующие им типы данных.

Таблица 3. Типы данных элементов управления

Элемент управления Допустимые типы данных
CheckBox Логический, числовой
ComboBox Символьный, числовой
CommandButton Числовой
Command Group Символьный, числовой
EditBox Символьный
Grid Символьный, числовой
ListBox Символьный, числовой
OptionButton Числовой
OptionGroup Символьный, числовой
Spinner Числовой
TextBox Любой тип данных

 

 

Приведем краткое описание объектов и элементов управления 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...