Лабораторная №4 Изучение технологии проектирования классов и простейших форм
.docЛАБОРАТОРНАЯ РАБОТА N 4
-
ЦЕЛЬ РАБОТЫ
Изучить технологию проектирования классов и простейших форм.
-
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
-
Настройка СУБД
Для интерактивного изменения установок в 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 можно определить и непосредственно в программах пользователей.
-
Проектирование классов
Каждый класс имеет свое описание класса. Описание классов хранятся в библиотеках классов – файлах с расширением 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.
-
Редактирование классов
Редактирование уже существующего класса можно выполнить из диспетчера проекта, программным путем или выбрав пункт меню 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, а затем ввести программный код для нового метода в окне кода.
-
ПРОГРАММА РАБОТЫ
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 присвойте имя просматриваемо таблицы.