Использование элементов управления при проектировании форм приложения

Контрольная работа - Компьютеры, программирование

Другие контрольные работы по предмету Компьютеры, программирование

 

 

 

 

 

 

 

 

 

 

 

Лабораторная работа

 

Тема: Использование элементов управления при проектировании форм приложения

1. Разработка и использование классов при создании приложений

 

  1. Средствами СУБД Visual FoxPro создать класс, основанный на базовых классах CheckBox, OptionGroup, Spinner, Command Button, Text Box или др.
  2. Создать форму верхнего уровня, при этом использовать элементы управления, основанные на ранее созданном классе.

Рассмотрим создание своего класса на примере группы кнопок навигации.

Для визуального создания классов и подклассов в Visual FoxPro используется конструктор классов (Class Designer).

) Создание класса можно осуществить с использованием Диспетчера проектов (Project Manager):

вкладка Classes кнопка New

На экране появляется диалоговое окно New Class, в котором следует указать: имя класса, базовый класс и библиотеку, в которой он будет храниться

 

Рисунок 1 Создание нового класса

 

В появившемся окне Конструктора классов появляется прообраз разрабатываемого класса. Список доступных для него свойств, событий и методов приведен в окне Properties. Команды New Property и New Method меню Class предназначены для добавления новых свойств и методов. Если вы хотите использовать данные, которые будут иметь отношение к нескольким объектам, лучше запомнить эти данные не в переменной, а в свойстве. Для выполнения каких-либо действий - создавайте методы.

В описании класса свойства и методы имеют глобальный диапазон действия (Public). Свойства и методы, определенные как защищенные (Protected), могут использоваться только в пределах данного класса или подкласса, основанного на данном классе. Свойства и методы, определенные как скрытые (Hidden), могут использоваться только в пределах данного класса.

В данном примере прообразом создаваемого класса является объект - контейнер (Рисунок 2).

 

Рисунок 2 Конструктор классов Устанавливаем свойство ButtonCount = 4 (контейнер содержит 4 кнопки управления).

 

Для каждой кнопки назначаем следующие свойства:

 

Command1.Picture = "top.bmp" Command1.Caption = "" Command1.Name = "Top" Command2.Picture = "prev.bmp" Command2.Caption = "" Command2.Name = "Preview" Command3.Picture = "next.bmp" Command3.Caption = "" Command3.Name = "Next" Command4.Picture = "bottom.bmp" Command4.Caption = "" Command4.Name = "Bottom"

Описываем событие Click каждой кнопки:

* PROCEDURE Command1.Click Go top _screen.ActiveForm.Refresh()

* ENDPROC

* PROCEDURE Command2.Click If !BOF() Skip -1 EndIf _screen.ActiveForm.Refresh()

*ENDPROC

* PROCEDURE Command3.Click If !EOF() Skip EndIf _screen.ActiveForm.Refresh()

* ENDPROC

* PROCEDURE Command4.Click Go bottom _screen.ActiveForm.Refresh() * ENDPROC

 

Созданный класс изображен на рисунке 3.

 

Рисунок 3 Конструктор классов. Кнопки навигации

 

В качестве примера рассмотрим контейнер, который содержит два элемента Textbox и Timer . У каждого из этих классов своя функция, но в совокупности они образуют новый элемент управления - часы.

В класс контейнер мы добавили свойство nTimeFormat (ClassNew Property) значение которого определяет, в каком формате - 12 или 24 часовом - выводить на экран время. Установка значения 0 для этого свойства задает вывод в 12-часовом формате (am/pm), а 1 - в 24-часовом (military). Событие Timer происходит каждую секунду (1000мс), и после этого запускается процесс обновления показаний в текстовом поле - новое значение присваивается свойству Value объекта Тext2.

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

Устанавливаем следующие свойства для наших элементов.

 

Text1.Enabled = .F..Value = (CDOW(DATE())+ " " + CMONTH(DATE()) + " " + ALLT(STR(DAY(DATE()))) + ", " +ALLT(STR(YEAR(DATE())))). Enabled = .F. .Value = (IIF(THIS.PARENT.nTimeFormat=0, IIF(VAL(SUBSTR(TIME(),1,2))>12,ALLT(STR((VAL(SUBSTR(TIME(),1,2))-12)))+SUBSTR(TIME(),3,6),TIME()),TIME()))1.Internal = 1000

Описываем процедуру Timer для таймера:

*PROCEDURE TIMER1.TIMER.PARENT.Text1.VALUE= CDOW(DATE())+ " " + ;(DATE()) + " " + ;(STR(DAY(DATE()))) + ;

", " +ALLT(STR(YEAR(DATE())))THIS.PARENT.nTimeFormat=0.PARENT.Text2.VALUE= ; IIF(VAL(SUBSTR(TIME(),1,2))>12,; ALLT(STR((VAL(SUBSTR(TIME(),1,2))-12)))+; SUBSTR(TIME(),3,6),TIME()).PARENT.Text2.VALUE=TIME()

*ENDPROC

 

 

Обеспечение доступности разработанных классов

Разрабатываемые в Конструкторе классы хранятся в выбираемых вами библиотеках классов, которые следует включить в проект. При проектировании формы вы можете легко перетаскивать их из Диспетчера проектов на поверхность формы, создавая необходимые объекты. Но все же удобнее получить доступ к своим классам из панели инструментов Form Controls.

 

Рисунок 4 Подключение библиотеки классов

Для того чтобы можно было легко использовать свои классы при работе с панелью инструментов, в диалоговом окне Options меню Tools следует сделать следующие установки. Выберите вкладку Controls и нажмите кнопку Add. В появившемся диалоговом окне выберите файл - визуальную библиотеку классов, - в котором хранятся ваши классы. Теперь при нажатии на кнопку View Classes на панели инструментов Form Controls, из появляющегося меню (см. Рис. 3) вы легко можете выбрать свою библиотеку классов.

Сделать библиотеки классов доступными в момент запуска программ позволяет команда Set Classlib TO

Например: set classlib to c:\vfp\prim_met\myclass

Задание этой команды без идентификаторов - Set Classlib TO - закрывает все открытые библиотеки.

Команда release Classlib позволяет закрыть указанную визуальную библиотеку классов из открытых ранее.

 

2. Использование odbc-технологии для создания внешних представлений

 

Приобретение практич