Команда DEFINE WINDOW

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

Синтаксис:

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

Параметры:
WindowName1
Задает имя окна, которое предстоит создать. Имена окон могут содержать до 254 символов в Visual FoxPro (до 10 символов в ранних версиях FoxPro). Они должны начинаться с буквы или символа подчеркивания, но не с цифры, и могут включать любую комбинацию букв, цифр и символов подчеркивания.
FROM nRow1, nColumn1 TO nRow2, nColumn2
Задает позицию и размер пользовательского окна в основном окне Visual FoxPro. FROM nRow1, nColumn1 задает позицию левого верхнего угла пользовательского окна в основном окне Visual FoxPro. TO nRow2, nColumn2 задает позицию правого нижнего угла пользовательского окна в основном окне Visual FoxPro.
Можно определить координаты точек, лежащих вне границ основного окна Visual FoxPro; в этом случае пользовательское окно будет больше основного окна Visual FoxPro.
В Visual FoxPro, FoxPro для Windows и FoxPro для Macintosh положение и размер окна определяются шрифтом его родительского окна. Родителем окна может быть другое пользовательское окно или основное окно Visual FoxPro.
AT nRow3, nColumn3 SIZE nRow4, nColumn4
Задает позицию и размер пользовательского окна.
Предложение AT nRow3, nColumn3 задает позицию левого верхнего угла пользовательского окна в основном окне Visual FoxPro. Эта позиция определяется текущим шрифтом родительского окна. Поскольку предложение AT идентично предложению FROM во всех отношениях, они полностью взаимозаменяемы.
Предложение SIZE nRow4, nColumn4 задает размер пользовательского окна в строках и столбцах и обеспечивает размещение в нем текста, отображаемого определенным шрифтом.
Вы можете задать для создаваемого окна шрифт и стиль шрифта, пользуясь предложениями FONT и STYLE. Если вы задали шрифт для окна и включили предложение SIZE, размер окна будет определяться высотой и шириной данного шрифта. В Visual FoxPro и FoxPro для Windows в качестве шрифта окна, если он не задан явно, используется системный шрифт, принимаемый по умолчанию: 10-пунктовый шрифт FoxFont. В FoxPro для Macintosh применяется 9-пунктовый шрифт Monaco.
В FoxPro для MS-DOS предложения AT и SIZE также позволяют задать положение и размер пользовательского окна. Поскольку FoxPro для MS-DOS поддерживает только один шрифт, размер окна всегда будет одним и тем же.
IN [WINDOW] WindowName2
Помещает пользовательское окно в родительское окно. Пользовательское окно становится дочерним и не может быть сдвинуто за пределы родительского окна. Когда родительское окно перемещается, дочернее окно перемещается вместе с ним.
Когда дочернее окно помещается в родительское окно, координаты дочернего окна, заданные предложениями FROM и TO или предложениями AT и SIZE, выражаются относительно родительского окна, а не основного окна Visual FoxPro.
В следующем примере создается родительское окно wParent и в него помещается дочернее окно wChild.

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
В Visual FoxPro и FoxPro для Windows помещает пользовательское окно в основное окно Microsoft Windows, вне основного окна Visual FoxPro. Позиция пользовательского окна выражается относительно основного окна Windows, и в нем используется текущий шрифт основного окна Visual FoxPro.
В FoxPro для Macintosh помещает пользовательское окно в основное окно Macintosh. Оно не может быть скрыто за основным окном FoxPro.
В FoxPro для MS-DOS помещает пользовательское окно в основное окно FoxPro. Предложения IN DESKTOP и IN SCREEN в FoxPro для MS-DOS идентичны.
IN MACDESKTOP
Допустимо только в FoxPro для Macintosh.
Помещает пользовательское окно в основное окно Macintosh. Пользовательское окно находится на одном уровне с основным окном FoxPro, может быть сдвинуто за его пределы и скрыто за ним.
Предложение MACDESKTOP отменяет текущую установку SET MACDESKTOP. Установка SET MACDESKTOP определяет, где размещаются пользовательские окна при отсутствии предложений SCREEN и MACDESKTOP в основном окне FoxPro или в основном окне Macintosh. Подробнее о размещении пользовательских окон в основном окне FoxPro и в основном окне Macintosh см. тему SET MACDESKTOP.
NAME ObjectName
Допустимо только в Visual FoxPro.
Создает ссылку на окно как на объект, что позволяет манипулировать им, используя объектно-ориентированные свойства объекта Form. Подробнее об объектно-ориентированном программировании в Visual FoxPro см. главу 3 "Объектно-ориентированное программирование" Руководства разработчика. Подробнее о свойствах объекта Form, которые можно задать для окна, созданного с помощью предложения NAME, см. тему Объект Form.
FONT cFontName [, nFontSize]
Допустимо только в Visual FoxPro, FoxPro для Windows и FoxPro для Macintosh.
Задает шрифт для текста, размещаемого в окне. cFontName задает имя шрифта, а nFontSize его размер в пунктах. Если аргумент nFontSize опущен, используется размер 9 пунктов.
Например, в Visual FoxPro и FoxPro для Windows следующая команда создает окно, которое будет отображать направляемый в него вывод с помощью 16-пунктового шрифта Courier:

DEFINE WINDOW wDisplayFont FROM 2,2 TO 12,22 FONT 'Courier', 16 

Если в Visual FoxPro и FoxPro для Windows предложение FONT опущено, используется шрифт FoxFont размером в 10 пунктов. В FoxPro для Macintosh используется 9-пунктовый шрифт Monaco.
Если в Visual FoxPro и FoxPro для Windows заданный шрифт отсутствует, его заменяет шрифт с похожими характеристиками.
Если в FoxPro для Macintosh заданный шрифт отсутствует, используется шрифт Chicago.
В FoxPro для MS-DOS предложение FONT игнорируется.
STYLE cFontStyle
Допустимо только в Visual FoxPro, FoxPro для Windows и FoxPro для Macintosh.
Задает стиль шрифта для текста, размещаемого в окне. cFontStyle обозначает стиль. Если предложение STYLE опущено, используется стиль Normal (нормальный).
Если в Visual FoxPro и FoxPro для Windows заданный стиль шрифта отсутствует, его заменяет стиль с похожими характеристиками.
Если в FoxPro для Macintosh заданный стиль шрифта отсутствует, используется стиль Normal (нормальный).
В FoxPro для MS-DOS предложение STYLE игнорируется.
В следующей таблице перечислены стили шрифта и соответствующие им символы.

Символ	Стиль шрифта
B	Bold (Полужирный)
I	Italic (Курсив)
N	Normal (Нормальный)
O	Outline (Контурный)
Q	Opaque (Непрозрачный)
S	Shadow (Затененный)
-	Strikeout (Перечеркнутый; только в Visual FoxPro)
T	Transparent (Прозрачный)
U	Underline (Подчеркнутый)
C	Condense (Уплотненный; только в FoxPro для Macintosh)
E	Extend (Расширенный; только в FoxPro для Macintosh)

Можно задать комбинацию стилей, указав сразу несколько символов. В Visual FoxPro, FoxPro для Windows и FoxPro для Macintosh следующая команда задает полужирный курсив (Bold Italic):

DEFINE WINDOW wDisplayStyle FROM 2, 2 TO 12, 22 STYLE 'BI'

FOOTER cFooterText
Допустимо только в FoxPro для MS-DOS.
Назначает пользовательскому окну нижний колонтитул. cFooterText задает текст колонтитула. Он располагается в центре нижней границы окна. Если нижний колонтитул оказывается шире окна, он укорачивается.
В Visual FoxPro, FoxPro для Windows и FoxPro для Macintosh предложение FOOTER игнорируется.
TITLE cTitleText
Назначает окну заголовок. cTitleText задает текст заголовка и располагается в центре верхней границы окна. Если заголовок оказывается шире окна, он укорачивается.
HALFHEIGHT
Допустимо только в Visual FoxPro, FoxPro для Windows и FoxPro для Macintosh.
Создает окно со строкой заголовка, имеющей высоту вдвое меньше обычной. Это обеспечивает совместимость для окон, созданных в одной из предыдущих версий FoxPro и импортируемых в Visual FoxPro, FoxPro для Windows или FoxPro для Macintosh.
Когда вы с помощью команды DEFINE WINDOW создаете окно в Visual FoxPro, FoxPro для Windows или FoxPro для Macintosh, используется строка заголовка половинной высоты, если вы не задали ключевое слово SYSTEM или предложение FONT.
Если задано ключевое слово HALFHEIGHT, строка заголовка половинной высоты используется даже в том случае, когда указано ключевое слово SYSTEM или FONT.
В FoxPro для MS-DOS предложение HALFHEIGHT игнорируется.
DOUBLE | PANEL | NONE | SYSTEM | cBorderString
Задает стиль обрамления для пользовательского окна. По умолчанию в качестве обрамления используется одиночная линия.

Аргумент		Описание
DOUBLE		Задает вокруг окна обрамление в виде двойной линии.
PANEL		Задает широкую рамку вокруг окна.
NONE		Полностью отменяет обрамление.
SYSTEM		Придает пользовательскому окну вид системного окна. Когда вы 
		включаете некоторые другие предложения (GROW, ZOOM и т.д.), 
		соответствующие элементы управления окна размещаются на границе окна.
cBorderString	Задает обрамление специализированного вида. Подробнее об 
		этом см. команду SET BORDER.

В Visual FoxPro, FoxPro для Windows и FoxPro для Macintosh при использовании опции DOUBLE или строки обрамления окно создается с обрамлением типа PANEL. Когда вы задаете предложения CLOSE, FLOAT, GROW, ZOOM или MINIMIZE, соответствующие элементы управления помещаются в окне даже в том случае, если предложение SYSTEM опущено.
CLOSE
Разрешает закрывать пользовательское окно с клавиатуры или через интерфейс. Когда окно закрывается, оно удаляется из основного окна Visual FoxPro или родительского пользовательского окна, а его определение удаляется из памяти. Если предложение CLOSE опущено, вы не сможете закрыть окно.
NOCLOSE
Запрещает вам закрывать окно.
FLOAT
Разрешает перемещать пользовательское окно с помощью клавиатуры или средствами интерфейса. Если предложение FLOAT опущено, вы не сможете перемещать окно. Для перемещения окна также можно пользоваться командой MOVE WINDOW.
NOFLOAT
Запрещает вам перемещать пользовательское окно.
GROW
Разрешает вам изменять размеры пользовательского окна с помощью клавиатуры или средствами интерфейса. Если предложение GROW опущено, вы не сможете изменить размеры окна.
NOGROW
Запрещает изменять размеры окна.
MDI
Допустимо только в Visual FoxPro и в FoxPro для Windows.
Создает MDI-совместимое пользовательское окно. MDI (multiple document interface) это спецификация, предусматривающая использование нескольких окон документов и определяющая их структуру и поведение. Если ключевое слово MDI опущено, созданное окно не будет MDI-совместимым.
Когда вы разворачиваете MDI-совместимое окно, происходит следующее:
Окно принимает размеры основного окна Visual FoxPro. Элементы управления окна исчезают, а кнопка его управляющего меню переходит в системную строку меню Visual FoxPro. Кнопка восстановления окна также помещается в системную строку меню Visual FoxPro.
Заголовок окна появляется в строке заголовка Visual FoxPro, отделяясь от заголовка Visual FoxPro дефисом.
При активизации другого MDI-совместимого окна оно автоматически примет развернутый вид.
NOMDI
Создает окно, не являющееся MDI-совместимым.
MINIMIZE
Допустимо только в Visual FoxPro, FoxPro для Windows и FoxPro для MS-DOS.
Разрешает свертывать пользовательское окно с помощью клавиатуры или интерфейса.
В FoxPro для Macintosh пользовательские окна не свертываются, и предложение MINIMIZE игнорируется.
NOMINIMIZE
Окна, созданные с опцией NOMINIMIZE или без опции MINIMIZE, нельзя свертывать.
SHADOW
Допустимо только в FoxPro для MS-DOS и FoxPro для Macintosh.
Создает затенение позади пользовательского окна. По умолчанию окна не имеют затенения. Чтобы изменить установку, принимаемую по умолчанию, воспользуйтесь командой SET SHADOWS.
В Visual FoxPro и FoxPro для Windows предложение SHADOW игнорируется.
NOSHADOW
Окна, созданные с опцией NOSHADOW или без опции SHADOW, не имеют затенения.
ZOOM
Разрешает развертывать пользовательское окно с помощью клавиатуры или интерфейса. Вы также можете восстановить первоначальные размеры окна.
NOZOOM
Запрещает развертывание окна.
ICON FILE FileName
Допустимо только в Visual FoxPro и в FoxPro для Windows.
Задает значок, отображаемый при свертывании окна. В команде DEFINE WINDOW следует указать ключевое слово MINIMIZE. Вы может задать только файл значка (.ICO); растровый файл (.BMP) задавать нельзя.
FILL cFillCharacter
Допустимо только в FoxPro для MS-DOS.
Заполняет фон окна заданным символом. Если cFillCharacter состоит из нескольких символов, в качестве символа закрашивания используется только первый из них. Вы также можете задать символ закрашивания с помощью функции CHR( ).
Предложение FILL игнорируется в Visual FoxPro, FoxPro для Windows и FoxPro для Macintosh.
FILL FILE FileName2
Допустимо только в Visual FoxPro, FoxPro для Windows и FoxPro для Macintosh.
Задает фоновый рисунок (тип обоев) для окна. Фон окна покрывается рисунком, определенным файлом FileName2.
В Visual FoxPro и FoxPro для Windows можно задавать растровый файл .BMP.
В FoxPro для Macintosh можно задать файл рисунка типа PICT или растровый файл .BMP. Если имя файла рисунка приведено без расширения, FoxPro для Macintosh сначала ищет файл рисунка с заданным вами именем и расширением .BMP. Если такой файл найти не удастся, FoxPro для Macintosh ищет файл с заданным именем и расширением .PCT. Если файл рисунка с расширением имени .PCT также не найден, FoxPro для Macintosh ищет файл рисунка с заданным вами именем без расширения.
В FoxPro для MS-DOS предложение FILL FILE игнорируется.
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 SHADOW 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

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.