Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Среднее профессиональное образование 13 страница



ON PAD File OF arm ACTIVATE POPUP Fie

* Описание подчиненного меню для пункта Filter

* горизонтального меню.

* Пунктами подчиненного меню заданы значения поля

* Name_jnodel таблицы model, dbf ЕELECT fam

SET ORDER TO TAG Name

DEFINE POPUP Fltr PROMPT FIELDS fan.Name_f am;

SCROLL FROM 7,22 TO 15,35

* Вызов подчиненного меню при выборе пункта Filter

* горизонтального меню.

CN PAD Filter OF arm ACTIVATE POFUP Fltr

ACTIVATE MENU arm && Активация всей конструкции меню.

* Обработчик выбора пользователя для пучхта главно-о

* меню Edit n = PAD()

n = BAR()

DO CASE && Ана лиз выбора из горизонтального

* (главного) меню

CASE m = 'EDIT'

DO CASE && Анализ выбора из подчиненного

* (вертикального) меню

CASE n = 1

SELECT ctl Brow CASE n = 2

SELE fam Browse

CASE n = 3

Sele im BROW CASE n = 4

Select ot BROWSE

ENDCASE

ENDCASE

* Процедура должна быть помещена в программный файл

* PR0G5.PRG, путь к

* которому указывается в командах ON SELECTION BAR...

PROCEDURE ppp PARAMETER mmenu, mpad

? «Вызов подпрограммы», mmenu, mpad 6 10,4 SAY mmenu GET mpad DEACTIVATE MENUS RETURN

Пример 13. Динамическое изменение имени и назначения пункта меню, х =.Т.

DEFINE POPUP View FROM 4,12 TITLE 'Вид'

DEFINE BAR 1 OF View PROMPT 'Панели инструментов'

DEFINE BAR 2 OF View PROMFT 'Линейка'

DEFINE BAR 3 OF View PROMPT 'Масштаб'

DEFINE BAP. 4 OF View PROMPT IIF(x, 'Вход', 'Выход')

ON SELECTION POPUP View DO wt ACTIVATE POPUP View

Procedure wt

X =! X

DEFINE BAR 4 OF View PROMPT IIF(x, 'Вход','Выход') RETURN

Пр и м е р 14. Попытка открыть не существующий таблич­ный файл.

ON ERROR DO errhand WITH;

ERROR(). MESSAGE(), MESSAGE(1), FROGRAM{), LINENO[) USE E:\PRIMER\mnm.dbf ON ERROR

ItSt Отмена выполнения индивидуальной процедуры и && возврат к системному обработчику ошибок

PROCEDURE errhand

PARAMETER merror, mess, meesl, irprog, mliner.o CLEAR

? 'Ошибка номер: ' + LTRIK(STR<merror))

? 'Текст ошибки: ' + mess

? 'Строка содержит ошибку: ' + nessl

? 'Номер строки с ошибкой: ' + LTRIM{STR(mlineno))

? 'Программный файл: ' + mprog

Пр и м е р 15. Обработчик нажатия клавиши Esc.

SET ESCAPE ON ON ESCAPE DO stopit

* Создание окна сообщения и вывод в него сообщения

WAIT WINDOW 'Нажмите клавишу Esc для выхода из '+; 'программы' NOWAIT

ппп =.Т.

* Пустой цикл для сохранения окна редактора на экране DO WHILE ппп

ENDDO

RETURN

PROCEDURE stopit nnn =. F.

RETURN

Пример 16. Обработчик нажатия любой клавиши.

Вывести на экран потоком каталог изданных книг. Для оста­новки потока надо нажать любую клавишу. Для продолжения просмотра — нажать любую клавишу.

CLOSE ALL && Закрытие всех файлов

SET DEFAULT ТО E:\PRIMSR && Задание рабочего каталога


 


USE

Customer.dbf

in

 

alias

cus

 

 

 

Далее открытие

USE

Crde^.dhf

in

 

alias

ord

USE

Sa esman.dbf

in

 

alias

smn

USE

Sale.dbf

in

 

alias

sal

USE

Account.dbr

in

 

alias

acnt

'JSE

Catalog.dbf

in

 

alias

ctl

USE

Autor.dbf

in

 

alias

atr

USE

Tcwn.dfcf

in



 

alias

twn

USE

Street.dbf

in

 

alias

str

USE

Fam.dbf

in

 

alias

fam

USE

Im.dbf

in

 

alias

in

ORDER TAG Fam


 

ORDER TAG tag(2) INDEX im;

ORDER TAG Im INDEX ot;

ORDER TAG ot

USE Ot.dbf

in 12 alias ot


 


CLEAR

PRIVATE OTV SELE Ctl

SET RELATION TO Key_fam INTO Fam, Key_im INTO Im,; Key_ot INTO Ot


ON KEY DO pause DO WHILE NOT EOF()

? 'Фамилия автора:

? 'Имя автора: '

? 'Отчество автора:? 'Название книги:?

SKIP

ENDDO

АТ 2. fam.Naire_Fam АТ 25 АТ 2, im. Name_Im AT 25 AT 2, ot. Name_Ot AT 25 AT 2, ct 1. Nair.e_fcoo< AT 2 5


 


PROCEDURE pause = INKEY(3) WAIT WINDOW

*

RETURN

ScSc Вывод в специальное окно системного сообщения


 

 


Пр и м е р 17. Назначение команд отдельным клавишам. CLEAR

* Определение клавишных назначений.

ON KEY LABEL RIGHTARROW? 'Стрелка вправо'

ON KEY LABEL LEFTARROW? 'Стрелка влево'

ON KEY LABEL UPARROW? 'Стрелка вверх'

ON KEY LABEL DNARROW? 'Стрелка вниз'

SET ESCAPE ON STORE.F. TO glExit

ON ESCAPE STORE.T. TO glExit && Назначение команды

* для клавиши Esc.

STORE 0 TO TEMP

@ 2,0 SAY 'Нажмите любую клавишу стрелку, для '+; 'выхода - Esc'

* Определение окна для вывода сообщений о нажатых

* клавишах

DEFINE WINDOW wEnt FROM 10.20 TO 14.45 DOUBLE;

FONT 'Tunes New Roman', 12 STYLE 'B'

ACTIVATE WINDOW wEnt DO WHILE NOT glExit ENDDO

DEACTIVATE WINDOW wEnt

CM KEY && Отмена всех клавишных сообщений

Пример 18. Определение способа выхода из редактирования. CLOSE ALL Sclc Закрытие всех файлов

SET DEFAULT ТО Е:\PRIMER && Задание рабочего каталога

USE

Customer.dbf

in

 

alias cus

 

 

 

 

 

IcSc

Далее открытие

двенадцати

таблиц

USE

Order.dbf

in

 

alias

ord

 

 

 

USE

Salesman.dbf in

 

alias

smn

 

 

 

USE

Sale.dbf

in

 

alias

sal

 

 

 

USE

Account.dbf

in

 

alias

acnt

 

 

 

USE

Catalog.dbf

in

 

alias

ctl

INDEX

catalog

 

 

 

 

 

 

ORDER

TAG

Fam

USE

Autor.dbf

in

 

alias

atr

 

 

 

USE

Town.dbf

in

 

alias

twn

 

 

 

USE

Street.dbf

in

 

alias

str

 

 

 

USE

Fam. dbf

in

 

alias

fam

INDEX

ORDER

fam;

TAG

tag(2)

USE

Im.dbf

in

 

alias

im

INDEX

ORDER

im;

TAG

Im

USE

Ot.dbf

in

 

alias

ot

INDEX

ot;

 

 

ORDER TAG ot

CLEAR

PRIVATE OTV SELE ctl

SET RELATION TO Key_fam INTO Fam, Key_im INTO Im,; Key_ot INTO Ot

CLEAR

@ 20,4 SAY 'Для следующего поля нажмите Enrer'

@ 21,4 SAY '«Для пропуска записи нажмите PgDn'

в 22,4 SAY 'Для предыдущей записи нажмите PgUp'

0 23,4 SAY 'Для выхода нажмите Esc'

DO WHILE.not. EOF О

в 8,5 SAY 'Фамилия автсра: ' GET fan.Kame_fa*n

0 9,5 SAY 'Имя автора: ' GET? i3i.Narae_im

0 10,5 SAY 'Отчество автора: ' GST ot.Name_ot

0 11,5 SAY 'Название книги: ' GET ctl.Nane_j300k

READ

К = READKEY()

DO CASE

CASE K=12.OR. K=26S && Нажата клавиша Esc EXIT

CASE K=6.OR. K=262 && Нажата клавиша PgUp IF RECN0() =1 &Sc Проверка на достижение

* первой записи

@ 17,17 SAY 'Обнаружена первая запись' ZZZ =:NKEY(2)

8 17,17 SAY '

ELSE

SKIP-1

EKDIF

CASE K=7.OR. K=263 && Нажата клавиша PgDn

SKIP

CASE X=16.OR. K=271.OR. K=5.OR. K=261 && Нажата клавиша Enter или стрелка вниз SKIP

ENDCASE

ENDDO

8.5. КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Что такое световое меню и каковы его основные элементы?

2. Что такое клавишное меню и каковы его основные элементы?

3. Каким приемом задать недоступный пункт меню?

4. Как отделить одну группу пунктов меню от другой (руппы пунктов меню?

5. Укажите особенности светового меню типа Fox.

6. Укажите особенности светового меню типа dBASE.

7. Расскажите об особенностях создания и использования

LIGHTBAR-меню.

8. Расскажите об особенностях создания и использования

POPU P-меню типа Fox.

9. Расскажите об особенностях создания и использования

PULLDOWN-меню.

10. Укажите порядок создания меню типа Fox.

И. Какой командой создается POPUP-меню типа dBASE?

12. Укажите команды для предъя&ления на экран POPUP-меню типа dBASE.

13. Укажите команды для удаления с экрана (и из оперативной памяти) POPUP-меню типа dBASE.

14. Какой командой создается BAR-менютипа dBASE?

15. Укажите команды для предъявления на экран BAR-мсню типа dBASE.

16. Укажите команды для удаления с экрана (и из оперативной памяти) BAR-мснютипа dBASE.

17. Какой командой производится закрепление подчиненного меню за пунктом POPUP-меню? За пунктом BAR-меню?

18. Укажите порядок действий при создании двухуровневого (много­уровневого) меню типа dBASE.

19. Какими командами клавишного меню фиксируются ошибки рабо­ты программы?

20. Расскажите о вариантах использования команды ON KEY.

21. Что такое стек? Как сохраняются и как извлекаются клавишные ко­манды из стека?

22. Укажите команды для обработки кодов нажатых клавиш.


ОПРЕДЕЛЕНИЕ ОКОН

................................................................................................. I.......................

V fc'J, - i «в... i^t • j Wi|Ой^М|Ш 1

1 <Г1.1Ы.> Dll 1)Ь |

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

• нормальное — окно имеет размеры и занимает положение на экране, определенное командами при его создании;

• свернутое — окно имеет минимальный размер (одна строка с заголовком окна) и размешается в нижней части экрана;

• распахнутое — окно раскрыто на весь экран.

Для работы с окнами предусмотрены следующие клавишные команды.

Ctrl + F7 и клавиши-стрелки — перемещение окна по экрану'. Эту операцию можно выполнить мышью. Курсор мьпии устанавли­вается на заголовок окна и окно буксируется в нужном направле­нии.

Ctrl + F9 — сворачивает окно до минимального размера. Эту операцию можно выполнить двойным щелчком левой кнопки мыши на заголовке окна.

Shift + Ctrl + F9 — сворачивает окно до минимального размера и перемещает его в правый нижний угол экрана. Двойной щелчок левой кнопки мыши на заголовке окна при зажатой клавише Shift выполняет ту же операцию.

Ctrl + F10 — переход к друтому окну. Переход также выполняет­ся щелчком левой кнопки мыши на нужном окне.

Для работы с окнами предусмотрены следующие команды.


9.1. ОПИСАНИЕ (СОЗДАНИЕ) ОКНА

DEFINE WINDOW <имя окна> FROM Yl.Xl ТО Y2,X2 (ATYI,X1 |

(SIZE Y2,X2 ]

(IN (WINDOW ] <имя окна 2> | IN SCREEN | IN DESKTOP ]

I FONT <выр.С1> [, <Bbip.N> ] J (STYLE <выр.С2>)

[FILL FILE <выр.СЗ>]

[ ICON FILE <выр.С4> ]

[ HALFHEIGHT J [ MDI | NOMDIJ [ FOOTER <выр.С5> ]

[ TITLE <выр.С6> ]

[ DOUBLE | PANEL | NONE | SYSTEM < строка бордюра> J [CLOSE | NOCLOSE 1 [FLOAT | NOFLOAT [

[ GROW | NOGROW)

[ MINIMIZE ]

[SHADOW [

[ ZOOM | NOZOOM ]

[ FILL <выр.С7> J

[ COLOR Сснисок nap цвстов> | COLOR SCHEME <Bbip.N2> ]

Назначение опций:

Yl,Xl и Y2, X2 — определяют координаты левого верхнего и пра­вого нижнего углов описываемого окна.

AT Y1,X1 — переопределяет координаты левого верхнего угла ок­на. Если эта опция используется совместно с опцией SIZE, то Visual FoxPro автоматически согласовывает размер окна с коли­чеством помещенного в него текста и размером шрифта.

IN WINDOW <имя окна 2> — размешает описываемое окно внут­ри другого окна с именем <имя окна 2>. Если эта опция опуще­на, то описываемое окно размешается на экране.

IN SCREEN — описываемое окно размещается на экране. Эта опция задана по умолчанию.

IN DESKTOP — размещает описываемое окно на экране WINDOWS поверх главного окна Visual FoxPro

FONT <выр.С1>, <Bbip.N> STYLE <выр.С2> — определяет тип, размер и стиль шрифта

FILL FILE <выр.СЗ> — задает фоновый рисунок окна. В <выр.СЗ> указывается имя графического файла с расширени­ем.bmp.

ICON FILE <выр.С4> — задает пиктограмму, которая будет ото­бражаться после свертывания окна. В <выр.С4> указывается имя графического файла с расширением.bmp.

ILVLFIIEIGHT — создаст окно со строкой заголовка половинной высоты. Опция используется для обеспечения работы програм­мы в двух средах — WINDOWS и MS DOS.

MDI | NOMDI — указывает, соответствует ли описываемое окно многооконному интерфейсу (М DI) или нет (NOMDI). По умол­чанию принято — MDI.

FOOTER <выр.С5> — описывает заголовок окна в центре ниж­ней границы окна.

TITLE <выр.С6> — описывает заголовок окна в центре верхней границы окна.

DOUBLE — обрамляет окно двойной линией.

PANEL — обрамляет окно одинарной линией.

NONE — окно не имеет линии границы.

SYSTEM — граница обозначена сплошной полосой и в ее углах расположены элементы управления окном (стандарт среды MS DOS).

<строка бордюра> — задает шаблон (не более восьми символов), который используется для задания границы окна.

CLOSE | NOCLOSE — разрешает (CLOSE) или запрещает (NOCLOSE) закрытие окна с помощью мыши и выводит в пра­вый верхний угол соответствующую кнопку.

FLOAT | NOFLOAT — разрешает (FLOAT) или запрещает (NOFLOAT) перемещение окна по экрану как с помощью мыши, так и с помощью клавиатуры.

GROW | NOGROW — разрешает (GROW) или запрещает (NOGROW) изменять размер окна как с помощью мыши, так и помощью клавиатуры.

MINIMIZE — разрешает сворачивание окна до пиктограммы.

SHADOW — отображает окно обрамленное «тенью*.

ZOOM | NOZOOM — разрешает (ZOOM) или запрещает (NOZOOM) распахивать окно на весь экран и возвращаться в нормальное состояние.

FILL <выр.С7> — определяет символ фонового заполнения окна. COLOR <спнсок пар цветов> | COLOR SCHEME <Bbip.N2> — оп­ределяет цвет окна либо по списку цветов, либо указанием номе­ра схемы (от 1 до 24).

9.2. АКТИВАЦИЯ ОКНА

ACTIVATE WINDOW

[ <имя окпа!> J [, <имя окна2> J [... ] | ALL [ BOTTOM | ТОР ]

Команда предъявляет на экран ранее определенные окна, име­на которых указаны в списке [ <имя окна1> ] [, <имя окна2> ][...], либо все окна (ALL). Кроме того, можно указать расположение открываемых окон: под ранее открытыми окнами (BOTTOM) или перед уже открытыми окнами (ТОР) По умолчанию приня­та опция ТОР.

9.3. УПРАВЛЕНИЕ РАСПОЛОЖЕНИЕМ ОКНА

SHOW WINDOW <нмя окна1> [, <имя окна2> ][...] | ALL [ IN WINDOW <имя окиа N> | IN SCREEN ]

[ТОР | BOTTOM | SAME]

[SAVE]

[REFRESH]

Команда предъявляет на экран указанное окно или окна, из­меняя порядок их отображения. Геометрические размеры окна и его расположение на экране команда не изменяет. Назначение опций:

IN WINDOW <имя окна N> — выводит указанные окна внутри окна <имя окна N>.

IN SCREEN — выводит указа!шые окна на экран.

ТОР — помешает вновь открываемые окна поверх уже открытых окон.

BOTTOM — помещает вновь открываемые окна под уже откры­тыми окнами.

SAME — помещает на экран деактивированное окно, в то же са­мое место, где оно было до деактивации.

SAVE — сохраняет на экране образ окна после его удаления.

REFRESH — предназначено для повторного открытия окна BROWSE после внесения изменений в данные. В окне BROWSE автоматически изменения не отображаются, поэтому нужна до­полнительная команда на обновление информации в окне BROWSE.

9.4. ДЕАКТИВАЦИЯ ОКНА

DEACTIVATE WINDOW <имя окна1> [, <имя окна2> ] |...} | ALL

Команда удаляет с экрана, но оставляет в оперативной памя ти окна, указанные в списке <имя окна1> [, <имя окна2> ][...] или все (ALL) окна. После этого вывод направляется либо в ос­тавшееся открытое окно, либо на экран.

9.5. ПЕРЕМЕЩЕНИЕ ОКНА

MOVE WINDOW <ичя окна> ТО Y, X | BY <bmp.N 1>, <Bbip.N2> | CENTER

Команда перемещает указанное <нмя окна> окно на экране или внутри другого окна. Причем левый верхний угол окна помещает ся в точку, указашгую либо абсолютными координатами ТО Y, X, либо oTHocHTej ьными координатами BY <Bbip.Nl>, <Bbip.N2>, ли­бо располагается по центру — CENTER. Команда может выпол­няться как до активации окна, так и после активации.

9.6. УДАЛЕНИЕ ОКОН

CLEAR WINDOWS

Команда удаляет все окна с экрана и из оперативной памяти.

9.7. УДАЛЕНИЕ УКАЗАННЫХ ОКОН

RELEASE WINDOWS Ссписок имен окон>

Команда удаляет с экрана и из оперативной памяти окна, имена которых указаны в списке <список имен окон>.

9.8. СОХРАНЕНИЕ ОКОН В ПАМЯТИ

SAVE WINDOW Ссписок имен окон> | ALL ТО Снмя файла> |

ТО MEMO Симя MFMO ноля >

Команда сохраняет либо указанные в списке <список имен окон> окна, либо все (ALL) окна или в файле ТО Симя файла> или в Memo-поле ТО MEMO Снмя MEMO поля >

9.9. ВОССТАНОВЛЕНИЕ СОХРАНЕННЫХ ОКОН

RESTORE WINDOW Ссписок имен окон> | ALL FROM Снмя файла> | FROM MEMO Снмя МЕМО-иоля>

Команда восстанавливает в оперативной памяти описания окон, имена которых указаны в списке Ссписок имен окон> или все (ALL) поля. Восстаноатсние производится либо из файла Симя файла>, либо из Memo-поля Симя MEMO поля>.

9.10. ИЗМЕНЕНИЕ ПОЛОЖЕНИЯ ОКНА

ZOOM WINDOW Симя окна> MIN [ AUTO ] | MAX | NORM [ АТ У1, XI | FROM Yl, XI [ SIZE Y2, Х21 ТО Y3, ХЗ ] |

Команда перемешает указанное окно <имя окна> с одновре­менным изменением его размеров, если это задано. Перемещае­мое окно должно быть ранее описано командой DEFINE WIN­DOW... Перемещать можно как активированное, так и деактиви­рованное окно. Назначение опций:

MIN — сворачивает окно до пиктограммы, но в команде DEFINE WINDOW должна быть указана опция М FNIMIZE. Опция AUTO используется только совместно с опцией MIN и размешает пик­тограмму свернутого окна в правом нижнем углу экрана (окна). М.АХ — распахивает окно на весь экран (весь размер старшего ок­на), но в команде DEFINE WINDOW должна быть указана опция ZOOM.

NORM — окно принимает размер, указанный в команде DEFINE WINDOW или установленный предшествующей командой ZOOM WINDOW...

AT Yl, XI | FROM Yl, XI — задаст новые координаты левого вер­хнего угла минимизированного и нормального окна.

SIZE Y2, Х21 ТО Y3, ХЗ — задаст новый нормальный размер ок­на либо количеством строк и столбцов (Y2 Х2), либо координа­тами правого нижнего угла окиа (Y3, ХЗ).

9.11. ПРОКРУТКА ОКНА

SCROLLYl,XI, Y2,X2, <выр.М> [, <выр.1\2> ]

Команда перемешает прямоугольную область окна, заданную координатами левого верхнего угла (Y1, XI) и координатами право­го нижнего угла (Y2, Х2), на <выр.Х1> строк и <вырЛЧ2> столбцов. Если <Bbip.Nl> и <Bbip.N2> положительные,то прокрутка произво­дится вверх и вправо. Если отрицательные, то вниз и влево.

При создании окон допускается использование следующих функций:

\VEXIST(<hmb окна>) — функция возвращает значение «истина* (.Т.), если существует окно, указанное в <имя окна>. В против­ном случае возвращается значение «ложь» (.F.).

\\'ОМТОР([<нмя окла> ]) — функция без аргумента возвращает имя окна переднего плана. Если н аргументе указано имя окна переднего плана, то функция возвращает значение «истина» (.Т.). В противном случае возвращается значение «ложь* (.F.). \VOUTPUT([ <имя окна> ]) — функция без аргумента возвращает имя активного окна, в которое производится выдача информа­ции. Если в аргументе указано имя активного окна, то функция возвращает значение «истина* (.Т.). В противном случае возвра­щается значение «ложь* (.F.).

\YMINIMUM([ <имя оква> ]) — функция возвращает значение «истина* (.Т.), если текущее (аргумент не указан) окно или ука­занное в <кмя окна> окно находится в свернутом состоянии. WMAXIMUM([ <имя окна> ]) — функция возвращает значение «истина* (.Т.), если текущее (аргумент не указан) окно или указан­ное в <нмя окна> окно распахнуто на весь экран (старшее окно). WCOLS([ <имя окна> ]) — функция возвращает количество стол­бцов либо в текущем (аргумент не указан) окне, либо в указанном окне.

WROYVS([ <ичя окна> ]) — функция возвращает количество строк либо в текущем (аргумент не указан) окне, либо в указан­ном окне.

\VLCOL{[ <имя окна> ]) - функция возвращает номер левой ко­лонки (относи ельно экрана) либо текущего (аргумент не указан) окна, либо указанного окна.

WLROYV([ <имя окна> ]) — функция возвращает номер верхней строки (относительно экрана) либо текущего (аргумент не ука­зан) окна, либо указашюго окна.

WLAST([ <имя окна> ]) — функция возвращает значение «исти­на» (.Т.), если указанное окно было активным перед текущим окном. В противном случае возвращается значение «ложь* (.F.). Если аргумент не указан, то функция возвращает имя предыду щего активного окна.

WTITLK([ <нмя окиа> ]) — функция возвращает заголовок либо текущего (аргумент не указан) окна, либо указанного окна.

SCOLS() — функция возвращает число столбцов экрана.

SROWS0 — функция возвращае число строк экрана.

При работе с функциями следует иметь в виду, что имя окна пишется буквами атинского алфавита и опреде шется в ком. нде DEFINE WINDOW... В тексте программы обращение к окну про­изводится по его имени.

Заголовок окна указывается в опции TITLE команды DEFINE WINDOW и пишется как буквами латинского алфавита, так и буквами русского алфавита. Заголовок окна выводится на экран в строку заголовка.

Если окно BROWSE при своем описании имеет опцию TITLE, то в качестве имени окна BROWSE будет использоваться этот заголовок. Причем команды активации и деактивации окна распознают только заголовки написанные буквами латинского алфавита. При закрытии таких окон с помощью клавишных команд: Esc, Ctrl + W или Ctrl + End, не важно какими буквами написан заголовок окна, но при программном закрытии окна — существенно. Замечание справедливо и для русифицированных версий FoxPro.

9.12. ПРИМЕРЫ

Пример 1. Создание, предъявление на экран, скрытие и уда­ление окна «Вывод».

CLEAR

DEFINE WINDOW output FROM 2.1 TO 13,75 TITLE 'Вывод';

CLOSE FLOAT GROW SHADOW ZOOM ACTIVATE WINDOW output

WAIT WINDOW 'Нажмите любую клавишу для скрытия окна

'Зывод'

HIDE WINDOW output

WAIT WINDOW 'нажмите любую клавишу для вывода на экран

'окна Вывод'

SHOW WINDOW output

WAIT WINDOW 'Нажмите любую клавишу для удаления окна ' +,-

'Вывод'

RELEASE WINDOW output

Пример 2. Управление расположением окна на экране.

DEFINE WINDOW wEnter FROM 10,4 TO 15,54 SYSTEM TITLE; 'Перемещение окна'

ACTIVATE WINDOW wEnter

WAIT WINDC/W 'Нажмите любую клавишу для перемещения '+;

'окна'

MOVE WINDOW wEnter ТО 20,15

WAIT WINDOW 'Нажмите любую клавишу для расположения '+;

'окна по центру экрана'

MOVE WINDOW wEnter CENTER

WAIT WINDOW 'Нажмите любую клавишу для удаления окна' RELEASE WINDOW wEnter

Пр и м е р 3. Сохранение окна «Вывод» в файле.

CLEAR

DEFINE WINDOW wOutputl FROM 2,1 TO 13,75 TITLE 'Вывод';

CLOSE FLOAT GR' OW SHADOW ZOOM ACTIVATE WINDOW WOutputl

@ 1,1 SAY 1 Сохранение окна в файле temp.win';

FONT "Times New Roman',12 STYLE 'B'

SAVE WINDOWS wOutputl TO temp =INKEY(3)

CLEAR WINDOWS

WAIT WINDOW 'Для восстановления окна «Вывод» на '+;

'экране нажмите любую клавишу RESTORE WINDOW wOutputl FROM temp ACTIVATE WINDOW wOutputl

WAIT WINDOW 'Для удаления окна и файла нажмите '+;

'любую клавишу'

DEACTIVATE WINDOW wOutputl RELEASE WINDOW wOutputl DELETE FILE temp.win

Пример 4. Перемещение окна по экрану с изменением раз­меров.

CLOSE ALL && Закрытие всех файлов

SET DEFAULT ТО E:\PRIMER && Задание рабочего каталога USE Customer.dbf in 1 alias cus

&& Далее открытие двенадцати таблиц

USE

Order.dbf

in

 

alias

ord

 

USE

Salesman.dbf

in

 

alias

smn

 

USE

Sale.dbf

in

 

alias

sal

 

USE

Account.dbf

in

 

alias

acnt

 

USE

Catalog.dbf

in

 

alias

ctl

INDEX

ORDER

USE

Autor.dbf

in

 

alias

atr

 

USE

Town.dbf

in

 

alias

twn

 

USE

Street.dbf

in

 

alias

str

 

USE

Fam.dbf

in

 

alias

fam

INDEX

ORDER

 


Дата добавления: 2015-09-29; просмотров: 15 | Нарушение авторских прав







mybiblioteka.su - 2015-2024 год. (0.093 сек.)







<== предыдущая лекция | следующая лекция ==>