Реляционные СУБД в Visual FoxPro 8



Использование базовых классов при создании форм

При создании форм мы широко использовали базовые классы, список которых содержится на панели инструментов конструктора формы. Для создания объектов на основе базового класса достаточно выбрать его на панели инструментов, поместить в требуемом месте, а затем определить свойства и методы созданных объектов. Созданный объект будет обладать всеми характеристиками базового класса. Пример создания объекта на основе базового класса Grid (Таблица) показан на рис. 19.1.

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

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

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

frmNew=CREATEOBJECT("FORM")

frmNew.Caption="3ar<MOBOK формы"

fnnNew. Show ()

Рис. 19.1. Создание объекта в конструкторе форм

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

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

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

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

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

  • в меню View (Вид) выбрать команду Properties (Свойства);
  • нажать правую кнопку мыши и из контекстного меню объекта выбрать команду Properties (Свойства).

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

Рис. 19.2. Окно свойств объекта

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

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

frmNew.Caption = cName

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

WITH имяОбъекта [,имяОбъекта]

[.имяСвойства = выражение] ENDWITH

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

WITH cmdNext, cmdPrev

.ForeColor=RGB(0,0,0)

.BackColor=RGB(2 55,2 55,2 55) ENDWITH

Используя язык Visual FoxPro, можно изменять свойства объектов не только на этапе их создания, но и в процессе выполнения программы. Например, вы можете при переходе из режима просмотра в режим редактирования изменить заголовок формы "Просмотр списка клиентов", который является одним из свойств формы, на "Редактирование списка клиентов".

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

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

Чтобы создать новое свойство объекта, используйте диалоговое окно New Property (Новое свойство) (рис. 19.3), которое открывается при выполнении команды New Property (Новое свойство) из меню Form (Форма). В этом диалоговом окне необходимо задать имя создаваемого свойства и описание.

В диалоговом окне New Property (Новое свойство) находятся флажки, определяющие возможности, приведенные в табл. 19.4.

Таблица 19.4. Флажки диалогового окна New Property

Флажок

Назначение

Access Method (Метод доступа)

Если установлен этот флажок, то для данного свойства будет автоматически создан метод Access (Доступ)

Assign Method (Метод назначения)

Если установлен флажок, то для этого свойства будет автоматически создан метод Assign (Назначение)

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

Рис. 19.3. Диалоговое окно New Property

Наследование событий и методов

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

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

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

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

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

Рис. 19.4. Вкладка Methods окна свойств объекта

Рис. 19.5. Окно редактирования методов

Замечание
Методы, выполняющиеся при наступлении событий, в окне свойств объекта в списке методов в дополнение к имени содержат слово Event (Событие).

Команда mouse позволяет вам программным путем имитировать события click (Нажатие), Doubleclick (Двойное нажатие), MouseMove (Перемещение мыши) и DragDrop (Перенести и оставить). Остальные события не могут имитироваться программно, но вы можете вызвать методы, связанные с этими событиями.

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

Для создания нового метода в меню Form (Форма) выберите команду New Method (Новый метод) и в открывшемся диалоговом окне New Method (Новый метод) (рис. 19.6) определите имя и краткое описание метода. Созданный вами метод добавляется в список методов объекта, и вы можете открыть окно редактирования метода для ввода программного кода.

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

Рис. 19.6. Диалоговое окно New Method

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

Таблица. 19.5. События, распознаваемые Visual FoxPr

Событие

Возникает

Activate

При активизации объектов FormSet (Набор форм), Form (Форма), Page (Вкладка формы) или при отображении объекта Toolbar (Панель управления)

AfterBuilld

При перестроении проекта или приложения, а также при создании динамической библиотеки (dll) или выполняемого файла (ехе) на основе проекта

AfterCloseTables

После закрытия таблиц или представлений данных

AfterDock

После того, как фиксируется панель инструментов

AfterRowColChange

При переходе в другую строку или другой столбец объекта Grid (Таблица)

BeforeDock

Имеет место перед фиксацией объекта ToolBar (Панель управления)

BeforeOpenTables

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

BeforeRowCoIChange

Перед тем, как пользователь изменяет активную строку или столбец объекта Grid (Таблица)

Click

При нажатии и отпускании левой кнопки мыши

ConunandTargetExec

При активизации программой-контейнером приложения типа Active Document (Активный документ)

CommandTa rget Query-

При изменении программой-контейнером пользовательского интерфейса

Con tainerRel ease

При закрытии программой-контейнером приложения типа Active Document (Активный документ)

DblClick

При двойном нажатии и отпускании левой кнопки мыши

Deactivate

Когда деактивизируется объект типа форма

Deleted

Когда пользователь удаляет пометку записи на удаление или когда выдается команда delete

Destroy

Когда освобождается объект

DownClick

При нажатии кнопки со стрелкой, направленной вниз на объектах типа comboBox (Раскрывающийся список). ListBox (Список) и Spinner (Счетчик)

DragDrop

После завершения операция "перенести-и-оставить"

DragOver

Когда элемент управления, переносимый с помощью мыши, накрывает объект назначения

DropDown

В момент, когда после нажатия кнопки со стрелкой в элементе управления ComboBox (Раскрывающийся список) должен появиться список

Error

При возникновении ошибки

ErrorMessage

Используется для определения сообщения об ошибке, когда событие Valid возвращает значение False

GotFocus

Когда объект получает фокус в результате действий пользователя или выполнения программного кода

HideDoc

При переходе из активного документа

Init

При создании объекта, когда объект еще не выведен на экран

Interactive Change

При изменении значения элемента управления с помощью клавиатуры или мыши

KeyPress

При нажатии и отпускании клавиши

Load

Имеет место непосредственно перед созданием объекта

LostFocus

Когда объект теряет фокус

Message

Отображает сообщение в строке состояния, когда объект получает управление

MiddleClick

При нажатии средней кнопки мыши (для трехкнопочной мыши)

MouseDown

При нажатии кнопки мыши

MouseMove

При перемещении указателя мыши по объекту

MouseUp

При отпускании кнопки мыши

MouseWheel

При вращении колесика мыши, если мышь его содержит

Moved

При перемещении объекта на новое место или когда значения свойства тор или Left объекта-контейнера изменяются программным способом

OLECompleteDrag

Когда данные помещены на новое место или отменена операция "перенести-и-оставить"

OLEDragOver

Возникает в том случае, если свойство OLEDropMode имеет значение 1 и данные перенесены от источника к приемнику

OLEGiveFeedBack

После каждого события OLEDragOver

OLESetData

Возникает у источника данных при выполнении метода GetData, если нет данных в нужном формате

OLEStartDrag

В начале переноса данных с помощью механизма "пере-нести-и-оставить"

Paint

При перерисовывании формы или панели инструментов

ProgrammaticChange

При изменении в коде значения элемента управления

QueryAddFile

Перед добавлением файла в проект

QueryModifyFile

Перед изменением файла в проекте

QueryRemoveFile

Перед удалением файла из проекта

QueryRunFile

Перед выполнением файла или предварительным просмотром отчета или почтовой этикетки

QueryUnload

Перед выгрузкой объекта Form (Форма)

RangeHigh

Возвращает наибольшее значение счетчика или число элементов списка и имеет место, когда элемент управления Spinner (Счетчик) или TextBox (Поле ввода) теряет фокус и когда элемент управления ComboBox (Раскрывающийся список) или ListBox (Список) получает фокус

RangeLow

Возвращает наименьшее значение счетчика или значение первого элемента списка и имеет место, когда элемент управления spinner (Счетчик) или TextBox (Поле ввода) теряет фокус или когда элемент управления ComboBox (Раскрывающийся список) или ListBox (Список) получает фокус

ReadActivate

При активизации новой формы в наборе форм

ReadDeactivate

При деактивизации формы в наборе форм

ReadShow

Когда выдана команда show gets, в активном объекте FormSet (Набор форм) активизируется объект FormSet (Набор форм)

ReadValid

Имеет место после деактивизации объекта FormSet (Группа форм)

ReadWhen

Имеет место после загрузки объекта FormSet (Набор форм)

Resize

При изменении размеров объекта

RightClick

При нажатии и отпускании правой кнопки мыши

Run

Имеет место, когда Active Document (Активный документ) готов к выполнению кода пользователя

Scrolled

При прокрутке данных в объекте управления Grid (Таблица)

ShowDoc

При переходе в активный документ

Timer

Когда истекает интервал времени, заданный свойством Interval (Интервал)

UIEnable

Имеет место для всех объектов, содержащихся внутри обьекта Page (Вкладка формы), каждый раз когда объект Page (Вкладка формы) активизируется или деактивизи-руется

UnDock

При перемещении объекта ToolBar (Панель управления) с помощью мыши

Unload

При освобождении объекта

UpClick

При нажатии кнопки с направленной вверх стрелкой на объектах управления типа ComboBox (Раскрывающийся список), ListBox (Список) и Spinner (Счетчик)

Valid

Перед тем, как элемент управления теряет фокус

When

Перед тем, как элемент управления получает фокус

Таблица 19.6. Методы, используемые Visual FoxPro

Метод

Описание

ActivateCell

Активизирует ячейку в элементе управления Grid (Таблица)

AddColumn

Добавляет объект Column (Столбец) в элемент управления Grid (Таблица)

Add I tern

Добавляет новый элемент списка в объект ComboBox (Раскрывающийся список) или ListBox (Список), предоставляя при этом возможность задать индекс элемента

AddListltem

Добавляет новый элемент списка в объект ComboBox (Раскрывающийся список) или ListBox (Список), давая возможность задать идентификатор элемента

AddObject

Добавляет объект в контейнер на этапе выполнения

AddProperty

Добавляет новое свойство в объект

AddToSCC

Добавляет файл в проект

Box

Рисует прямоугольник в форме

Build

Перестраивает проект или создает приложение (арр), динамическую библиотеку (dll) или выполняемый файл (ехе) из проекта

Checkln

Запоминает изменения, осуществленные в выбранном файле проекта

Checkout

Выбирает файл из проекта для изменения

Circle

Рисует окружность или эллипс в форме

Cleanup

Очищает таблицу проекта, удаляя записи с пометкой на удаление и сжимая Memo-поля

Clear

Очищает содержимое элемента управления comboBox (Раскрывающийся список) или ListBox (Список)

ClearData

Очищает все данные и форматы данных в объекте Dataobject (Объект данных). Доступен только в режиме выполнения программы

CloneObject

Создает копию объекта со всеми его свойствами, событиями и методами

Close

Закрывает проект и очищает объекты ProjectHook (Проект) и Project (Проект)

CloseTables

Закрывает таблицы и представления данных, связанные со средой

Cls

Удаляет графику и текст из формы

DataToClip

Копирует группу записей в текстовом виде в буфер обмена Windows

DeleteColumn

Удаляет объект Column (Столбец) из элемента управления Grid (Таблица)

Dock

Располагает объект ToolBar (Панель управления) у границы основного окна Visual FoxPro

DoCmd

Выполняет команду Visual FoxPro для сервера приложения Visual FoxPro

DoScroll

Моделирует работу пользователя с полосами прокрутки в объекте Grid (Таблица)

DoVerb Drag

Выполняет команду для заданного OLE-объекта Начинает, заканчивает или отменяет операцию переноса объекта с помощью мыши

Draw

Перерисовывает объект формы

Eval

Вычисляет выражение и возвращает результат

GetData

Заполняет данные из объекта DataObject (Объект данных). Доступен только в режиме выполнения программы

GetFormat

Возвращает True, если заданный формат доступен для объекта Dataobject (Объект данных). Доступен только в режиме выполнения программы

GetLatestVersion

Определяет последнюю версию файла проекта и копирует файл с пометкой только для чтения на диск

GoBack

Возникает при возврате назад в списке хронологии программы-контейнера

GoForward

Возникает при переходе вперед в списке хронологии программы-контейнера

Help

Открывает окно справки

Hide

Скрывает объект Form (Форма), FormSet (Набор форм) или ToolBar (Панель управления), присваивая его свойству Visible значение False

IndexToItemID

Возвращает индекс элемента с указанным идентификатором для объектов типа ComboBox (Раскрывающийся список) и ListBox (Список)

Item

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

ItemlDToIndex

Возвращает индекс позиции элемента в списке данного элемента управления для объектов типа ComboBox (Раскрывающийся список)и ListBox (Список)

Line

Рисует линию в форме

Modify

Открывает файл проекта для редактирования в соответствующем конструкторе или редакторе

Move

Перемещает объект

NavigateTo

Active Document (Активный документ) перемещается в контейнере в определенное место

OLEDrag

Начинает операцию "перенести-и-оставить"

Point

Возвращает цвет в модели RGB (красный-зеленый-синий) для заданной точки формы

Print

Выдает в объекте Form (Форма) символьную строку, которую нужно напечатать

PSet

Устанавливает для точки формы или основного окна Visual FoxPro основной цвет символов

Quit

Завершает работу Visual FoxPro

ReadExpression

Возвращает выражение, введенное в качестве значения свойства в окне свойств

ReadMethod

Возвращает текст заданного метода

Refresh

Перерисовывает объект Form (Форма) или элемент управления, обновляя все значения

Release

Освобождает объект FormSet (Набор форм) или Form (Форма) из памяти

Remove

Удаляет файл из сборника файлов и проектов

RemoveFromSCC

Удаляет файл из проекта

RemoveItem

Удаляет элемент из списка элемента управления типа СотЬоВох (Раскрывающийся список) или ListBox (Список)

RemoveListltem

Удаляет элемент из списка элемента управления типа СотЬоВох (Раскрывающийся список) или ListBox (Список)

RemoveObj ec t

Удаляет заданный объект из объекта-контейнера на этапе выполнения

Requery

Повторно опрашивает источник строк, к которому привязан элемент управления типа ListBox (Список) или СотЬоВох (Раскрывающийся список)

RequestData

Создает массив, содержащий данные из таблицы Visual FoxPro

Reset

Сбрасывает элемент управления Timer в нулевое состояние

ResetToDefault

Восстанавливает принятые по умолчанию в Visual FoxPro значения свойства, события или метода

Run

Запускает файл проекта на выполнение или предварительный просмотр

SaveAs

Сохраняет объект в виде файла с расширением SCX

SaveAsClass

Сохраняет экземпляр объекта в качестве определения класса в библиотеке классов

SetAll

Присваивает установку некоторого свойства всем элементам управления данного объекта container (Контейнер) или определенному классу таких элементов управления

SetData

Помещает данные в Dataobject (Объект данных). Доступен в режиме выполнения программы

SetFocus

Устанавливает фокус в элементе управления

SetFormat

Помещает формат данных в Dataobject (Объект данных). Доступен в режиме выполнения программы

SetMain

Делает текущий файл главным в проекте

SetVar

Создает переменную и хранит ее значение

SetViewPort

Определяет значения ViewPortLeft и ViewPortTop для формы

Show

Отображает объект Form (Форма) и определяет его тип — модальный или немодальный

ShowWhatsThis

Отображает тему справочной системы, заданную свойством WhatsThisHelpID

TextHeight

Возвращает высоту текстовой строки, используя единицу измерения, устанавливаемую свойством ScaleMode объекта Form (Форма)

TextWidth

Возвращает ширину текстовой строки, используя единицу измерения, устанавливаемую свойством ScaleMode объекта Form (Форма)

UndoCheckOut

Отменяет все изменения, осуществленные в выбранном файле, и оставляет его в проекте в неизмененном виде

WhatsThisMode

Отображает курсор мыши в виде вопросительного знака и устанавливает режим whats This Help (Справка типа что это?)

WriteExpression

Записывает символьную строку в таблицу свойств

WriteMethod

Записывает указанный текст в заданный метод

ZOrder

Помещает заданный объект Form (Форма) или элемент управления в заданную позицию данного объекта по отношению к другим объектам

Назад Начало Вперед



Книжный магазин