Пристыковывает окно инструмента Integrated Development Environment (IDE) или панель инструметов к окну рабочего стола Visual FoxPro или другому окну IDE. Имеется две версии синтаксиса.

ЗамечаниеЗамечание

DOCK WINDOW не поддерживается в run time.

DOCK WINDOW WindowName1 | NAME ObjectName1 POSITION nPosition [ WINDOW WindowName2 | NAME ObjectName2 ]
DOCK WINDOW WindowName1 WINDOW WindowName2

Параметры

WindowName1

Определяет имя стыкуемого окна или панели инструментов. Для определенных пользователем понелей инструментов, вы можете в качестве имени использовать значение, хранящееся в свойстве Caption.

Если вы укажите в качестве стыкуемого окна нестыкуемое окно, оно становится стыкуемым внутренне. Например:

  CopyCode imageСкопировать код
WDOCKABLE("Command", .F.)
DOCK WINDOW Command
? WDOCKABLE("Command")  && Возвратит .T.

Если вы желаете пристыковать единичное окно, которое уже привязано внутри закладочного или линковочного контейнера к главному окну Visual FoxPro, то вы сначала должны расстыковать его из контейнера, например с помощью POSITION -1 или WDOCKABLE(, .F. ).

Закладочный или линковочный контейнер представляет собой набора окон, объединенных закладками или связкой.

NAME ObjectName1

Определяет объектную ссылку на действительную стыкуемую формы для стыовки. Если ObjectName1 уже состыкован, Visual FoxPro расстыковывает его и перестыковывает его так, как указано в команде.

ЗамечаниеЗамечание

Если ObjectName1 неопределено или недействительно, Visual FoxPro сгенерирует ошибку .

POSITION nPosition

Определяет позицию стыковки окна или панели инструментов.

В приведенной ниже таблице перечислены возможные значения для nPosition.

nPosition Позиция стыковки

-3

Расстыковать внутренний контейнер.

-2

Расстыковать внешний контейнер.

-1

Расстыковать окно.

ЗамечаниеЗамечание

Когда вы укажите значение -1 для POSITION, вы не можете включить в команду опцию WINDOW, так как при включении этой опции при указанном значении POSITION будет выведена ошибка синтаксиса..

0

Сверху

1

Слева

2

Справа

3

Снизу

Если nPosition установлено в значение между 0 и 3, окно стыкуется линковочной стыковной (link-docked), например, оно появится прикрепленным к какой-то из сторон другого окна.

4

Страничная или закладочная стыковка (Tabbed)

Если значение nPosition установлено в 4, то окно стыкуется страничной стыковкой, например, оно появится в виде окна, объединенного с другими в виде стэка окон, переключаться между которыми можно с помощью закладок.

ЗамечаниеЗамечание

Если вы указали 4 в качестве значения для POSITION, то вы должны определить опцию WINDOW. В противном случае, если вы не сделаете этого, произойдет ошибка.

ЗамечаниеЗамечание

Закладочная и линковочная стыковки не поддерживаются для окон отладчика внутри его собственного фрейма. Вы можете управлять установкой фрейма в диалоговом блоке Options. Панели инструментов не поддерживают страничной и линковочной стыковок.

Если страничный или линковочный контейнер пристыкован, вы можете расстыковать контейнер, если вы укажите для любого из составляющего его окон, значение минус 2 или минус 3, в соответствии с приведенными ниже подробностями:

  • Если вы пошлете значение -2, контейнер целиком отстыковывается от рабочего стола Visual FoxPro, если он был состыкован с ним.

  • Если вы пошлете значение -3, то будет расстыкован только внутренний контейнер, который является частью большего наружного контейнера. Это применимо к контейнерам со страничной стыковкой связанным внутри с линковочными контейнерами. Если указанное окно не является частью внутреннего контейнера со страничной стыковкой, Visual FoxPro рассматривает значение -3 как будто оно равно -2 и расстыковывает внешний контейнер целиком .

  • Если указанное окно не является частью контейнера, Visual FoxPro расстыковывает его, как будто бы вы послали значение -1.

Если окно или контейнер уже расстыкованы, Visual FoxPro ничего не делает.

Для получения более подробной информации о страничной и линковочной стыковках, смотрите Как: стыковать окна.

WINDOW WindowName2

Определяет имя целевого окна или панели инструментов, к которым производится стыковка. Если вы опустите параметр WindowName2, окно будет стыковать к окну рабочего стола Visual FoxPro.

ЗамечаниеЗамечание

Visual FoxPro сбрасывает ключевое слово WINDOW для панелей инструментов. Вы можете стыковать панели инструментов только к рабочему столу. Никакое другое окно не может быть пристыковано к панели инструментов.

Вы можете использовать опцию WINDOW для линковочной или страничной стыковок. DOCK WINDOW использует позицию страничной стыковки, как значение по умолчанию, если вы используете команду DOCK WINDOW...WINDOW без включания в нее опции POSITION.

Для стыковки страничного или линковочного контейнера целиком к окну рабочего стола Visual FoxPro, вызовите DOCK WINDOW с любым окном, состыкованным в контейнере или опустите опцию WINDOW.

Если вы укажите нестыкуемое окно в качестве целевого объекта стыковки, Visual FoxPro сгенерирует "Function argument value, type, or count is invalid (Error 11)". Например:

  CopyCode imageСкопировать код
DOCK WINDOW Command WINDOW Standard   && Generates an error.
NAME ObjectName2

Определяет объектную ссылку на действительную стыкуемую форму, к которой предполагается стыковка. Если ObjectName2 уже состыкован, Visual FoxPro расстыковывает его и перестыковывает так, как определено в команде.

ЗамечаниеЗамечание

Если ObjectName2 неопределено или недействительно, Visual FoxPro сгенерирует ошибку.

Expand imageПримечания

Командой DOCK WINDOW поддерживаются перечисленные ниже IDE окна и панели инструментов:

  • Все системные панели инструменов

  • Call Stack

  • Command

  • Data Session (View)

  • Document View

  • Locals

  • Output

  • Properties

  • Trace

  • Watch

Как системные, так и определенные пользователем панели инструментов поддерживаются командой DOCK WINDOW.

ЗамечаниеЗамечание

Указанное окно должно существовать на рабочем столе Visual FoxPro; в противном случае генерируется ошибка.

В предыдущих версиях Visual FoxPro, окно Data Session window всегда обозначалось как окно View. Кроме того, язык, используемый для управления этим окном, такой как HIDE WINDOW, ACTIVATE WINDOW, WONTOP( ), также ссылался на это окно, как на окно View. Visual FoxPro продолжаться ссылаться на окно, именно как на окно View при использовании в команде DOCK WINDOW.

DOCK WINDOW всегда принуждает окно, если оно существует, становиться стыкуемым и изменяет установку свойства окна Visible в True (.T.).

Вы можете стыковать множество окон, которые стыкуются как группа к другому окну с помощью указания одного из стыкуемых окон. Однако, если объект, к которому предполагается стыковка уже существует в том же самом контейнере, что и указанное окно, то только это окно и стыкуется. Это предотвращает циклические связи. Например, приведенные ниже код перестыковывает окно Command window к правой стороне окна Properties:

  CopyCode imageСкопировать код
DOCK WINDOW Command POSITION 4 WINDOW Properties
DOCK WINDOW Command POSITION 2 WINDOW Properties

Сравните этот пример с приведенным ниже кодом, который пристыковывает окна Command и View к окну Properties страничной стыковкой:

  CopyCode imageСкопировать код
DOCK WINDOW Command POSITION 4 WINDOW View
DOCK WINDOW Command POSITION 4 WINDOW Properties
ЗамечаниеСовет

Удаление или редактирование файла ресурса FoxUser.dbf, который содержит ваши пользовательские установки, восстанавливает ваши оконные установки в их состояние по умолчанию.

Expand imageПример

Приведенный пример использует команду DOCK WINDOW для стыковки окна Command к окну рабочего стола Visual FoxPro и использует функцию ADOCKSTATE( ) для получения информации о состояния стыковки окна Command.

Во-первых, убедитесь, что окно Command открыто. После стыковки окна Command, вы можете увидеть, что панель инструментов Standard и окно Command пристыкованы к окну рабочего стола Microsoft Visual FoxPro. Позиция панелей инструментов или окон, возвращаемая в массив функцией ADOCKSTATE( ) может варьироваться в зависимости от порядка, в котором стыковались панели инструментов или окна.

  CopyCode imageСкопировать код
CLEAR
DOCK WINDOW Command POSITION 0
dockNum = ADOCKSTATE(dockState)
? dockNum   && Returns 2 only if Command window and 
            && Standard toolbar exist.
? dockState(1,1)  && Outputs "Standard". 
? dockState(1,4)  && Outputs "Microsoft Visual FoxPro".
? dockState(2,1)  && Outputs "COMMAND". 
? dockState(2,4)  && Outputs "Microsoft Visual FoxPro".

Expand imageСмотрите также