Извлекает информацию о состоянии стыковки любой стыкуемой формы, окна Интегрированной среды разработки (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
Возвращает шести-элементный массив для форм.
Возвращаемое значение
Численный тип данных. ADOCKSTATE( ) возвращает число заполненных строк или 0, если не найдено состыкованных предметов .
Примечания
Для окон со страничной стыковкой, самое левое окно является якорным окном и содержит подробную информацию о том, как состыкован контейнер в целом. Visual FoxPro прослеживает окна слева-направо. Для окон с линковочной стыковкой, верхнее левое окно в контейнере с линковочной стыковкой содержит подробную информацию о том, как состыкован контейнер в целом.
Приведенные ниже правила определяют порядок стыковки:
-
Visual FoxPro прослеживает контейнер с линковочной стыковкой, начиная с самого крайнего верхнего левого окна.
-
Visual FoxPro прослеживает окна сверху-вниз и слева-направо. Контейнер с линковочной стыковкой может состоять из множества внутренних контейнеров. Таким образом, упорядочивание окно в массиве, заполняемом ADOCKSTATE( ) может появляться по разному.
-
Позиция, содержащаяся в третьем элементе массива определяется относительно окна, на которое ссылается первый элемент массива.
-
Visual FoxPro прослеживает все окна с линковочной стыковкой первыми и затем окна со страничной стыковкой. По существу, Visual FoxPro делает два прохода через связанный контейнер. Visual FoxPro включает только крайне левые окна со страничной стыковкой в первый проход по окнам с линковочной стыковкой.
-
Visual FoxPro прослеживает контейнер со страничной стыковкой слева-направо.
Если третий элемент массива установлен в -1 (не состыковано), контейнер не состыкован. Если контейнер пристыкован к рабочему столу, то третий элемент в массиве содержит позицию, в которой контейнер пристыкован к рабочему столу Visual FoxPro, на которую ссылается четвертый элемент массива.
Например, примеденный ниже пример создает массив, открывает и стыкует несколько окон и создает массив:
![]() | |
---|---|
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().
Пример
Приведенный ниже пример показывает возвращаемые функцией ADOCKSTATE() результаты, когда ни окна, ни панели инструментов не были предварительно состыкованы, например, например, после удаления файла ресурса FoxUser или когда Visual FoxPro только что проинсталлирован. Убедитесь, что окно Command открыто.
![]() | |
---|---|
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( ) может варьироваться в зависимости от порядка, в котором стыковались панели инструментов или окна.
![]() | |
---|---|
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". |
Смотрите также
Задачи
Как: стыковать формыКак: стыковать панели инструментов
Как: стыковать окна
Справочное руководство
Свойство Caption (Visual FoxPro)Свойство DockPosition
Команда DOCK
Свойство Docked