logo search
Литература_1 / photon_old

Ответные реакции

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

Почти все виджеты поддерживают несколько типов ответных реакций. Эти ответные реакции могут быть заданы для виджета или быть унаследованы из его родительского класса. Некоторые из этих типов (определённые в виджете PtBasic), определены в следующей таблице:

Тип

ресурс

обычно вызывается, когда пользователь:

Activate

Pt_CB_ACTIVATE

Нажимает и отпускает левую кнопку мыши

Arm

Pt_CB_ARM

Нажимает левую кнопку мыши

Disarm

Pt_CB_DISARM

Отпускает левую кнопку мыши

Repeat

Pt_CB_REPEAT

Удерживает левую кнопку мыши нажатой

Menu

Pt_CB_MENU

Нажимает правую кнопку мыши

Для получения более полной информации по этим ответным реакциям см. "Справочник виджетов". Если Вы интересуетесь тем, как использовать Pt_CB_MENU для отображения модуля меню, см. главу "Доступ к модулям PhAB из программного кода".

Все виджеты Photon'а наследуют два других типа ответных реакций:

Ответные реакции "горячих клавиш"

Прикрепляют программный код ответной реакции к клавише или комбинации клавиш. Когда окно приложения получает фокус, "горячие клавиши" становятся активными. Нажатие любой такой клавиши вызывает исполнение программного кода, связанного с соответствующей клавишей.

Обработчики событий (Необработанные или отфильтрованные ответные реакции):

Прикрепляет ответные реакции непосредственно к событиям Photon'а.

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

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

PhAB предоставляет две основные категории привязаных ответных реакций:

Привязанные ответные реакции модульного типа,

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

Для получения более полной информации см. раздел "Модульные ответные реакции" ниже в этой главе.

Привязанные ответные реакции кодового типа

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

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

 Ответная реакция "Done" в базовом окне завершает работу приложения; ответная реакция "Cancel" в базовом окне закрывает окно приложения, но не завершает работу приложения.

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