Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литература_1 / photon_old.doc
Скачиваний:
38
Добавлен:
02.04.2015
Размер:
7.88 Mб
Скачать
          1. Ответные реакции фокусировки

Все потомки виджета PtBasic имеют следующие ресурсы ответных реакций:

  • Pt_CB_GOT_FOCUS – вызывается, когда виджет получает фокус

  • Pt_CB_LOST_FOCUS – вызывается, когда виджет теряет фокус.

Виджет может даже отказаться "отдавать" фокус (например, если Вы набрали ошибочную дату в текстовом виджете).

 PtMultiText и PtText имеют специальные версии этих ответных реакций.

Для получения более полной информации см. "Справочник виджетов".

          1. Функции обработки фокусировки

Функции, описанные ниже, имеют дело с фокусировкой. Они описаны в "Справочнике библиотечных функций Photon".

В действительности эти функции не изменяют виджеты, имеющие фокус; они сообщают Вам, где фокус может проходить:

PtFindFocusChild()

Отыскивает ближайший фокусируемый порождённый виджет.

PtFindFocusNextFrom()

Отыскивает следующий виджет, который может получить фокус.

PtFindFocusPrevFrom()

Отыскивает предыдущий виджет, который может получить фокус.

Вы можете использовать эти функции, чтобы определить, какой виджет имеет фокус:

PtContainerFindFocus()

Отыскивает виджет, имеющий фокус, в той же семейной иерархии, что и виджет.

PtIsFocused()

Определяет, на каком уровне виджет имеет фокус.

Вы можете использовать эти функции, чтобы передать фокус виджету:

PtContainerFocusNext()

Передаёт фокус следующему Pt_GETS_FOCUS виджету.

PtContainerFocusPrev()

Передаёт фокус предыдущему Pt_GETS_FOCUS виджету.

PtContainerGiveFocus() или PtGiveFocus()

Передаёт фокус виджету – эти функции идентичны.

PtContainerNullFocus()

Отменяет фокус для виджета.

PtGlobalFocusNext()

Передаёт фокус следующему виджету.

PtGlobalFocusNextContainer()

Передаёт фокус виджету следующего контейнера.

PtGlobalFocusNextFrom()

Передаёт фокус виджету, следующему за заданным.

PtGlobalFocusPrev()

Передаёт фокус предыдущему виджету.

PtGlobalFocusPrevContainer()

Передаёт фокус виджету предыдущего контейнера.

PtGlobalFocusPrevFrom()

Передаёт фокус виджету, находящемуся перед заданным.

    1. Упорядочивание виджетов

В PhAB каждый виджет присутствует перед или позади других виджетов. Это известно как порядок виджетов, и Вы можете видеть его, когда несколько виджетов перекрываются. Порядок виджетов диктует то, как Вы можете использовать клавиши СUА для перемещений между виджетами.

 Если Вы не использовали PhAB, порядок виджетов – это порядок, в котором виджеты были созданы. Чтобы изменить порядок, см. раздел "Упорядочивание виджетов" в главе "Управление виджетами в программном коде приложения".

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

  • используйте панель управления "Module Tree". Виджеты для каждого контейнера приведены в списке от заднего к переднему;

или

  • используйте режим тестирования и нажмите клавишу <Tab>, повторяя это, чтобы проверить порядок фокусировки.

Простейший путь переупорядочить виджеты – это использовать панель управления "Module Tree": просто перетаскивайте виджеты, пока не установите их в требуемом порядке.

Для переупорядочивания виджетов Вы можете также использовать метод "Shift-выбора":

  1. Используя расширенный метод выбора ("<Shift> и щелчок"), выберите виджеты в требуемом Вами порядке (этот метод выбора описан в разделе "Выбор виджетов")

  2. Сделайте одно из следующего:

  • выберите "To Front" или "To Back" из меню "Edit"

  • нажмите <Ctrl>+<F> или <Ctrl>+<B>.

  • щёлкните на одной из этих иконок:

PhAB разместит виджеты в порядке, в котором Вы их выбрали.

Вы можете также выбрать один или более виджетов и затем использовать иконки "Raise" и "Lower", чтобы изменить порядок виджетов:

Соседние файлы в папке Литература_1