Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная №4 Изучение технологии проектирования классов и простейших форм

.doc
Скачиваний:
7
Добавлен:
25.05.2014
Размер:
72.19 Кб
Скачать

ЛАБОРАТОРНАЯ РАБОТА N 4

  1. ЦЕЛЬ РАБОТЫ

Изучить технологию проектирования классов и простейших форм.

  1. МЕТОДИЧЕСКИЕ УКАЗАНИЯ

    1. Настройка СУБД

Для интерактивного изменения установок в Visual FoxPro имеется удобное диалоговое окно Options, в котором сосредоточены почти все средства установки конфигурации СУБД. Диалоговое окно появляется после выбора команды Options меню Tools. Окно имеет несколько вкладок для задания различных параметров. Перечень настроек диалогового окна приведен в таблице 1.

Кроме того в Visual FoxPro для автоматической установки рабочей среды используются файлы инициализации FoxPro и CONFIG FRW.

Файл FOXPRO.INI содержит информацию об используемом по умолчанию шрифте, размере и внешнем виде окна Visual FOX. Эти установки можно изменить, отредактировав файл FOXPRO.INI

Таблица 1

Настройка

Назначение

Вкладка View

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

Status bar

Отображение строки состояния внизу главного окна Visual FoxPro

Aналогично SET STATUS BAR

Clock

Отображение времени в строке состояния Аналогично SET CLOCK STATUS

Command results

Вывод результата выполнения определенных команд . Аналогично SET TALK

System messages

Вывод системных сообщений, в строке состояния. Аналогично SET NOTIFY

Вкладка General

Условия ввода данных и программирования

Use Visual FoxPro

Color palette

Для отображений и OLE-объектов используется цвета по умолчанию Visual FoxPro. Аналогично SET PALETTE

Confirm file replacement

Предупреждение перед перезаписью файла. Аналогично SET SAFETY

Browse IME control

Режим редактирования текстовых полей для двухбайтовой кодировки. Аналогично IMESTATUS ()

Warning sound Off/Default

Выключает-включает подачу звукового сигнала. Аналогично SET BELL OFF

Programming Cancel programs on escape

Разрешает прерывать работу программы нажатием клавиши Cancel. Аналогично SET ESCAPE

Log compilation errors

Записывает ошибки при компиляции в файл с расширением ERR. Аналогично SET LOGERRORS

DATA entry Navigation Keys

Выбирает способ перемещения между элементами управления в форме, совместимой с MS-DOS или Windows. Аналогично SET KEYCOMP

Enter or tab to exit fields

Позволяет выйти из текстового поля только при нажатии клавиши Enter или Tab Аналогично SET CONFIRM

Вкладка

DATA

Условия работы с данными в таблицах

Вкладка REMOTE DATA

Условия доступа к внешним данным

Вкладка

File LOCATION

Местоположение файлов Visual FoxPro, установка каталога по умолчанию и путей поиска файлов

Default directory

Устанавливает каталог по умолчанию. Аналогично SET DEFAULT

Search path

Определяет список каталогов, в которых Visual FoxPro будет искать файлы, не обнаруженные в каталоге по умолчанию. Аналогично SET PATH

Help file

Определяет файл, который будет использоваться для контекстной справки. Аналогично SET HELP…

Menu buider

Определяет имя программы, используемой для построения меню

Вкладка FORM

Установки Конструктора форм

Show position

Выводит координаты объекта в строке состояния

Tab ordering

Определяет способ установки порядка перехода между элементами управления

Seale units

Определяет единицу измерения, принимаемую по умолчанию в Конструкторах классов и форм

Maximum de sign area

Определяет максимальный размер формы при проектировании

Template classes Builder lock

Определяет, что при создании нового объекта будет автоматически запускаться Построитель, если он существует для данного типа элемента

Вкладка Projects

Установки Диспетчера проектов

Вклад Controls

Используемые визуальные библиотеки классов и установки OLE

Вклад Regional

Установки для даты, времени и других форматов

Use System Settings

Используются установки Windows, сделанные в Control Panel. Аналогично SET SYSFORMAT

Date Format

Определяет формат даты. Аналогично SET DATE

DATE Separator

Определяет разделитель, используемый для определения элементов даты. Аналогично SET MARK

Century

В дате год будет отображаться четырьмя цифрами. Аналогично SET CENTURY…

Decimal Digits

Определяет сколько десятичных разрядов будет отображаться при выводе чисел. Аналогично SET DECIMALS…

Вкладка Debug

Опции для отладки и трассировки программ и форм

Вкладка Coloring

Шрифт и цвета для выделения различных элементов программного кода

Вкладка

Fielol Mapping

Определяет, какой класс будет использоваться для создания элемента управления при перетаскивании на форму таблиц или полей

Файл CONFIG. FPW предназначен для определения места хранения файлов Visual Fox Pro и установок по умолчанию для команд SET.

Команды SET можно определить и непосредственно в программах пользователей.

    1. Проектирование классов

Каждый класс имеет свое описание класса. Описание классов хранятся в библиотеках классов – файлах с расширением VCX. Новый класс можно создать как программным путем так и используя средства визуального программирования – окно проектирования класса.

Создание нового класса можно инициировать или из диспетчера проекта, или выбрав пункт меню File/New и указав тип нового файла Class.

В результате этих действий будет открыто диалоговое окно «New Class», в котором требуется указать имя нового создаваемого класса, имя родительского класса (базового класса Visual FoxPro или определенного пользователем класса) и имя библиотеки, в которой будет сохранено описание класса.

После определения родительского класса и библиотеки Visual FoxPro открывается окно проектирования класса «Class Designer». Используя набор инструментария Form Controls, можно добавить к создаваемому классу любые объекты. Окно «Properties» можно использовать для настройки свойств добавляемых объектов.

Создаваемый класс наследует свойства и методы от своего родительского класса. Одновременно создаваемый класс может иметь свой дополнительный набор свойств и методов. Создать новое свойство можно или с помощью соответствующего набора инструментария, или выбрав пункт меню Class/New Property. При выполнении этих действий открывается диалоговое окно «New Property». В этом окне следует указать имя нового создаваемого свойства и установить значение поля Visibilty, Public, Protected, или Hidden, указывающее, можно ли будет изменять значение этого свойства вне окна проектирования класса.

Создать новый метод можно или с помощью соответствующего набора инструментария, или выбрав пункт меню Class/New Metod. При выполнении этих действий открывается диалоговое окно «New Metod». Для кодирования нового метода используется окно кода. Это окно можно вызвать как из меню View, так и выполнив двойной щелчок мыши на названии метода в окне «Properties». Методы, для которых введен программный код, отмечаются в окне свойств как User Procedure.

    1. Редактирование классов

Редактирование уже существующего класса можно выполнить из диспетчера проекта, программным путем или выбрав пункт меню File/Open и указав тип файла Visual FoxPro откроет диалоговое окно «Open». На левой панели следует выбрать открываемую библиотеку класса, а на панели списка Class Name - имя класса из этой библиотеки. Диалоговое окно «Class Info», вызываемое выбором пункта меню Class/Class Info, содержит две вкладки: Class и Members.

Вкладка Members. содержит список всех дочерних объектов, свойств и методов класса. Для того, чтобы отредактировать значения, указываемые в столбцах Visibility и No Init, следует выбрать командную кнопку <Modify…>.

Для создания описания класса программным путем можно вызвать пункт меню Tool/Class Browser. Данный пункт открывает окно Class Browser. Oкно имеет две основные панели: справа отображаются названия классов, слева – объекты, методы и свойства, составляющие выбранный на правой панели класс.

В верхней части этого окна расположен набор инструментария, содержащий следующие кнопки.

Open (для просмотра библиотеки классов);

View Additional (добавление новой библиотеки);

View Class Code (отображение исходного текста описания класса);

Find (поиск класса и элементов класса);

New Class (открытие окна диалога «» для создания нового класса);

Renate (изменение имени выбранного класса);

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

Redefine (модификация родительского класса выбранного класса);

Remove (удаление выбранного класса из библиотеки классов);

Clean Up Class Library (упаковывает библиотеку классов, удаляя из нее физически записи, помеченные для удаления).

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

2.4. Разработка экранных форм

Формы Visual FoxPro позволяют программистам выполнять операции управления данными.

Для создания новой формы следует на вкладке Documents диспетчера проектов выбрать элемент списка Forms и нажать командную кнопку <New>, Visual FoxPro откроет окно проектирования формы «Form Designer» и соответствующий ему набор инструментария Form Controls.

Набор инструментария Form Controls содержит следующие кнопки:

Select Objeets- выбор объекта

View Classes - загрузка других библиотек классов

Элементы управления:

Label - метка

Text Box - текстовый блок

Edit Box - многострочное текстовое поле

Command Butlon - командная кнопка

Command Group - группа командных кнопок

Option Group - группа радиокнопок

Check Box - переключатель

Combo Box - раскрывающийся список

List Box - панель списка

Spinner - счетчик

Grid - окно таблицы

Image - pисунок

Timer - таймер

Page Frame - страничный блок

OLE Container Control - элемент управления OLE

OLE Bound Control - элемент управления

Line - линия

Shape - контур

Container - контейнер

Separator - разделитель

Builder Lock - режим вызова построителя объектов

Button Lockрежим размещения объекта

Окно формы может содержать любой элемент управления Visual FoxPro из набора инструментария Form Controls. Для размещения объекта в окне формы сначала его необходимо выделить в наборе инструментария, а затем мышью отметить место его расположения. Размещать объект можно в двух режимах: с ручной настройкой свойств или с автоматической настройкой свойств с помощью построителя объектов. Почти для каждого элемента управления существует свой построитель. Включение и отключение режима вызова построителя объекта выполняется щелчком мыши на кнопке Builder Lock в наборе инструментария. После заполнения всех вкладок построителя Visual FoxPro автоматически установит значения свойств созданного элемента управления и присвоит ему имя.

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

Диалоговое окно Properties (свойства) позволяет переключаться между объектами, просматривать и изменять значения свойств объектов и по двойному щелчку мыши на названии метода или события вызвать окно кода. Все расположенные в окне формы объекты содержатся в раскрывающемся списке Object окна свойств. Системное меню этого окна позволяет включать режим расположения окна «Всегда сверху». Окно содержит пять вкладок All (все), Data (данные, Metods (методы), Layout (вид), Other (остальное). Выбор вкладки определяет определяемое подмножество отображаемых на панели списка установок: свойств, методов и событий. Каждая установка объекта представлена одним элементом списка, состоящим из двух столбцов: названий установок и их значения. Доступность установки и ее изменение отображаются в окне свойств изменением начертания шрифта:

  • курсивом выделяются недоступные для редактирования значения

  • жирным шрифтом выделяются измененные значения.

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

Для добавления нового метода объекту также можно воспользоваться или набором инструментария или выбрать пункт меню Form/New Metod, а затем ввести программный код для нового метода в окне кода.

  1. ПРОГРАММА РАБОТЫ

3.1. Разработайте класс панели инструментов, который будет использоваться при просмотре одиночных таблиц.

Объявите родительским классом создаваемого класса – контейнер. Разместите в контейнере графические кнопки перемещения по записям таблицы (первая запись, предыдущая запись, последующая запись, последняя запись) и текстовое поле – номер текущей записи.

Присвойте им имена соответственно ctd Top, ctd Prior, ctd Next, ctd Bottom, и txt Recno.

Присвойте контейнеру дополнительные свойства (skiptable=” и enabledisableoninit=.T.).

Создайте для работы с контейнером дополнительные методы:

Recordpointermoved - метод вызывается при перемещении указателя в таблице

Тело метода

if type ('_VEP.ActiveForm')='0'

_VFR.ActiveForm.Refresh

endif

Метод enabtedisablebuttons делает кнопки перемещения невидимыми в зависимости от номера записи.

Тело метода

Local nRec, nTop, nBottom

* Если таблица пуста или не содержит записей

if eof()

this.SetAll('Enabled',.F.)

RETURN

Endif

nRec=RECNO() *Текущий номер

GO TOP

nTOP=RECNO() *Первый номер

GO BOTTOM

nBottom=RECNO() *Последний номер

GO nRec

this. txtRecno.Value = RECNO( )

DO CASE

CASE nREC=nTop

this.ctdTop.Enabled=.F.

this.ctdPrior.Enabled=.F.

this.ctdNext.Enabled=.T.

this.ctdBottom.Enabled=.T.

CASE nRec=nBottom

this.ctdTop.Enabled=.T.

this.ctdPrior.Enabled=.T.

this.ctdNext.Enabled=.F.

this.ctdBottom.Enabled=.F.

OTHERWISE

this.SetAll('Enabled',.T.)

ENDCASE

Метод beforerecordpointermoved делает активной базовую таблицу.

Тело метода

IF! EMPTY (This.SKIPTable)

SELECT (This.SKIPTable)

ENDIF

Метод Init обеспечивает инициализацию метода enabledisablebuttons

Тело метода

IF! THIS. EnableDisableOnInit

THIS. EnableDisablebuttons

ENDIF

Для каждой кнопки перемещения необходимо описать события, происходящие при щелчке на нем мышью (событие Click).

Например, описание события для метода ctdTop Click будет следующим:

Активизация таблицы

THIS.Parent.BeforeRecordPointerMoved

GO TOP

Обновление текущего запуска Visual Fox Pro

THIS.Parent.BeforeRecordPointerMoved

Перерисовывание кнопок контейнера и обновление значений

THIS.Parent.EnableDisablebuttons

3.2. Выполните настройку формы

Прежде чем начинать создавать форму, нужно удостовериться, что опции формы установлены правильно. В полосе главного меню нажмите Tools (Инструментальные средства), затем Options (Опции), чтобы запустить диалоговое окно Options. Оно включает 10 страниц, которые обозначены десятью вкладками в верхней части страничного блока. Нажмите вкладку Forms (формы), чтобы вывести на экран страницу Form Options (Опции формы).

В поле Grid нужно включить опции Grid Lines (Линии сетки) и Shar to crid (перемещение по ячейкам). Если переключатели не помечены крестиками, щелкните по соответствующим полям, чтобы они появились. Установите значение опций Horizontal Spacing (интервал по горизонтали) (в пикселях) и Vertical Spacing (интервал по вертикали) (в пикселях) равными 6. Убедитесь, что Show position выключено, затем для Tab Ordering (Упорядочение таблицы) установите значение By List (по списку), а для Scale Units (Единица масштаба) установите Pixels (Пиксель).

Установить следующую опцию Maximum Design Area (Максимальная площадь проектирования), может оказаться несколько сложнее, потому что наилучшая установка зависит от конфигурации дисплея вашего компьютера. Попробуйте для Maximum Design Area установить значения 128-х 1024 и посмотрите, удобно ли будет с ним работать. Если эта установка не удобна, то выберите 640х480. Она подойдет для любого дисплея.

Внизу диалогового окна Options нажмите Set as Default (Установить по умолчанию), затем Save (Сохранить).

3.3. Для достижения максимальной скорости работы СУБД используются следующие установки:

SET DOHISTORY OFF

SET STATUS OFF

SET ESCAPE ON

SET SYSME TO DEFAULT

SET OPTIMIZE ON

SET STATUS BAR OFF

Изучите данные установки.

3.4. Разработайте форму, обеспечивающую просмотр, редактирование и ввод данных в одиночную таблицу PERSON Для просмотра данных используйте разработанный класс панели инструментов. Свойству skiptable присвойте имя просматриваемо таблицы.