Главная » Просмотр файлов » Руководство программиста в Photon

Руководство программиста в Photon (1037671), страница 21

Файл №1037671 Руководство программиста в Photon (Раздаточные материалы) 21 страницаРуководство программиста в Photon (1037671) страница 212017-12-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 21)

Описание стандартных кнопок редактора в его нижней части см. в разделе "Редактирование ресурсов виджета".

Редактор функций

Когда Вы выбираете ресурс функции, такой как ресурс "Draw Function" (Pt_ARG_RAW_DRAW_F) виджета PtRaw, Вы увидите редактор функций:

Рис. 6-8. Редактор функций

 Виджет должен иметь уникальное имя экземпляра, прежде чем Вы сможете редактировать его ресурсы функции. Наберите имя функции – см. раздел "Имена функций и файлов" в главе "Работа с программным кодом". Если Вы уже дали имя Вашему приложению при его сохранении (см. раздел "Сохранение приложения" в главе "Работа с приложениями"), Вы можете редактировать функцию, щёлкнув на кнопке справа от текстовой области.

Описание стандартных кнопок редактора в его нижней части см. в разделе "Редактирование ресурсов виджета".

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

Ответные реакции формируют связь между интерфейсом приложения и программным кодом Вашего приложения. Например, скажем, Вы хотите, чтобы приложение выполнило некое действие, когда пользователь выбрал определённую кнопку. В этом случае Вы прикрепите функцию ответной реакции к ответной реакции кнопки "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" обеспечивают дополнительную возможность: они будут автоматически закрывать или уничтожать родительский модуль виджета после вызова функции ответной реакции. Вы найдёте полезными эти типы для создания любых кнопок, закрывающих диалоговое окно.

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

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

Редактирование ответных реакций:

Редактор ответной реакции позволяет Вам добавлять, изменять, удалять или просматривать список ответных реакций виджета.

Чтобы узнать, как добавлять ответную реакцию в пункт команды или переключать пункт меню, см. раздел "Модули меню" в главе "Работа с модулями".

 Если Вы добавляете привязанную ответную реакцию к виджету, виджет должен иметь уникальное имя экземпляра. Если PhAB скажет Вам, что имя неуникально, используйте область "Widget Instance Name" на панелях управления ресурсами или ответными реакциями, чтобы отредактировать имя. Чтобы открыть редактор ответной реакции и отредактировать список ответных реакций виджета:

  1. Выберите виджет, затем, если необходимо, переключитесь на панель управления ответными реакциями.

  2. Выберите тип ответной реакции из списка ответных реакций виджета (например, чтобы добавить ответную реакцию Pt_CB_ACTIVATE, щёлкните на "Activate").

Вот простая сессия редактора ответных реакций:

Рис. 6-9. Редактор ответных реакций

  1. Чтобы добавить новую ответную реакцию, щёлкните на <NEW>. Для редактирования существующей ответной реакции щёлкните на этой ответной реакции в списке ответных реакций.

  2. Если Вы добавляете новую ответную реакцию, выберите тип ответной реакции, которую Вы хотите добавить. Чтобы сделать это, выберите его из "Module Types" или "Code Types".

  3. Заполните данные в секции "Link to Callback/Module Info". Области в этой секции зависят от типа выбранной ответной реакции. Для получения более полной информации см. разделы в этой главе, описывающие:

  • модульные ответные реакции

  • кодовые ответные реакции

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

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

  1. После того как Вы добавили или отредактировали какую-либо из ответных реакций, щёлкните на соответствующей кнопке:

"Apply" –

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

"Reset" –

восстановить оригинальные значения для всей информации поответным реакциям.

"Remove" –

удалить ответную реакцию из списка ответных реакций.

Модульные ответные реакции

Для связи виджета с модулем могут использоваться привязанные ответные реакции модульного типа. Например, выбор кнопки будет приводить к созданию модуля.

 Когда Вы используете для создания модуля привязанную ответную реакцию модульного типа, модуль становится потомком базового окна Вашего приложения, а не потомком модуля, содержащего виджет, для которого определена привязанная ответная реакция.

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

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

Рис. 6-10. Области редактора ответных реакций

Name

Имя модуля. Если Вы щёлкните на иконке рядом с этой областью, то увидите список существующих модулей. Либо выберите имя из этого списка, либо введите имя модуля, которое не существует (PhAB создаёт модуль для Вас, когда Вы добавляете ответную реакцию).

Location

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

Setup Function

Позволяет Вам задать функцию, которая может быть вызвана в два различных момента времени (как задано в области "Called"):

  • перед тем как модуль отображается (предреализация)

  • после того как модуль отобразился (постреализация).

Вы можете задать только одну установочную функцию – PhAB API вызывает одну и ту же функцию как при пред-, так и при постреализации модуля. Для того чтобы отличить, какой проход функции был вызван, проверьте вызывавший её программный код. Щёлкните на иконке возле области "Setup Function", чтобы отредактировать функцию или выбрать её из существующих ответных реакций.

Hotkey

(только для ответных реакций "горячих клавиш"). Клавиатурная клавиша и модификатор (такой как <Alt> или <Ctrl>), которые запускают ответную реакцию. См. раздел "Задание ответных реакций "горячих клавиш".

Event Mask

(только для обработчиков событий). Позволяет Вам задавать, к каким событиям Photon'а виджет будет чувствителен. См. "Обработчики событий – необработанные и отфильтрованные ответные реакции".

Предреализационная установочная функция

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

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

Постреализационная установочная функция

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

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

Установочные функции хранятся в заготовочных файлах

Когда Вы задаёте установочную функцию, PhAB генерирует заготовочную функцию; для получения более полной информации по заданию языка (С или С++) и имени файла, см. раздел "Имена функций и имена файлов" в главе "Работа с программным кодом".

Ответные реакции кодового типа

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

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

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

Function Это функция, которая будет вызываться, когда виджет вызывает ответную реакцию. Для типов "Done" или "Cancel" эта функция необязательна, так что Вы можете присоединить ответную реакцию, просто закрыв модуль. Как сказано выше, "Done" и "Cancel" являются похожими, за исключением того, что ответная реакция "Done" в базовом окне завершает работу приложения, тогда как ответная реакция "Cancel" закрывает окно, но не завершает приложение. В действительности нет разницы между функциями ответных реакций "Done" и "Cancel" – они просто задействуют различный программный код в ответной реакции. Например, скажем, что Вы имеете диалог с кнопками "Done" и "Cancel". Если Вы присоедините ответную реакцию типа "Done" к кнопке "Done" и ответную реакцию типа "Cancel" к кнопке "Cancel", Вы сможете использовать одну и ту же функцию в программном коде в обоих случаях и просто смотреть на исполняемый код, чтобы определить, какая кнопка выбрана пользователем.

Характеристики

Тип файла
Документ
Размер
7,62 Mb
Тип материала
Высшее учебное заведение

Список файлов учебной работы

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6361
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее