Извлекает информацию о состоянии стыковки любой стыкуемой формы, окна Интегрированной среды разработки (IDE), или панели инструментов. В случае, если вас интересует состояние стыковки только для форм, вы можете использовать метод GetDockState. ADOCKSTATE( ) доступна в run time.

ADOCKSTATE( ArrayName [, nType | nExtended])

Параметры

ArrayName

Определяет массив с одной или более строками, содержащий информацию о состоянии стыковки стыкуемых предметов.

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

В массиве могут появиться как системные, так и определенные пользователем панели инструментов. Форма появляется в массиве только в том случае, если ее свойство Dockable установлено в значение, большее чем 0.

Приведенная ниже таблица иллюстрирует информацию, которую содержит массив.

Элемент Описание

1

Имя формы, окна IDE или панели инструментов.

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

2

Состояние стыковки:

1 - Состыковано

0 - Не состыковано

3

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

Значения для формы и панели инструментов, смотрите описание свойства DockPosition. Для окон, смотрите описание команды DOCK.

4

Целевой объект, который определяет объект к которому осуществлена стыковка.

Этот элемент не применим к панелям инструментов, если они не пристыкованы к главному окну Visual FoxPro. Для панелей инструментов или окон, пристыкованных к главному окну Visual FoxPro, четвертый элемент содержит имя главного окна Visual FoxPro, которое вы можете получить, используя свойство Caption _VFP. Если окно или панель инструментов не пристыкованы, четвертый элемент содержит пустую строку.

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

Если панель инструментов появилась между рабочим столом Visual FoxPro и окном, пристыкованным к рабочему столу Visual FoxPro, то четвертый элемент содержит имя панели инструментов.

5

Объектная ссылка на пристыкованную форму или панель инструментов.

Применяется только в том случае, когда пристыкованы определенные пользователем формы или панели инструментов; в противном случае, этот элемент содержит пустую строку (окно IDE).

6

Объектная ссылка на целевой объект, если он представляет собой определенную пользователем форму. Если целевым объектом является главное окно Visual FoxPro, то этот элемент содержит объектную ссылка на системную переменную _SCREEN. В противном случае, этот элемент содержит пустую строку (окно IDE).

nType

Определяет один или более предметов, для которых вы желаете получить информацию о состоянии стыковки с помощью фукнции ADOCKSTATE().

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

nType Описание

0

Возвращает все или ни одного окна. (По умолчанию)

1

Возвращает только окна IDE.

2

Возвращает только панели инструментов.

3

Возвращает только определенные пользователем формы.

nExtended

Определяет число элементов для возврата в массив.

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

nExtended Описание

0

Возвращает четырех-элементный массив для окон и панелей инструментов.

1

Возвращает шести-элементный массив для форм.

Expand image Возвращаемое значение

Численный тип данных. ADOCKSTATE( ) возвращает число заполненных строк или 0, если не найдено состыкованных предметов .

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

Для окон со страничной стыковкой, самое левое окно является якорным окном и содержит подробную информацию о том, как состыкован контейнер в целом. Visual FoxPro прослеживает окна слева-направо. Для окон с линковочной стыковкой, верхнее левое окно в контейнере с линковочной стыковкой содержит подробную информацию о том, как состыкован контейнер в целом.

Приведенные ниже правила определяют порядок стыковки:

  • Visual FoxPro прослеживает контейнер с линковочной стыковкой, начиная с самого крайнего верхнего левого окна.

  • Visual FoxPro прослеживает окна сверху-вниз и слева-направо. Контейнер с линковочной стыковкой может состоять из множества внутренних контейнеров. Таким образом, упорядочивание окно в массиве, заполняемом ADOCKSTATE( ) может появляться по разному.

  • Позиция, содержащаяся в третьем элементе массива определяется относительно окна, на которое ссылается первый элемент массива.

  • Visual FoxPro прослеживает все окна с линковочной стыковкой первыми и затем окна со страничной стыковкой. По существу, Visual FoxPro делает два прохода через связанный контейнер. Visual FoxPro включает только крайне левые окна со страничной стыковкой в первый проход по окнам с линковочной стыковкой.

  • Visual FoxPro прослеживает контейнер со страничной стыковкой слева-направо.

Если третий элемент массива установлен в -1 (не состыковано), контейнер не состыкован. Если контейнер пристыкован к рабочему столу, то третий элемент в массиве содержит позицию, в которой контейнер пристыкован к рабочему столу Visual FoxPro, на которую ссылается четвертый элемент массива.

Например, примеденный ниже пример создает массив, открывает и стыкует несколько окон и создает массив:

  CopyCode imageСкопировать код
CLEAR ALL
PUBLIC aa
DIMENSION aa[1]
ACTIVATE WINDOW Command 
ACTIVATE WINDOW Trace 
ACTIVATE WINDOW Document 
ACTIVATE WINDOW Properties 
ACTIVATE WINDOW Watch 
ACTIVATE WINDOW Locals 
SET
DOCK WINDOW View POSITION -1
DOCK WINDOW Command POSITION -1 
DOCK WINDOW Trace POSITION -1
DOCK WINDOW Document POSITION -1
DOCK WINDOW Properties POSITION -1
DOCK WINDOW Watch POSITION -1
DOCK WINDOW Command POSITION 1 WINDOW View
DOCK WINDOW Trace POSITION 1 WINDOW Command
DOCK WINDOW Document POSITION 3 WINDOW View
DOCK WINDOW Properties POSITION 3 WINDOW Trace
DOCK WINDOW Watch POSITION 4 WINDOW Command
DOCK WINDOW Locals POSITION 3 WINDOW Command
ADOCKSTATE(aa,1)

В результате появится массив следующего вида:

Строка Первый элемент Второй элемент Третий элемент Четвертый элемент

1

Trace

1

-1

 

2

Properties

1

3

Trace

3

Watch

1

2

Trace

4

Locals

1

3

Watch

5

View

1

2

Watch

6

Document View

1

3

View

7

Command

1

4

Watch

Visual FoxPro отображает информацию о стыковке для окон отладчиков. Если окно пристыковано, Visual FoxPro показывает имя, состояние стыковки (0) и позицию (-1). Если окно пристыковано, Visual FoxPro показывает только имя, состояник стыковки (1), позицию и окно ("Visual FoxPro Debugger").

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

Expand image Пример

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

  CopyCode imageСкопировать код
CLEAR
dockNum = ADOCKSTATE(dockState)
? dockNum   && Возвращает 2 так как существует и панель инструментов Standard.
? dockState(1,1)  && Выводит "COMMAND".
? dockState(1,4)  && Выводит пустую строк, так как окно Command    
                && не пристыковано.
? dockState(2,1)  && Выводит "Standard". 
? dockState(2,4)  && Выводит "Microsoft Visual FoxPro" because the 
                && панель инструментов Standard  пристыкована к рабочему столу
                && Microsoft Visual FoxPro.

Следующий пример показывает, как использовать команду DOCK для стыковки окна 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   && возвращает 2 так как существует и  панель инструментов Standard.
? dockState(1,1)  && Выводит "Standard". 
? dockState(1,4)  && Выводит "Microsoft Visual FoxPro".
? dockState(2,1)  && Выводит "COMMAND". 
? dockState(2,4)  && Выводит "Microsoft Visual FoxPro".

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