Amiga. Вычислительная техника
Меню сайта
Главная
Amiga
Amiga Corporation
Модельный ряд
История развития
Аппаратная платформа
Операционные системы
Эмуляция
AMIGA # 1
Программирование на Ассемблере
Организация процессоров
Методы защиты информации
Компьютерные новеллы
Боятся ли компьютеры адского пламени?
Виртуальная реальность
Корпоративные сети
Телекоммуникационные сети
Архитектура ЭВМ
ЕС ЭВМ
Рождение ЭВМ
Компьютер
Гарвардская архитектура
Современные высокопроизводительные компьютеры
Дорога в будущее
Vista
Инфоpматика
ЭВМ
Операционные системы
Linux
Windows
Освой компьютер
Макинтош
Набор текста
Поколения
Компьютерная грамотность
Устройство компьютера
Железо
Графика
Звук
Ремонт
Сети
Программирование
Информационные технологии
Криптография
Микроэлектроника
Истории
 
 

Освой компьютер


Этот

пункт содержит символ проверки (check symbol), однако не

является переключателем - его состояние нельзя изменить.
Меню 2: Пункты этого меню не могут быть выбраны с помощью клавиатуры.

Для выделения заголовка первого пункта используется

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

выборе второго пункта (\'Point1.2\') появляется подменю,

содержащее два пункта.
До сих пор мы рассматривали только действия по созданию меню нужной
структуры. Однако возникает вопрос: как программа пользователя \"узнает\" о
выборе того или иного пункта меню?
Один из способов проверки состояния меню основывается на тестировании бита
CHECKED в слове, определяющем флаги нужного пункта меню: как только
пользователь выбирает этот пункт с помощью мыши, бит CHECKED
устанавливается.
Однако этот способ имеет ряд недостатков. Во-первых, он работает только в
том случае, если установлен флаг разрешения проверки. Во-вторых, он требует
большого числа проверок, а именно, бит CHECKED каждого пункта меню и
подменю должен быть протестирован отдельно. Все это приводит к очень
громоздкому коду, поэтому мы рассмотрим другой способ (который и
используется на практике).
Вспомним формат IDCMP-слова, рассмотренный нами в п. 7.2. Это слово, как Вы
уже знаете, содержит набор флагов, определяющих, какие события может
принимать данное окно. Нас будет интересовать восьмой бит этого слова
(MENUPICK): если этот бит установлен, то при выборе какого-либо пункта меню
функция GetMsg возвратит информацию об этом пункте в специальном поле IMS-
структуры (см. п. 7.4). Поместите следующий фрагмент кода в программу из п.
7.1 (после метки loop):
move.l ExecBase(PC),A6

move.l windowhd(PC),A0 ;идентификатор окна

move.l 86(A0),A0 ;адрес пользовательского порта

jsr GetMsg(A6) ;получаем сообщение

tst.l D0

beq.s loop ;сообщения не было

move.l D0,A0 ;указатель на IMS-структуру

move.l 20(A0),D6 ;тип события - в D6
После этого мы можем использовать команду CMP или BTST для проверки
содержимого регистра D6.

 

AMIGA: ПРОГРАММИРОВАНИЕ НА АССЕМБЛЕРЕ.

 

© 2010 Amigo. All Rights Reserved
Создание сайтов ЕкатеринбургШаблоны сайтовПоиск товаров - справочник цен, каталог магазинов, прайс-листыБесплатные шаблоны дизайна компьютерных сайтов
Hosted by uCoz