Элементы управления в диалоговых окнах (1)

(По материалам Freedom Scientific Developer Network)
Дата публикации:2004
Twitter Facebook Vkontakte

Ниже представлены встроенные функции и скрипты языка сценариев Jaws, которые позволяют взаимодействовать с элементами управления диалоговых окон (кнопками, списками, опциями выбора и т.п.). Все эти функции объединены в категорию DialogControls.

Скрипт CloseListBox

Описание: посылает операционной системе комбинацию клавиш ALT+стрелка вверх, которая обычно означает команду закрыть список. Если курсор находится в окне редактирования, то читается предыдущая строка и на неё перемещается курсор.

Возвращаемое значение: Void

Параметры: отсутствуют

Этот скрипт доступен в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция ControlCanBeChecked

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

Возвращаемое значение: Int. 0 - если не может, 1 - если может быть отмечен.

Параметры: отсутствуют

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция ControlIsChecked

Описание: определяет отмечен ли текущий элемент управления или нет. Под понятием "отмечен" обычно подразумевают тот факт, что в элементе управления CheckBox ("Флажок") установлена "галочка" или "крестик". Данная функция работает только в диалоговых окнах.

Возвращаемое значение: Int. true или false.

Параметры: отсутствуют

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Пример

Ниже приведён исходный код скрипта, призванный продемонстрировать работу данной функции. Особой практической ценности этот скрипт не имеет. Вызовите редактор WordPad и, когда он загрузится, с помощью комбинации Insert + ноль на основной клавиатуре вызовите Диспетчер скриптов. Создайте новый скрипт (Control + E) с именем SayCheckedStatus и назначьте ему комбинацию клавиш (например, Insert + Control + 1 на основной клавиатуре). Введите недостающий текст в тело скрипта так, чтобы получилось:

Script SayCheckedStatus ()
If ControlIsChecked() Then
	SayString ("Отмечен")
Else
	SayString ("Не отмечен")
EndIf
EndScript

Откомпилируйте скрипт (Control + S). Если будут ошибки, то исправьте их и откомпилируйте снова (так до тех пор, пока не пройдёт безошибочная компиляция). Закройте Диспетчер скриптов.

В редакторе WordPad вызовите диалог выбора шрифта (Меню Формат/Шрифт) и переместитесь на элемент подчеркнутый. Нажмите комбинацию, которую вы назначили своему скрипту, и прослушайте сообщение. Теперь измените клавишей пробел состояние элемента на противоположное и опять вызовите свой скрипт.

Функция dtpGetSubfield

Описание: возвращает индекс (число от 1 до 4), который показывает, какое из полей элемента управления Дата/Время включено. Если невозможно определить никакое из полей, то функция возвращает ноль.

Возвращаемое значение: Int. Индекс поля (1 - 4). Если поле не определено, то функция возвращает ноль.

Параметр 1:

Handle, Функция предоставляет информацию для окна, которое определено этим дескриптором. Тип переменной или функции, подставляемых в качестве параметра в данную функцию, должен быть дескриптором окна. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних

Функция GetControlAttributes

Описание: возвращает целое значение, которое определяет атрибуты текущего элемента управления.

Возвращаемое значение: Int. Атрибуты элемента управления, определённые в виде констант в файле HJconst.jsh. Возвращаемое значение может быть следующей константой:

  • CTRL_NONE = 0
  • CTRL_CHECKED = 1
  • CTRL_UNCHECKED = 2
  • CTRL_GRAYED = 4
  • CTRL_DISABLED = 8
  • CTRL_SUBMENU = 16,
  • CTRL_PRESSED = 32.

Параметры: отсутствуют

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Пример

В качестве примера приведём скрипт, сообщающий атрибуты элемента управления в диалоговом окне. Назначьте этому скрипту комбинацию клавиш и исследуйте с его помощью элементы управления какого-нибудь приложения.

Include "HJconst.jsh"
Script SayControlAttrib ()
Var
	Int iAttrib
	
	Let iAttrib = GetControlAttributes ()
	IF iAttrib == CTRL_NONE Then
		SayString ("Нет особых атрибутов")
	ElIf iAttrib & CTRL_CHECKED Then
		SayString ("Отмечен")
	ElIf iAttrib & CTRL_UNCHECKED Then
		SayString ("не отмечен")
	ElIf iAttrib & CTRL_GRAYED Then
		SayString("Недоступно (серое)")
	ElIf iAttrib & CTRL_DISABLED Then
		SayString("Недоступно")
	ElIf iAttrib & CTRL_SUBMENU Then
		SayString("Меню второго уровня")
	ElIf iAttrib & CTRL_PRESSED Then
		SayString("Нажат")
	EndIF
EndScript

Функция GetControlName

Описание: возвращает имя текущего элемента управления. Например, для списков возвращает их название, т.е. текст ассоциируемый Jaws с этим элементом управления, для кнопок возвращается текст, написанный на кнопке, и т.д. Функция работает только в диалоговых окнах.

Возвращаемое значение: String. Имя элемента управления.

Параметры: отсутствуют

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция GetCurrentItem

Описание: возвращает индекс (число, начиная с 1), обозначающий элемент в списке или (ListBox или ComboBox), на котором стоит фокус ввода (PC-курсор). Эта функция расширяет функциональность lvGetFocusItem, чтобы работать также и с элементом управления ComboBox (комбинированный список.

Возвращаемое значение: Int. Числовой индекс текущего элемента списка.

Параметр 1:

Handle, Дескриптор окна списка (ListBox или ComboBox). Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 5.10 и более поздних

Функция GetHotKey

Описание: возвращает первый подчёркнутый символ в блоке текста, в котором находится активный курсор. Эта функция специально используется для того, чтобы получить клавишу активации для пункта меню или элемента управления в диалоговом окне.

Возвращаемое значение: String. Первый подчёркнутый символ, если он есть, иначе - пустая строка.

Параметр 1:

Handle, Дескриптор окна, для которого требуется получить горячую клавишу. Если дескриптор не представлен, то будет использован дескриптор текущего окна. Этот параметр может отсутствовать.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция GetItemCount

Описание: возвращает общее число элементов в списке ListView, панели инструментов (Toolbar) или комбинированном списке ( combobox). Эта функция расширяет функциональность lvGetItemCount, чтобы работать с комбинированными списками и панелями инструментов.

Возвращаемое значение: Int. Число элементов (пунктов).

Параметр 1:

Handle, Дескриптор интересующего окна. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних

Функция GetTreeViewLevel

Описание: получает уровень иерархии (вложенности) для текущего пункта в дереве TreeView. Корень (начало) дерева имеет нулевой уровень.

Возвращаемое значение: Int. Уровень иерархии для пункта, на котором находится фокус.

Параметры: отсутствуют

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция HotKeyHelpDefaultLoop

Описание: циклически перебирает все элементы управления в диалоговом окне и читает горячие клавиши, связанные с этими элементами.Выводит список с названиями элементов и горячими клавишами.

Возвращаемое значение: Void

Параметры: отсутствуют

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция HotKeyHelpDefaultLoopHelper

Описание: функция вызывается функцией HotKeyHelpDefaultLoop, чтобы вернуть текст из диалогового окна.

Возвращаемое значение: String. Строка, посылаемая в буфер пользователя.

Параметр 1:

Handle, Дескриптор первого элемента управления (дочернего окна) в диалоговом окне. Этот параметр является обязательным.

Параметр 2:

Int, Если TRUE, то строка будет озвучена, если FALSE - нет. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних


Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения.
Идея и реализация: © Владимир Довыденков и Анатолий Камынин,  2004-2019