Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
51
Добавлен:
02.04.2015
Размер:
8.79 Mб
Скачать
      1. Прикрепление ответной реакции

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

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

  2. Из списка ответных реакций выберите "Window Manager". Вы хотите использовать ответную реакцию менеджера окон, поскольку она вызывается, когда Photon'овский менеджер окон закрывает окно.

  3. В зоне "Function" наберите newwin_close. Вы не выбираете тип обратной реакции, поскольку принимаемый по умолчанию "Code" – это то, что Вы хотите.

Щёлкните на "Apply", затем на "Done".

  1. Переключитесь на панель управления ресурсами и выберите ресурс "Flags: Notify". Убедитесь, что флаг Ph_WM_CLOSE установлен (т.е. подсвечен), затем щёлкните на "Done". Этот флаг указывает менеджеру окон уведомлять Ваше приложение, когда окно закрывается.

  2. Теперь давайте установим функцию, которая будет вызываться при открытии окна. Откройте модуль меню filemenu, затем выберите ресурс "Menu Items" в панели управления ресурсами. Вы увидите редактор меню.

  3. Убедитесь, что в списке пунктов меню "Menu Items" выбран пункт "New", затем щёлкните на иконке ответной реакции, чтобы открыть редактор ответных сявзей.

  4. Выберите тип модуля "Window", затем щёлкните на стрелке возле области "Name". Вы увидите список существующих модулей окон.

  5. Выберите newwin, который является окном, только что Вами созданным.

  6. В области "Setup Function" введите newwin_setup как имя установочной функции. В дальнейшем Вы модифицируете newwin_setup, чтобы манипулировать множественными экземплярами окон.

  7. Щёлкнтте "Apply", затем "Done". Щёлкните ещё раз "Done", чтобы закрыть редактор меню.

      1. Добавление виджетов

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

  • Добавьте виджет PtRect и четыре виджета PtButton, как показано ниже:

  • Теперь модифицируем левую кнопку:

  • Изменим текст надписи кнопки на Red.

  • Присвоим кнопке имя экземпляра btn_red

  • Прикрепим ответную реакцию "Activate", зададим тип кода "Code" и имя функции color_change.

  • Модифицируем среднюю кнопку:

  • Изменим текст надписи кнопки на Green.

  • Зададим имя экземпляра кнопки btn_green.

  • Прикрепим Activate/Code ответную реакцию к той же функции, что и выше – color_change.

  • Модифицируем правую кнопку:

  • Изменим текст надписи кнопки на Blue.

  • Зададим имя экземпляра кнопки btn_blue.

  • Прикрепим ответную реакцию типа Activate/Code к той же функции, что и выше – color_change.

  • Модифицируем большую кнопку:

  • Изменим текст надписи на "Change previous window's color".

  • Зададим имя экземпляра кнопки btn_prev.

  • Прикрепим ответную реакцию типа Activate/Code к той же функции, что и выше color_change.

  • Наконец, присвоим прямоугольнику имя экземпляра color_rect. Вам необходимо задать это имя, так чтобы функция color_change() могла изменить цвет прямоугольника.

Ваше окно теперь будет выглядеть таким образом:

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