|
USE Im.dbf in 11 alias im _NDEX im ORDER TAG Im USE Ot.dbf in 12 alias ot INDEX ot ORDEP TAG ot CLEAR SELECT Ctl
BROWSE NORMAL NOWAIT IF _DOS OR „WINDOWS
ZOOM WINDOW Ctl MIN;
WAIT WINDOW TIMEO'JT 5 'Окно свернуто'-;
'Подождите.'
ENDIF
ZOOM WINDOW Ctl NORM
WAIT WINDOW TIMEOUT 5 'Установлен нормальный '+;
'размер окна. Подождите.'
IF _DOS OR „WINDOWS
ZOOM WINDOW Ctl MIN AT 10,10;
WAIT WINDOW TIMEOUT 5;
'Окно свернуто и помещено в точку с коорцин, тами '+; '10,10 Подождите.'
ENDIF
ZOOM WINDOW Ctl NORM AT 1,1 SIZE 22,25 WAIT WINDOW TIMEOUT 5;
'Для нормального окна задана новая координата 'правого нижнего угла. Подождите.'
ZOOM WINDOW Ctl NORM FROM 10,10 TO 22,70
WAIT WINDOW TIMEOUT 5 'Задание нового нормального' +;
'размера и положения '+;
'Подождите.'
ZOOM WINDOW Ctl MAX
WAIT WINDOW TIMEOUT 5 'Окно распахнуто на весь '+;
'экран. Подождите.'
CLEAR ALL
Пример 5. Размещение фонового рисунка в окне и задание пиктограммы при свертывании окна.
CLEAR ALL
CLOSE ALL && Закрытие всех файлов
SET DEFAULT ТО E:\PRIMER && Задание рабочего каталога
|
ORDER TAG ot |
DEFINE WINDOW Primer FROM 1,1 TO 20,10;
FILL FILE E:\M_DOC\tiger.bmp;
ICON FILE D:\VFP\FOX.bmp MINIMIZE TITLE 'Пример'; FLOAT GROW CLOSE ZOOM;
FONT 'Times New Roman',12 STYLE 'B'
ACTIVATE WINDOW Primer
0 10.2 SAY 'Тигры'
0 12.2 SAY 'Котята'
SELECT fam
BROWSE IN WINDOW Primer
Мышью измените (увеличьте) размер окна Primer. Размер окна Browse также можно изменить.
Пример 6. Использование некоторых оконных функций. CLEAR ALL
DEFINE WINDOW File FROM 10,10 TO 2C,69;
FONT 'Times New Roman' 12 Style 'BI'; TITLE 'Файл' DEFINE WINDOW View FROM 1,1 TO 19,45 TITLE 'Вид'; CLOSE FLOAT GROW ZOOM;
FONT 'Times New Roman' 12 Style 'BI' ACTIVATE WINDOW View
? 'Описано ли окно File' AT 2, WEXIST<'File') AT 45
£c£c На экран выводится.Т.
STORE 'View' TO Name? 'Описано ли окно Win_name' AT 2,;
WEXIST('win_name') AT 45 && На экран выводится.F.
? 'Существует ли переменная Name' AT 2,; WEXIST(Name) AT 45 && На экран выводится.Т.
IF NOT EMPTY(WONTOPO);
WAIT W NDOW 'АКТИВНО окно: ' ▼ WONTOPO ->■;
'Нажмите любую клавишу'
ELSE
WAIT WINDOW 'Открытых окон нет'
ENDIF
RELEASE WINDOWS File, View
9- 13. КОНТРОЛЬНЫЕ ВОПРОСЫ
1- Какой интерфейс имеет FoxPro — однооконный или многооконный?
2- Какие три состояния может иметь окно?
3- Какой командой описывается окно пользователя? Каковы особенности этой команды?
4* Укажите команды предъявления окна на экран и удаления окна с экрана.
5. Какая команда управляет расположением окна? Каковы особенности этой команды?
6. Какой опцией какой команды задается верхний (нижний) заголовок окна?
7. Какие опции какой команды управляют закрытием и перемещением окна?
8. Какие опции какой команды управляют размерами окна*7
9. Чем отличается деактивация окна от удаления окна? Какими командами выполняются эти действия?
10. Назовите две команды перемещения окна.
11. Как определить количество строк и столбцов окна?
12. Как проверить, существует ли окно с указанным именем?
ПСЕВДОГРАФИКА И ЭЛЕМЕНТЫ УПРАВЛЕНИЯ
При создании программного продукта наряду с правильным функционированием надо разработать удобный и понятный в эксплуатации интерфейс. Привлекательный внешний вид имеет важное значение при коммерческом распространении программы, обеспечивая конкурентоспособность созданного программного продукта.
Для управления ходом вычислений испотьзуют различные элементы управления, поля ввода, кнопки, радиогруппы и т. д., располагая их в окне приложения. С помощью элементов управления задают различные режимы работы приложения — сортировку, поиск и фильтрацию данных, а также критерии для этих режимов работы.
10.1. ИЗОБРАЗИТЕЛЬНЫЕ СРЕДСТВА
Изобразительные средства, о которых мы расскажем в п. I0.1, использовались для создания привлекательного внешнего вида в ранних версиях FOX PRO.
В настоящее время они по-прежнему разрешены к использованию, в современных версиях FOX PRO элементы эстетического оформления выполняются средствами, рассмотренными далее, в п. 10.2.
10.1.1. Создание рамки
@ Yl, XI Y2.X2 BOX <выр. О
Команда рисует рамку с координатами левого верхнего Yl, XI и правого нижнего Y2, Х2 углов. При желании в углах рамки и в центре каждой из сторон рамки можно установить символ <выр. С>. <выр. О содержит символьное выражение длиной не более девяти символов (девятый символ устанавливается в цент
ре прямоугольной области). Если <выр. О отсутствует, то рамка будет нарисована одиночной линией.
10.1.2. Создание рамки с определением цвета и формы
@ Yl, XI ТО Y2.X2 (DOUBLE | PANEL | <шаблои> ]
[ COLOR <слнсок пар овстов> | COLOR SCHEME <выр. N> ]
Команда рисует рамку с координатами левого верхнего Yl, XI и правого нижнего Y2, Х2 углов. Рисование выполняется только вниз и вправо. Назначение опций:
DOUBLE — контур рамки рисуется двойной линией.
PANEL — контур рамки рисуется одиночной линией.
<шаблон> — контур рамки составлен из символов, указанных в шаблоне. В шаблоне символы перечисляются через запятую. Если в <шаблоне> указан один символ, то этим символом и выполняется контур рамки. Если в <шаблоне> содержится несколько символов, но не более девяти, то рамка рисуется ана- Л01 ично предыдущей команде.
10.1.3. Задание окантовки для окон и меню
SET BORDER ТО [ SINGLE | DOUBLE | PANEL | NONE | <шаблов1> | <шаблон2> ]
Команда задаст тип линии рамки, которая создается командой @... ТО для меню, описанных командами DEFINE MENU... или DEFINE POPUP..., а также для окон, описанных командой DEFINE WINDOW... Назначение опций:
SINGLE — одиночная линия (будет нарисована по умолчанию). DOUBLE — двойная линия.
PANEL — сплошная линия рамки.
NONE — линия рамки отсутствует.
<шаблон1> — символьный шаблон дпя линии рамки активного окна.
<шаблон2> — символьный шаблон для линии рамки пассивных окон.
Шаблоны составляются по правилам, указанным для предыдущих команд.
10.1.4. Установка цвета
Команда установки цвета элементов экрана имеет несколько вариантов исполнения.
Для обозначения цветов и эффектов используются следующие символы:
N —черный G — зеленый GR - коричневый В — синий BG — бирюзовый R—красный GR+ —желтый RB — лиловый W — белый 1 — инверсия U — подчеркивание цвета (для текста)
+ — после каждого кода цвета означает повышенную яркость.
* — после каждого кода цвета означает эффект мерцания (только для текста).
а. Цвет для команд ввода-вывода и элементов интерфейса устанавливает команда:
SET COLOR ТО [ <стандартный [, <дополнительный ] [, <рамка>) [ <фон> ] J
Команда без опций устанавливает цвет по умолчанию. Назначение опций:
<стаддартный> — задает цвет основных текстовых сообщений.
<дополнительныи> — залает цвет дополнительных сообщений области ввода GET, выбранного пункта меню и т. д.
<рамка> — определяет цвет экрана за пределами области, ограниченной рамкой.
<фон> — определяет цвет фона внутри рамки.
б. Цветовую гамму но номеру схемы, указанной в <выр.К1> определяет команда:
SET COLOR OF SCHEME <выр.1Ч1> TO [ Ссписок пар цвегов> ] | SCHEME <Bbip.N2>l
Номер схемы задается в пределах от 1 до 24. Д ля каждого номера схемы можно задать конкретное сочетание цветов одним из способов:
ТО Ссписок пар цветов> — перечисляется десять пар цветов. Допускается указывать не все десять сочетаний цветов, но зафиксировать место (с помощью запятых) для каждого из десяти сочетаний обязательно. В <списке пар цветов> допускается указание не только конкретного цвета, но и интенсивность каждого цвета с помощью опции RGB. Интенсивность каждого цвета задается в пределах от 0 до 255.
ТО SCHEME <Bbip.N2> — задастся одна из комбинаций (в диапазоне от 1 до 10) сочетаний цветов.
Примеры
SET COLOR OF SCHEME 20 TO;
■*-/B,K+/R,W+/N*,G+/N*,V>+/B+-,GR+VB,№-/N,W*/B,W/B SET COLOR OF SCHEME 6 TO W+/N,......... N/BG
SET COLOR OF SCHEME 8 TO RGB(255,255,255,0,0,0).........;
RGB(0,0,0,142,74,92)
SET COLOR OF SCHEME 16 TO SCHEME 10
Эта команда без опций устанавливает цвета из текущего цветового набора.
в. Цвет для элементов меню и пользовательских окон устанавливает кома! ада:
SET COLOR OF NORMAL | MESSAGE | TITLES | BOX | HIGHLIGHT | INFORMATION | FIELDS TO [ <ставдарт> ]
10.1.5. Управление мерцанием
SET BLINK ON | OFF
Команда включает или отключает мерцание. По умолчанию мерцание выключено.
10.1.6. Изменение цвета существующего изображения
@ Y1,X1 FILL ТО Y2,X2 [COLOR <список пар цвстож> |
COLOR SCHEME <Bbip.N>l
После выполнения этой команды вывод данных будет осуществляться в новых цветах. Изменение цвета возможно только в направлении вниз и вправо. Если опция опущена, то производится очистка указанной области.
10.1.7. Определение текущего набора цветов
SCHE\lE(<Bbip. N>)
Функция выводит на экран список цветовых пар дпя указанной в <выр. N> схемы.
10.1.8. Управление звуком
SET BELL ON | OFF
Команда включает или выключает звуковой сигнал при редактировании данных в командах BROWSE, EDIT, CHANGE, APPEND, INSERT и READ. Звуком сопровождается выход из редактируемого поля.
10.1.9. Установка частоты и длительности звукового сигнала
SET BELL ТО <частота>, <длнтельиость>
Команда задает частоту звуконого сигнала в герцах в диапазоне от!9Гцдо 10000 Гц и длительность звучания сигнала в секундах от I сек до 19 сек.
10.2. ЭЛЕМЕНТЫ УПРАВЛЕНИЯ
При создании пользовательского интерфейса удобно использовать элементы управления. Элементы управления можно как программировать с помощью команд FoxPro, так и, используя лист формы, располагать на форме готовые элементы управления.
Для описания элементов управления, как правило, используется команда @ GET с опцией FUNCTION или PICTURE. Элементы управления можно располагать как на экране, так и на форме. Если элемент управления надо расположить на форме, то программный код этого элемента упраатения помещают на лист программного кода формы (двойной щелчок на листе формы выводит на экран лист программного кода формы). При описании элемента управления с помощью команд создастся либо терминальный элемент (TERMINATING), который при своем описании требует команду считывания READ, и при работе задает выполнение какой-либо команды (например печать); либо нетерминальный элемент (NOTERM1NATING), который предназначен для определения особенностей выполнения действий терминального элемента (например определение режимов печати)- При составлении шаблонов для опций FUNCTION и PICTURE первый символ шаблона определяет функциональный код создаваемого элемента упраатения:
* — кнопки различных типов;
Л — списки различных типов.
Второй символ шаблона указывает на конкретный вид элемента управления:
*R — радиокнопка (Radio Button).
*С — флажок (CheckBox).
•пробел — невидимая кнопка (Invisible Button). Если пробел есть, то кнопка будет видима. Если пробела нет, то кнопка — невидима Лпробел — раскрывающийся список (СошЬоВох).
Дня создания списка (List Box) вместо опции FUNCTION используют опцию FROM.
При описании некоторых элементов можно использовать третий символ, который замешает опцию по умолчанию:
N — нетерминальная кнопка.
Т — терминальная кнопка.
Н — расположение элементов по горизонтали (HORIZONTAL). V — расположение элементов по вертикали (VERTICAL).
После установки двух (или трех) символов шаблона обязательно устанавливается пробел. Шаблоны для опций FUNCTION и PICTURE пишутся одинаково, но для опции PICTURE шаблон всегда начинается с символа
Стандартные элементы управления, взятые с панели инструментов, могут располагаться только на форме.
10.3. СОЗДАНИЕ ЭКРАННОЙ ФОРМЫ
Visual FoxPro является объектно-ориентированным языком программирования, который управляется по событиям. Разработка объектно-ориентированных приложений начинается с размещения объектов на форме, каждый из которых выполняет конкретные функции. Создание каждого объекта предполагает использование Visual FoxPro, при этом допускается копирование объектов из одного приложения в другое. При работе с объектами по событием понимается щелчок кнопки мыши на объекте, выбор пункта меню и т. д.
Объектно-ориентированное построение Visual FoxPro предполагает построение приложения шаг за шагом, переходя от одного объекта к другому. Все объекты группируются в классы. Класс содержит информацию о том, как должен выглядеть объект и определяет выполняемые им действия. Объект является экземпляром класса и наследует характеристики класса. Примеры объектов: кнопка, радиогруппа, флажок, окно и т. д. При создании входных форм широко используются базовые классы, список которых приведен в табл. 10.1. Таблица 10.1. | |||
Наименование | Назначение | Видимый Контейнер | |
Active Doc | Активный документ | Нет | Нет |
CheckBox | Флажок | Да | Нет |
Column | Столбец | Да | Да |
ComboBox | Раскрывающийся список | Да | Нет |
CommandBuUon | Кнопка упрапления | Да | Нет |
CommandG roup | Набор кнопок управления | Да | Да |
Container | Контейнер | Да | Да |
Control | Базовый визуальный класс | Да | Нет |
Custom | Базовый не визуальный класс | Нет | Нет |
EditBox | Область редактирования | Да | Нет |
Form | Форма | Да | Да |
FormSet | Группа форм | Нет | Да |
Grid | Таблица | Да | Да |
Header | Заголовок столбцов таблицы | Да | Нет |
HypcrLink Object | Гиперссылка | Нет | Нет |
Image | Изображение | Да | Нет |
Label | Надпись | Да | Нет |
Line | Линия | Да | Нет |
ListBox | Список | Да | Нет |
OleContainerControl | OLE-объекг управления |
|
|
OleBoundControl | OLE-объект данных |
|
|
OptionButton | Переключатель | Да | Нет |
OptionGroup | Набор переключателей | Да | Да |
Page | Страница формы | Да | Да |
Page Frame | Макет страницы | Нет | Да |
ProjectHook | Проект | Нет | Да |
Separator | Разделитель | Да | Нет |
Shape | Обрамление | Да | Нет |
Spinner | Счетчик | Да | Нет |
Text Box | Поле ввода | Да | Нет |
Timer | Таймер | Нет | Нет |
ToolBar | Панель управления | Да | Да |
Классы могут быть вложены друг в друга, в этом случае старший класс называется контейнером. Доступ ко всем объектам возможен либо на этапе проектирования формы, либо программно.
Для программного доступа к объектам используются следующие ключевые слова:
THIS — ссылка на сам объект;
THISFORM — ссылка на форму, которая содержит объект; THISFORMSET — ссылка на группу форм, которая содержит объект.
В Visual FoxPro отобразить данные можно двумя способами: в окне BROWSE и в экранной форме. Создать экранную форму можно в режиме Мастера формы (Form Wizard) — быстрое создание упрощенного варианта экранной формы; в режиме Построителя (Builder) — создание более развитой формы или в режиме Конструктора (Form Design г) — создание формы любой степени сложности. В Visual FoxPro экранная форма существует как функциональный объект проектирования. На экранной форме объединяются визуальные компоненты, элементы управления и сервисные (вспомогательные) элементы.
10.3.1. Создание экранной формы
с помощью Мастера форм — Form Wizard
С помощью Мастера форм можно создавать экранные формы для просмотра и редактирования данных как одной таблицы, так и для нескольких взаимосвязанных таблиц. Экранная форма создастся только для физически существующей таблицы.
После открытия проекта (базы данных) в диалоговой панели Диспетчера проектов (Project Manager) надо выбрать вкладку Документы (Documents) и курсором выделить команду Формы (Forms). Затем нажать кнопку Новый (New).
В появившейся на экране диалоговой панели New Form выбрать способ создания формы — пиктограмму Form Wizard. В диалоговой панели Wizard Selection надо указать на данных каких таблиц будет построена форма: Form Wizard — по данным одной таблицы One-to-Many Form Wizard — по данным нескольких таблиц.
После запуска Мастера форм на экран будут выводиться диалоговые панели Мастера, где надо ответить на вопросы. Все диалотовые панели Мастера снабжены четырьмя кнопками управления: Cancel — отказ от построения экранной формы; Next — переход к следующему шагу Мастера; Back — возврат к предыду шему шагу Мастера, Finish — завершение построения формь Кнопку Finish можно нажать на любом шаге Мастера, тогда недостающие сведения будут подставлены по умолчанию.
В первой диалоговой панели Form Wizard (Step 1 — Field Selection) в раскрывающемся списке Databases надо указать имя базы данных а в раскрывающемся списке Tables указать имя таблицы, поданным которой будет построена экранная форма. В раскрывающемся списке Avalable Fields следует выбрать имена полей, значения которых будут размещены в экранной форме. Перенос выбрашвых полей в окно Selected Fields производится с помощью кнопок-стрелок.
Во второй диалоговой панели Form Wizard (Step 2 — Style) определяется стиль йене шсиия экранной формы. В списке Style выбирается один из допустимых стилей: Standard. Chiseled, Shadowed, Boxed или Embossed. Результат Rauiero выбора можно просмотреть здесь же в специальном окне. С помощью радио- группы Button Туре определяется тип отображения кнопок управления:
Text Buttons — текстовые надписи на кнопках управления; Picture Buttons — пиктограммы на кнопках управления;
No Buttons — кно 1ки управления отсутствуют.
В третьей диалоговой панети Form Wizard (Step 3 — Sort Order) определяется порядок сортировки данных. В списке Avaliablc Fields указываются имена полей, по значениям которых надо выполнить сортировку данных. А с помощью кнопок Ascending (по возрастанию) и Descending (по убыванию) определяется порядок сортировки. С помощью кнопки Add поля сортировки заносятся в окно Selected Fields.
В четвертой диалоговой панели Form Wizard (Step 4 — Finish) определяется заголовок созданной экранной формы, который пишется в поле ввода Type a title for your form. Далее с помощью кнопок радиогруппы выбирается вариант продолжения работы:
Save form for later use — сохранить созданную форму;
Save and run form — сохранить экранную форму и поставить ее на выполнение;
Save form and modify it in the Form Designer — сохранить экранную форму и открыть ее в Конструкторе для модификации.
Если при создании таблицы, на основе которой строится экранная форма, было задано свойство Caption, то содержимое этого свойства используется в качестве надписей к нолям. Если свойство Caption не задано, то для надписей к полям используются имена полей.
Созданная экранная форма готова к использованию и не требует генерации программных кодов. Для запуска созданной экранной формы надо из главного меню подать команду Program -> Do установить курсор на имя файла экранной формы и нажать кнопку Ok [2].
10.3.2. Создание экранной формы
с помощью Конструктора форм — Form Designer
Процесс создания формы состоит в размещении компонентов формы (элементы управления, визуальные компоненты и т. д.) на листе формы и определения для них свойств и событий при выполнении различных действий. Созданная экра!шая форма может находиться и одном из двух состоянии:
а. Режим проектирования — на форме размещаются компоненты, описываются их свойства и события — пассивное состояние.
б. Рабочий режим — файл формы поставлен на выполнение. После чего в экранную форму выводятся данные, которые можно просматривать, редактировать, удалять и производить некоторые действия (сортировка, поиск, фильтрация и т. д.) — активное состояние.
Для открытия окна Конструктора форм надо выполнить одно из действий:
• из главного меню подать команду File -> New, в появившейся на экране диалоговой панели выбрать кнопку New File и указать тип создаваемого файла Form.
• вызвать на экран окно проекта и выбрать вкладку Document, затем указать группу Form и нажать кнопку New.
• вызвать на экран окно проекта и выбрать вкладку Document, затем указать группу Form и из главного меню подать команду File -> New, в появившейся на экране диалоговой панели выбрать кнопку New File и указать тип создаваемого файла Form.
При работе с Конструктором форм можно использовать четыре панели инструментов:
Form Controls — предназначена для выбора и размещения компонентов на листе формы.
Form Designer — предназначена для управления формой и вызовом на экран остальных трех панелей инструментов.
Layout — предназначена для выравнивания компонентов на листе формы.
Color Palette — предназначена для задашш цвета компоненту.
Чтобы разместить компонент на форме, надо па панели инструментов выбрать нужный компонент (установить курсор мыши на нужный компонент и щелкнуть левой кнопкой). Затем курсор мыши расположить на поле формы и либо щелкнуть левой кнопкой мыши, либо, лажав левую кнопку мыши, нарисовать прямоугольный контур, внутри которого будет размещен выбранный компонент.
В каждый момент времени на форме может быть активен только один компонент. Активный компонент на форме выделен по контуру черными маркерами. Для того чтобы сделать компонент активным, надо разместить на нем курсор мыши и щелкнуть левой кнопкой мьппи. Для отмены активности компонента надо либо выделить другой компонент, либо щелкнуть левой кнопкой мыши на ноле формы.
Для активного компонента на экран можно вывести окно свойств Properties (окно свойств может быть постояшю открыто) с помощью команды главного меню View -> Properties. При смене активного компонента в окно Properties автоматически выводится информация для выбранного компонента. Окно Properties содержит вкладки:
ЛИ — содержит список (в алфавитном порядке) всех свойств и, методов выбранного компонента.
Data — содержит свойства компонента, относящиеся к источнику данных.
Methods — содержит список всех методов компонента.
Layout — содержит свойства, определяющие внешний вид компонента.
Other — содержит все свойства, которые не вошли в остальные вкладки.
При работе с окном Properties выбирают нужное свойство компонента и присваивают ему значение одним из способов: с клавиатуры вписывают требуемое (допустимое) значение; с помощью кнопки 1 открывают список, из которого выбирают нужное значение;
с помощью кнопки выводят на экран диалоговую панель, с помощью которой формируют нужное значение.
На каждой вкладке выше списка свойств расположены три кнопки:
jjgj— выводит на экран построитель выражений (формул) для задания значения свойства.
и— подтверждает ввод значения свойства. ■>£'!
I— отказ от введенного значения свойства.
Кроме окна Properties свойства и методы компонента можно задать программным способом.
Изменить геометрические размеры активного компонента можно, буксируя один из маркеров выделения компонента или изменяя значения свойств Height и Width.
Изменить положение компонента на форме можно, буксируя компонент или изменяя значения свойств Left и Тор.
Активный компонент можно удалить либо нажав клавишу Backspace, либо нажав клавишу Del, либо из главного меню подать команду Edit -> Cut, либо с помощью кнопки графического меню
Для удобства размещения объектов на форме на листе формы выведена сетка. Установить или удалить сетку можно с помощью команды главного меню View -» Grid Line. Деления сетки (размер шага) можно задать в диалоговой панели Grid Propert es, которая выводится на экран командой главного меню Format -> Set Grid Seale.
Дата добавления: 2015-09-29; просмотров: 24 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |