Освой компьютер
;следующий пункт
tst.l (A0)+ ;увеличиваем указатель списка
tst.l (A0) ;конец списка?
beq.s setmenu1 ;да, выход
move.l A1,(A2) ;иначе сохраняем указатель на
;следующее меню верхнего
;уровня
bra menuloop ;цикл
setmenu1: ;* создать меню
move.l intbase(PC),A6 ;база intuition.library
move.l windowhd(PC),A0 ;идентификатор окна
lea menu(PC),A1 ;указатель на блок данных меню
jsr SetMenuStrip(A6) ;создаем меню
rts ;все! В конце программы, как всегда, приводится блок переменных и констант: mentab: ;тестовый список меню
dc.l menu1 ;заголовок первого меню
dc.l mp11,mp12,mp13 ;пункты первого меню
dc.l 0 ;конец списка пунктов
dc.l menu2 ;заголовок второго меню
dc.l mp21,mp22,mp23 ;пункты второго меню
dc.l 0 ;конец списка пунктов
dc.l 0 ;конец списка меню
;** Menu Text **
menu1: dc.b \'Menu1\',0 ;заголовок первого меню
mp11: dc.b \'Point11\',0 ;пункты первого меню
mp12: dc.b \'Point12\',0
mp13: dc.b \'Point13\',0
menu2: dc.b \'Menu2\',0 ;заголовок второго меню
mp21: dc.b \'Point21\',0 ;пункты второго меню
mp22: dc.b \'Point22\',0
mp23: dc.b \'Point23\',0
align
;** Storage space for menu structure **
menu: blk.w 500 ;место для блоков данных Попробуйте изменить эту программу так, чтобы она допускала использование
\"горячих\" клавиш.
AMIGA: ПРОГРАММИРОВАНИЕ НА АССЕМБЛЕРЕ.
|