Создание объектов на основе базовых классов

Свойство как атрибут элемента управления, поля или базы данных, который устанавливается для определения одной из характеристик объекта или какого-либо аспекта его поведения. Список доступных методов обработки событий определяемым базовым классом.

Рубрика Программирование, компьютеры и кибернетика
Вид лекция
Язык русский
Дата добавления 14.02.2014
Размер файла 20,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Лекция 1

Создание объектов на основе базовых классов свойство метод событие

Создание объектов на основе базовых классов при создании формы обычно осуществляется просто. Список всех базовых классов содержится на панели инструментов конструктора формы. Для создания экземпляра выбранного класса достаточно перенести пиктограмму выбранного класса в форму и разместить ее в требуемом месте формы. Созданный объект будет обладать всеми характеристиками базового класса.

Имена объектов формы определяются при их помещении в форму. Наименование объектов содержат тип объекта и порядковый номер объекта в форме (например, Command 1, Label 2).

Вы можете создавать некоторые объекты не только в конструкторе форм, но и с помощью функции CREATEOBJECT языка Visual FoxPro. Синтаксис этой функции:

CREATEOBJECT (имя класса [ , параметр 1, параметр 2, ... ] )

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

frmTest=CREATEOBJECT (“FORM”)

frmTest.Caption=“Заголовок новой формы”

frmTest . Show ( )

Свойства объектов

Каждый из объектов, созданных на основе базовых классов, наследует свойства базового класса. Свойства подобны переменным, однако в отличие от последних они не существуют вне объекта.

Возможность изменения свойств объектов в Visual FoxPro является мощным инструментом управления данными в интерактивном режиме. Например, вы можете:

изменить свойства экранной формы (заголовок, размер и т.п.);

изменить цвета полей ввода, формат отображения;

запретить ввод в поля, переход на них или же сделать их невидимыми и многое другое.

Для того чтобы определить какие-либо из свойств объекта в интерактивном режиме, вам необходимо выделить требуемый объект, после чего нажать правую кнопку мыши и из меню объекта выбрать команду Properties. В результате на экране появится окно свойств текущего объекта. Свойства объектов могут быть символичными, логическими и числовыми. Некоторые из них могут принимать произвольные значения (например, заголовок поля ,координаты объекта-поля ). Другие свойства могут принимать любые значения из определенного списка.

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

* присваиваем переменной cName значение заголовка формы

cName=frmest . Caption

* назначаем новый заголовок формы

frmTest . Caption=“новый заголовок формы”

Visual FoxPro позволяет изменять свойства объектов в процессе выполнения программы.

Свойства, определенные для объектов с помощью окна свойств или программным путем, сохраняются в описании формы. Поэтому, если во время одного сеанса работы вы изменили свойства объектов, они сохраняются до следующего изменения.

Изменение свойств объекта не приводит к генерации события, за исключением изменения свойства Value.

Visual FoxPro позволяет не только использовать свойства, наследованные из базового класса, но и создавать новые свойства, которые вы можете использовать для хранения характеристик объектов и связанных с ними данных. Для создания нового свойства объекта используется команда Form | New Property конструктора форм, которая открывает окно диалога ”New Property”.Определите в этом окне диалога имя свойства и его описание. Созданное вами свойство появляется в вкладке “Other” окна свойств объекта. Далее вы можете присвоить созданному свойству требуемое значение в окне свойств объекта или программным путем и использовать его при выполнении приложения.

События и методы

Аналогично свойствам наследуются события и методы базового класса, на основе которого создается объект. Список методов, определенных для объекта, отображается во вкладке “Methods” окна свойств объекта.

Для каждого события определен соответствующий ему метод, который выполняется при возникновении данного события. Например, метод Click выполняется при нажатии кнопки мыши. Список доступных методов обработки событий определяется базовым классом. Именно эти методы обеспечивают обработку всех действий пользователя (нажатие клавиш, управление мышью). Visual FoxPro предоставляет возможность модифицировать действия, выполняемые при обработке события данного объекта. Для редактирования метода установите курсор на этот метод в списке методов и нажмите два раза на кнопку мыши. На экране открывается окно редактирования метода, в котором вы можете написать программу обработки события. Например, для кнопки вы можете определить программу создания отчета, которая вызывается при нажатии на данную кнопку.

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

Методы, выполняющиеся при наступлении событий, в окне свойств объекта в списке методов в дополнение к имени метода содержит слово “Event” .

Команда MOUSE позволяет вам программным путем имитировать события Click, DoubleClick, MouseMove и DragDrop. Остальные события не могут имитироваться программно, но вы можете вызвать методы , связанные с этими событиями.

Кроме методов, связанных с событиями, объект может содержать и дополнительные методы, которые выполняются только при их вызове. Например, для формы могут быть определены методы перехода на следующую запись, удаления записи и т.п. Эти методы могут наследоваться из базового класса, но вы можете создавать новые методы и для отдельных объектов. Для создания нового метода выполните команду Form| New Method конструктора форм и в окне диалога “New Method” определите имя и краткое описание метода. Созданный вами метод добавляется в список методов объекта и вы можете открыть окно редактирования метода для ввода программного кода.

Для выполнения метода необходимо указать не только имя метода, но и объект, к которому будет применяться данный метод, Имя объекта и имя метода разделяются точкой.

Вложенность объектов

Объекты, созданные на основе классов-контейнеров, могут содержать другие объекты. Ссылка на вложенный объект осуществляется путем перечисления объектов, содержащих этот объект. Элементы списка разделяются точками. Например, для ссылки на столбец colCountry объекта-сетки grdADDRESS, которая в свою очередь также является объектом, необходимо написать grdADDRESS.colCountry. Такая ссылка называется абсолютной ссылкой. Если глубина вложения объекта большая, абсолютная ссылка может включать слишком много объектов и будет слишком громоздкой. В Visual FoxPro имеются средства, которые позволяют сократить список объектов ссылки.

Для ссылки на активную форму вы можете использовать свойства ActiveForm экранного объекта (_SCREEN) , что позволяет вам получить доступ к активной форме, даже если не знаете ее имя. Например, следующее выражение позволяет изменить заголовок активной формы:

_SCREEN.ActiveForm.Caption=`'Новый заголовок формы”

Аналогично, свойство ActiveControl позволяет вам получить доступ к активному объекту формы, а свойство ActivePage - к активной странице формы. Например, следующее выражение позволяет изменить надпись активной кнопки.

_SCREEN.ActiveControl.Caption=“Печать ведомости”

При ссылке на вложенный объект вы можете использовать свойство Parent и ключевые слова для идентификации объекта, к которому вы хотите получить доступ. Свойство Parent содержит ссылку на непосредственный контейнер объекта. Список ключевых слов и определяемые ими ссылки приведены в таблице.

Наименование

Ссылка

THIS

На сам объект

THISFORM

На форму, которая содержит объект

THISFORMSET

На группу форм, которая содержит объект

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

THIS.BackColor=RGB(255,255,255)

THIS.Parent.BackColor=RGB(195,0,0)

THISFORM.Caption=`Форма, содержащая объект`

THISFORMSET.Caption=`Группа форм, содержащая объект`

Каждый объект обрабатывает связанные с ним события независимо. Поэтому контейнер не может реагировать на события вложенного в него объекта даже в том случае, если данный объект не содержит метода для обработки события, а контейнер может реагировать на данное событие.

Использование свойств, событий и методов

Свойство - атрибут элемента управления, поля или базы данных, который вы устанавливаете для определения одной из характеристик объекта или какого-либо аспекта его поведения.

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

Метод - действие, которое способен выполнить объект. Методы, не связанные с событиями, могут вызываться из методов, выполняемых при наступлении событий.

Устанавливать свойства объекта можно как в процессе выполнения, так и в процессе создания объекта следующим образом:

Parent.Object.Property = Value

(ссылка на объект-контейнер элемента управления.объект.свойство.=значение)

Например, Forma1.Text1.Enabled = .T.

Методы вызываются после создания объекта.

Синтаксис:

Parent.Object.Method

Например, FormSet1.Form1.Show

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

Например, Form1.Caption = Form1.GetNewCaption( )

(заголовок формы принимает значение, возвращаемое методом, определенным пользователем GetNewCaption)

Параметры, передаваемые методу, должны быть заключены в круглые скобки после имени метода.

Например, Form1.Init(v) передает параметр v обработчику события Init для объекта Form1.

Чтобы выполнить метод родительского класса в среде метода подкласса, используют оператор разрешения области видимости: (::)

Имя класса::Метод

При создании подкласса его методы автоматически наследуются из родительского класса. Оператор :: позволяет выполнить метод родительского класса внутри метода подкласса, а затем выполнить дополнительные действия для метода подкласса.

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

1. Набор событий базовых классов Visual FoxPro фиксирован и не может быть расширен.

2. Каждый класс распознает ряд фиксированных стандартных событий, минимальный набор которых включает в себя события Init (Имеет место при создании объекта), Destroy (имеет место, когда освобождается объект) и Error(Имеет место при возникновении в методе ошибки этапа выполнения).

3. Если в определении класса имя метода совпадает с именем события, распознающегося этим классом, то метод будет выполняться при наступлении соответствующего события.

4. Метод добавляется к классу после включения процедуры или функции в определение класса.

Использование объектно-ориентированных технологий позволяет инкапсулировать данные (инкапсуляция - хранение в скрытом виде информации об объекте, такой как внутренние структуры данных и код). Лучше всего это делать путем защиты свойств и методов объекта, что предотвращает доступ к ним со стороны внешних объектов. Защита осуществляется путем установки флажка Protected в диалогах создания свойства или метода, после чего это свойство (метод) становятся доступными только из внутренних методов текущего класса. Их модификация из внешних объектов или процедур запрещается. Защита не означает полную недоступность извне. Обычно объект, содержащий защищенные свойства, содержит в себе еще и метод, дающий к ним доступ, а также метод, позволяющий эти свойства изменить. В этих двух методах можно осуществлять различные проверки, разграничивать доступ.

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

Для создания класса можно использовать: команду меню File/New (опция "Class") или команду: Create Class. В результате появляется диалог New Class.

В поле ввода Class Name указывается имя создаваемого класса, в поле Based On - имя класса, на основе которого создается новый класс. Поле From доступно только для чтения и содержит имя библиотеки классов, из которой выбран базовый класс. При использовании базовых классов VFP данное поле остается пустым. В поле Store in вводится имя библиотеки, в которой будет храниться создаваемый класс. Библиотека классов представляет собой файл с расширением VCX. Вы можете выбрать созданные ранее библиотеки или указать новую библиотеку. Для создания библиотеки классов можно также использовать команду Create Classlib. После ввода значений на экране появится окно конструктора классов, аналогичное окну конструктора форм. Если создаваемый класс является контейнером, то вы можете размещать в классе объекты, которые в свою очередь могут создаваться на основе пользовательских классов. Для каждого объекта класса можно определить свойства и методы, а при необходимости добавить новые.

Например, был создан класс типа форма, содержащий определенный фон и заголовок.

Форма, созданная на основе данного класса, будет содержать размещенный в классе текст заголовка. Разработчику формы потребуется только изменить содержание этого текста, при этом будут соблюдены все стандарты на создаваемую форму.

При разработке приложения удобно иметь несколько библиотек классов, в которых можно размещать отдельные группы классов, например, в одной библиотеке можно располагать все классы кнопок, используемых в приложении, а в другой - классы форм.

В случае необходимости можно копировать класс из одной библиотеки в другую. Для этого во вкладке "Class" окна проекта надо раскрыть обе библиотеки и перетащить мышью нужный класс в новую библиотеку.

Для удаления класса из библиотеки классов можно использовать команду Remove class или кнопку Remove в окне проекта. Для изменения имени класса - команду Rename class или опцию Rename в окне проекта.

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

Например можно определить класс - типа кнопка с определенным шрифтом и текстом заголовка. На его основе можно создать класс-кнопку для выхода из программы. В этом случае в диалоге "New class" указывается не только имя класса, на основе которого создается новый класс, но библиотеку, в которой он хранится (он - класс). У создаваемого класса в окне конструктора классов вами изменяется заголовок кнопки и определяются действия, выполняемые при нажатии на эту кнопку. В данном случае - это процедура закрытия формы.

На основе такого класса-кнопки можно создать подкласс, где вместе с текстовой кнопкой будет использоваться кнопка с графическим изображением. В качестве базового класса здесь выбирается ранее созданный класс-кнопка с текстом и процедурой метода Click (выхода из программы, выполняемый при нажатии на кнопку). Для создаваемого подкласса этот метод наследуется, поэтому достаточно изменить внешний вид кнопки.

В создаваемых классах можно размещать объекты созданных ранее пользовательских классов. Для этого на панели инструментов выберите кнопку View class. Появляющееся всплывающее меню содержит список библиотек классов. С помощью опции Add можно добавить в этот список новую библиотеку.

Команда Class/class info открывает окно диалога Class info, с помощью которой можно просмотреть основную информацию о классе и определить пиктограмму для обозначения класса. Имя 1-й из них вводится в поле Toolbar Icon и в дальнейшем отображается на панели инструментов "Form controls" в окнах конструктора форм и конструктора классов, содержащей данный класс. Имя 2-й пиктограммы вводится в поле Containes icon и отображается в окне диалога Class Browse.

Если вы не определите пиктограммы для создаваемых классов, на панели инструментов Form controls будут отображаться пиктограммы базовых объектов, на базе которых создается класс. Если в вашей библиотеке классов содержится несколько однотипных классов, все они будут иметь одинаковые пиктограммы. В этом случае выбрать требуемый класс можно только по всплывающей подсказке, содержащей имя класса.

Вкладка "Members" окна диалога "Class info" содержит список объектов, входящих в класс и список методов класса. При нажатии кнопки Modify появляется окно, в котором можно определить область видимости объектов: Hidden - указывает, является ли объект скрытым, Protected указывает, защищен ли данный объект (если установлен, то свойства данного объекта можно изменять только при редактировании данного класса).

Для выбора пользовательского класса, используемого при создании формы, в области "Template classes" установите флажок Form и выберите требуемый класс. Аналогичным образом можно установить и пользовательский класс для создания набора форм. При создании форм в составе набора форм можно выбрать тип используемой формы из библиотек классов аналогично выбору других объектов.

Существующую форму можно использовать для создания класса. Причем вы можете сохранить всю форму в виде класса или выбрать определенные объекты формы и сохранить их в виде класса. Для сохранения формы-класса команда меню File/Save as class и в открывающемся окне диалога переключатель Save ставится в положение "Сurrent form", а для сохранения объектов формы в виде класса - в положение Selected controls, для сохранения набора форм - в положение Entire Form set.

Class Browser

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

Для открытия окна "Class browser" выполните команду Class browser из меню Tools или в командном окне выполните команду Do (-browser).

В центральной части окна Class browser отображается список классов выбранной библиотеки. Знак (<<), перед именем класса указывает на то, что в окне не отображается его родительский класс, поскольку он находится в другой библиотеке. Двойное нажатие кнопки мыши на имени этого класса автоматически добавляет библиотеку, содержащую родительский класс, в окно Class browser. При этом в окно добавляются все классы из этой библиотеки.

В окне "Class browser" отображаются несколько библиотек классов. Добавить новую библиотеку можно также с помощью кнопки View additional file. Если вас интересуют классы одного типа (например, класс кнопок), вы можете выбрать их из списка Type. С помощью контекстного меню, вызываемого нажатием правой кнопки мыши, можно установить свойства объекта класса, модифицировать класс, переименовать, удалить класс и т.д. Например, с помощью опции Empty отображаются пустые методы в списке элементов класса.

Над списком классов находится пиктограмма выбранного класса. Ее можно установить в окне конструктора классов с помощью команды Class/Class info. Кнопка View class code - отображает исходный текст описания класса, который можно использовать при создании собственных классов программным путем. Кнопка Find - предназначена для поиска класса и элементов класса по имени класса, описанию класса, имени элемента класса и его описанию.

Размещено на Allbest.ru


Подобные документы

  • Исследование характеристик и функциональных возможностей системы управления базами данных Microsoft Office Access. Определение основных классов объектов. Разработка базы данных "Делопроизводство". Создание таблиц, форм, запросов, отчетов и схем данных.

    реферат [1,3 M], добавлен 05.12.2014

  • Проектирование базы данных, предназначенной для автоматизации библиотеки аудиокниг. Запрос на выборку с условием отбора, с созданием вычисляемого поля. Создание формы с круговой диаграммой на основе запроса на выборку. Проектирование форм и отчетов базы.

    контрольная работа [6,2 M], добавлен 06.01.2013

  • Список событий, которые имеют время наступления. Инициализация, визуализация, сохранение, восстановление событий. Функция проверки наличия событий, удовлетворяющих заданным требованиям. Создание пользовательского интерфейса. Форма создания нового события.

    курсовая работа [1,9 M], добавлен 20.06.2012

  • Создание базы данных и ее системы управления. Динамическая информационная структура, двунаправленный список. Создание файла, содержащего сведения об абонентах телефонной сети. Вывод информации в файл для печати. Обработка информации в базе данных.

    курсовая работа [1,7 M], добавлен 18.03.2013

  • Рассмотрение понятия абстрактного типа данных. Реализация операций добавления элемента в пустой список и после указанных данных, удаления конкретного элемента и распечатки записей. Разработка интерфейса, исключающего нелигитимное модифицирование данных.

    курсовая работа [721,4 K], добавлен 24.09.2010

  • Проектирование и создание информационной базы данных для управления предприятием "Завод металлоизделий". Данные для базы, предметная область, атрибуты объектов базы данных. Объектные отношения, их ключи, связи объектов и отношений базы данных предприятия.

    реферат [26,9 K], добавлен 04.12.2009

  • Сущность базы данных. Процесс построения концептуальной модели. Построение реляционной модели, создание ключевого поля. Процесс нормализации. Проектирование базы данных в ACCESS. Порядок создание базы данных. Создание SQL запросов и работа в базе данных.

    курсовая работа [185,6 K], добавлен 08.11.2008

  • Создание базы данных и таблиц. Определение таблиц и информации, которую они будут содержать. Определение индексированных полей и организации связи между ними. Создание формы в окне базы данных. Создание отчета "Список улиц". Выбор внешнего вида макета.

    контрольная работа [1,4 M], добавлен 11.04.2012

  • Особенности проектирования программы на языке С++ для обработки данных из таблиц базы данных. Основные функции программы, создание концептуальной модели базы данных и диаграммы классов, разработка интерфейса пользователя и запросов к базе данных.

    курсовая работа [2,1 M], добавлен 08.06.2012

  • Анализ предметной области. Перечень хранимой информации: таблицы, поля, типы. Выделение сущностей, атрибутов, ключей, связей. Начальное заполнение данными БД. Создание и запуск базовых запросов. Проектирование базы данных в среде Enterprise Architect.

    курсовая работа [1,6 M], добавлен 16.02.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.