Создает окно и определяет его атрибуты.

DEFINE WINDOW WindowName1 FROM nRow1, nColumn1 TO nRow2, nColumn2 
| AT nRow3, nColumn3 SIZE nRow4, nColumn4
[IN [WINDOW] WindowName2 | IN SCREEN | IN DESKTOP [NAME ObjectName]
[FONT cFontName [, nFontSize [, nFontCharSet]]] [STYLE cFontStyle]
[FOOTER cFooterText] [TITLE cTitleText] [HALFHEIGHT]
[DOUBLE | PANEL | NONE | SYSTEM | cBorderString]
[CLOSE | NOCLOSE] [FLOAT | NOFLOAT] [GROW | NOGROW] [MDI | NOMDI]
[MINIMIZE | NOMINIMIZE] [ZOOM | NOZOOM] [ICON FILE FileName1]
[FILL cFillCharacter | FILL FILE FileName2]
[COLOR SCHEME nSchemeNumber | COLOR ColorPairList]]

Параметры

WindowName1

Задает имя окна, которое предстоит создать. Имена окон могут содержать до 254 символов в Visual FoxPro. Они должны начинаться с буквы или символа подчеркивания, но не с цифры, и могут включать любую комбинацию букв, цифр и символов подчеркивания.
FROM nRow1, nColumn1TO nRow2, nColumn2

Задает позицию и размер пользовательского окна в основном окне Visual FoxPro. FROM nRow1, nColumn1 задает позицию левого верхнего угла пользовательского окна в основном окне Visual FoxPro. TO nRow2, nColumn2 задает позицию правого нижнего угла пользовательского окна в основном окне Visual FoxPro.
У окна можно определить координаты, лежащие вне границ основного окна Visual FoxPro; в этом случае пользовательское окно будет больше основного окна Visual FoxPro. Позиция окна и его размер определяется шрифтом родительского окна. Родительское окно может быть другим пользовательским окном или основным окном Visual FoxPro.
AT nRow3, nColumn3SIZE nRow4, nColumn4

Задает позицию и размер пользовательского окна. Предложение AT nRow3, nColumn3 задает позицию левого верхнего угла пользовательского окна в основном окне Visual FoxPro. Эта позиция определяется текущим шрифтом родительского окна. Поскольку предложение AT идентично предложению FROM во всех отношениях, они полностью взаимозаменяемы. Предложение SIZE nRow4, nColumn4 задает размер пользовательского окна в строках и столбцах и обеспечивает размещение в нем текста, отображаемого определенным шрифтом. Вы можете задать для создаваемого окна шрифт и стиль шрифта, пользуясь предложениями FONT и STYLE. Если вы задали шрифт для окна и включили предложение SIZE, размер окна будет определяться высотой и шириной данного шрифта. Если вы не задали шрифт для окна, то используется системный шрифт, принимаемый по умолчанию: 10-пунктовый шрифт FoxFont.
IN [WINDOW] WindowName2

Помещает пользовательское окно в родительское окно. Пользовательское окно становится дочерним и не может быть сдвинуто за пределы родительского окна. Когда родительское окно перемещается, дочернее окно перемещается вместе с ним. Когда дочернее окно помещается в родительское окно, координаты дочернего окна, заданные предложениями FROM и TO или предложениями AT и SIZE, указываются относительно родительского окна, а не основного окна Visual FoxPro. В следующем примере создается родительское окно  wParent и в него помещается дочернее окно wChild.
  Copy Code
CLEAR
DEFINE WINDOW wParent ;
FROM 1, 1 TO 20, 30 ;
TITLE "Parent" && Parent window.
ACTIVATE WINDOW wParent
DEFINE WINDOW wChild ;
FROM 1, 1 TO 20, 20 ;
TITLE "Child" ;
IN WINDOW wParent && Child window.
ACTIVATE WINDOW wChild
ACTIVATE SCREEN
WAIT WINDOW 'Press a key to clear the windows'
RELEASE WINDOW wParent, wChild
CLEAR
IN SCREEN

Принудительно помещает пользовательское окно в основное окно Visual FoxPro. Если предложение IN SCREEN опущено, пользовательское окно по умолчанию помещается в основное окно Visual FoxPro.
Используя предложение IN WINDOW в команде ACTIVATE WINDOW, вы можете поместить данное окно в другое пользовательское окно и отменить его установку, сделанную в предложении IN SCREEN.
IN DESKTOP

Помещает пользовательское окно на рабочий стол Microsoft Windows, а не в основное окно Visual FoxPro. Позиция пользовательского окна указывается относительно рабочего стола Windows, и в нем используется текущий шрифт основного окна Visual FoxPro.
NAME ObjectName

Создает ссылку на окно как на объект, что позволяет манипулировать им, используя объектно-ориентированные свойства объекта Form. Подробнее об объектно-ориентированном программировании в Visual FoxPro см. главу Объектно-ориентированное программирование. Подробнее о свойствах объекта Form, которые можно задать для окна, созданного с помощью предложения NAME, см. тему Объект Form.
FONT cFontName[, nFontSize [, nFontCharSet]]

Задает шрифт для текста, размещаемого в окне. cFontName задает имя шрифта, а nFontSize его размер в пунктах. Если аргумент nFontSize опущен, используется размер 9 пунктов. nFontCharSet задает скрипт языка (кириллический, западный и др.). Список доступных скриптов языка можно получить с помощью функции GETFONT( ). Например, следующая команда создает окно, которое будет отображать направляемый в него вывод с помощью 16-пунктового шрифта Courier:
  Копировать код
DEFINE WINDOW wDisplayFont FROM 2,2 TO 12,22 FONT 'Courier', 16 
Если предложение FONT опущено, используется шрифт FoxFont размером в 10 пунктов. Если указанный шрифт недоступен, его заменяет шрифт с похожими характеристиками.
STYLE cFontStyle

Задает стиль шрифта для текста окна. cFontStyle обозначает стиль. Если предложение STYLE опущено или если стиль шрифта не доступен, используется стиль Normal (нормальный). В следующей таблице перечислены стили шрифта и соответствующие им символы.

Символ Стиль шрифта

B

Bold

I

Italic

N

Normal

Q

Opaque

-

Strikeout

T

Transparent

U

Underline

Можно задать комбинацию стилей, указав сразу несколько символов. В Visual FoxPro следующая команда задает полужирный курсив Bold Italic:
  Copy Code
DEFINE WINDOW wDisplayStyle FROM 2, 2 TO 12, 22 STYLE 'BI'
FOOTER cFooterText

Включено для обратной совместимости. Игнорируется в версиях Visual FoxPro для Windows.
TITLE cTitleText

Назначает окну заголовок. cTitleText задает текст заголовка и располагается в центре верхней границы окна. Если заголовок оказывается шире окна, он укорачивается.
HALFHEIGHT

Создает окно со строкой заголовка, имеющей высоту вдвое меньше обычной. Это обеспечивает совместимость для окон, созданных в одной из предыдущих версий FoxPro и импортируемых в Visual FoxPro. Когда вы с помощью команды DEFINE WINDOW создаете окно, используется строка заголовка половинной высоты, если вы не задали ключевое слово SYSTEM или предложение FONT. Если же задано ключевое слово HALFHEIGHT, строка заголовка половинной высоты используется даже в том случае, когда указано ключевое слово SYSTEM или предложение FONT.
DOUBLE | PANEL | NONE | SYSTEM | cBorderString

Задает стиль обрамления для пользовательского окна. По умолчанию в качестве обрамления используется одиночная линия.

Аргумент     Описание

DOUBLE

Задает вокруг окна обрамление в виде двойной линии.

PANEL

Задает широкую рамку вокруг окна.

NONE

Полностью отменяет обрамление.

SYSTEM

Придает пользовательскому окну вид системного окна. Когда вы включаете некоторые другие предложения (GROW, ZOOM и т.д.), соответствующие элементы управления окна размещаются на границе окна.

cBorderString

Задает обрамление специализированного вида. Подробнее об этом см. команду SET BORDER.

При использовании аргумента DOUBLE или пользовательской строки обрамления окно создается с обрамлением типа PANEL. Когда вы задаете предложения CLOSE, FLOAT, GROW, ZOOM или MINIMIZE, соответствующие элементы управления помещаются в окне даже в том случае, если предложение  SYSTEM опущено.
CLOSE

Разрешает закрывать пользовательское окно с помощью клавиатуры или мыши. Когда окно закрывается, оно удаляется из основного окна Visual FoxPro или родительского пользовательского окна, а его определение удаляется из памяти. Если предложение CLOSE опущено, вы не сможете закрыть окно через интерфейс; в этом случае окно должно быть закрыто из программы или командного окна.
NOCLOSE

Запрещает закрытие окна иным способом, чем из программы или командного окна.
FLOAT

Разрешает перемещать окно с помощью клавиатуры или мыши. Если предложение FLOAT опущено, вы не сможете перемещать окно иначе, чем командой MOVE WINDOW из программы или командного окна.
NOFLOAT

Запрещает перемещение окна иным способом, чем командой MOVE WINDOW из программы или командного окна.
GROW

Разрешает вам изменять размеры пользовательского окна с помощью клавиатуры или мыши. Если предложение GROW опущено, вы не сможете изменить размеры окна иначе, чем командой SIZE WINDOW из программы или командного окна.
NOGROW

Запрещает изменять размеры окна иным способом, чем командой SIZE WINDOW из программы или командного окна.
MDI

Создает MDI-совместимое пользовательское окно. MDI (multiple document interface) - это спецификация, предусматривающая использование нескольких окон документов и определяющая их структуру и поведение. Если ключевое MDI опущено, созданное окно не будет MDI-совместимым. Когда MDI-совместимое окно развернуто:
  • Окно принимает размеры основного окна Visual FoxPro. Элементы управления окна исчезают, а кнопка его управляющего меню переходит в системную строку меню Visual FoxPro. Кнопка восстановления окна также помещается в системную строку меню Visual FoxPro.

  • Заголовок окна помещается в строку заголовка Visual FoxPro и отделяется от заголовка Visual FoxPro дефисом.

  • При активизации другого MDI-совместимого окна оно автоматически примет развернутый вид.

NOMDI

Создает окно, не являющееся MDI-совместимым.
MINIMIZE

Разрешает свертывать пользовательское окно с помощью клавиатуры или мыши.
NOMINIMIZE

Запрещает свертывание окна.
ZOOM

Разрешает развертывать пользовательское окно с помощью клавиатуры или мыши. Вы также можете восстановить первоначальные размеры окна.
NOZOOM

Запрещает развертывание окна.
ICON FILE FileName

Задает значок, отображаемый после свертывании окна. В команде DEFINE WINDOW необходимо указать ключевое слово MINIMIZE. Вы можете задать только файл значка (расширение .ico); растровый файл (расширение .bmp) задавать нельзя.
FILL FILE FileName2

Задает фоновый рисунок (типа обоев) для окна. Фон окна покрывается рисунком, определенным файлом FileName2. Можно задавать растровый файл с расширением .bmp.
COLOR SCHEME nSchemeNumber

Задает цвета для пользовательского окна. По умолчанию цвета окон, созданных с помощью команды DEFINE WINDOW, управляются цветовой схемой 1.
COLOR ColorPairList

Задает цвета для пользовательского окна.

Комментарии

После того, как пользовательские окна созданы с помощью команды DEFINE WINDOW, их можно отобразить в основном окне Visual FoxPro командой ACTIVATE WINDOW или SHOW WINDOW. Число окон, которые вы можете создать, ограничивается только объемом доступной памяти и системными ресурсами.

Активизированные окна остаются в основном окне Visual FoxPro до тех пор, пока не будет выдана команда DEACTIVATE WINDOW или HIDE WINDOW. Эти команды удаляют окна из основного окна Visual FoxPro, но оставляют определения окон в памяти. Окна можно восстановить в основном окне Visual FoxPro по команде ACTIVATE WINDOW или SHOW WINDOW.

Используйте команду CLEAR WINDOWS или RELEASE WINDOWS для удаления окон из основного окна Visual FoxPro и удаления определения окон из памяти. Чтобы вновь увидеть на экране окна, определения которых были удалены из памяти, их следует создать заново с помощью команды DEFINE WINDOW.

Пример

В следующем примере создается и активизируется окно output. Программа ждет нажатия клавиши, а затем скрывает окно. Затем программа ждет следующего нажатия клавиши и вновь отображает окно.

  Копировать код
CLEAR
DEFINE WINDOW output FROM 2,1 TO 13,75 TITLE 'Output' ;
CLOSE FLOAT GROW ZOOM
ACTIVATE WINDOW output
WAIT WINDOW 'press any key to hide window output'
HIDE WINDOW output
WAIT WINDOW 'press any key to show window output'
SHOW WINDOW output
WAIT WINDOW 'press any key to release window output'
RELEASE WINDOW output

См. также