
Apresentamos a seguir alguns programas com exemplos de utilização de menus e submenus.
Veja, a seguir, um trecho de um programa OpusWin onde está sendo definido um menu principal e vários menus secundários, ou seja, menus suspensos.
$nolib
prog
Menu hospub
pad inf1 prompt "Informações" do rot
pad inf2 prompt "Emergência" popup P2
bar 1 prompt "Chefia" do rot
bar 2 separator
bar 3 prompt "Atendente" popup P2B3
bar1 1 prompt "Mov. Pacientes" popup P2B3B1
bar2 4 prompt "Procedimentos" do rot
bar1 2 prompt "Alterações" popup P2B3B2
bar2 1 prompt "Dados Pessoais" do rot
bar2 2 prompt "Entrada" do rot
bar2 3 prompt "Saída" do rot
bar2 4 prompt "Plano de Saúde" do rot
bar2 5 prompt "Acidente de Trabalho" do rot
bar1 3 prompt "Cancela Saída" do rot
bar1 4 prompt "Consultas" do rot
bar1 5 prompt "Emite Documentos" do rot
EndMenu
Activate Menu hospub
proc rot
return
A tela produzida por este programa pode ser visualizada a seguir:

Veja, a seguir, um outro programa OpusWin onde está sendo definido um menu principal e vários níveis de menus secundários.
$nolib
prog
menu primeiro
pad um prompt "&um" popup pad-1 message "pad 1"
bar 11 prompt "1.1..." popup bar-11 message "1.1"
bar1 111 prompt "1.1.1..." popup bar1-111 message "1.1.1"
bar2 1111 prompt "1.1.1.1" do proc1 message "1.1.1.1"
bar2 1112 prompt "1.1.1.2" do proc1 message "1.1.1.2"
bar2 1113 prompt "1.1.1.3" do proc1 message "1.1.1.3"
bar1 112 prompt "1.1.2..." popup bar1-112 message "1.1.2"
bar2 1121 prompt "1.1.2.1" do proc1 message "1.1.2.1"
bar2 1122 prompt "1.1.2.2" do proc1 message "1.1.2.2"
bar2 1123 prompt "1.1.2.3" do proc1 message "1.1.2.3"
bar 12 prompt "1.2..." popup bar-12 message "1.2"
bar1 121 prompt "1.2.1..." popup bar1-121 message "1.2.1"
bar2 1211 prompt "1.2.1.1" do proc1 message "1.2.1.1"
bar2 1212 prompt "1.2.1.2" do proc1 message "1.2.1.2"
bar1 122 prompt "1.2.2..." popup bar1-122 message "1.2.2"
bar2 1221 prompt "1.2.2.1" do proc1 message "1.2.2.1"
bar2 1222 prompt "1.2.2.2" do proc1 message "1.2.2.2"
pad dois prompt "&dois" popup pad-2 message "pad 2"
bar 21 prompt "2.1..." popup bar-21 message "2.1"
bar1 211 prompt "2.1.1..." popup bar1-111 message "1.1.1"
bar2 2111 prompt "2.1.1.1" do proc1 message "2.1.1.1"
bar2 2112 prompt "2.1.1.2" do proc1 message "2.1.1.2"
bar2 2113 prompt "2.1.1.3" do proc1 message "2.1.1.3"
bar1 212 prompt "2.1.2..." popup bar1-112 message "2.1.2"
bar2 2121 prompt "2.1.2.1" do proc1 message "2.1.2.1"
bar2 2122 prompt "2.1.2.2" do proc1 message "2.1.2.2"
bar2 2123 prompt "2.1.2.3" do proc1 message "2.1.2.3"
bar 22 prompt "2.2..." popup bar-22 message "2.2"
bar1 221 prompt "2.2.1..." popup bar1-221 message "2.2.1"
bar2 2211 prompt "2.2.1.1" do proc1 message "2.2.1.1"
bar2 2212 prompt "2.2.1.2" do proc1 message "2.2.1.2"
bar1 222 prompt "2.2.2..." popup bar1-222 message "2.2.2"
bar2 2221 prompt "2.2.2.1" do proc1 message "2.2.2.1"
bar2 2222 prompt "2.2.2.2" do proc1 message "2.2.2.2"
pad tres prompt "&tres" popup pad-3 message "pad 3"
bar 31 prompt "3.1..." popup bar-31 message "3.1"
bar1 311 prompt "3.1.1..." popup bar1-311 message "3.1.1"
bar2 3111 prompt "3.1.1.1" do proc1 message "3.1.1.1"
bar2 3112 prompt "3.1.1.2" do proc1 message "3.1.1.2"
bar2 3113 prompt "3.1.1.3" do proc1 message "3.1.1.3"
bar1 311 prompt "3.1.2..." popup bar1-312 message "3.1.2"
bar2 3121 prompt "3.1.2.1" do proc1 message "3.1.2.1"
bar2 3122 prompt "3.1.2.2" do proc1 message "3.1.2.2"
bar2 3123 prompt "3.1.2.3" do proc1 message "3.1.2.3"
bar 32 prompt "3.2..." popup bar-32 message "3.2"
bar1 321 prompt "3.2.1..." popup bar1-321 message "3.2.1"
bar2 3211 prompt "3.2.1.1" do proc1 message "3.2.1.1"
bar2 3212 prompt "3.2.1.2" do proc1 message "3.2.1.2"
bar1 322 prompt "3.2.2..." popup bar1-322 message "3.2.2"
bar2 3221 prompt "3.2.2.1" do proc1 message "3.2.2.1"
bar2 3222 prompt "3.2.2.2" do proc1 message "3.2.2.2"
pad quatro prompt "&quatro" popup pad-4 message "pad 4"
bar 41 prompt "4.1..." popup bar-41 message "4.1"
bar1 411 prompt "4.1.1..." popup bar1-411 message "4.1.1"
bar2 4111 prompt "4.1.1.1" do proc1 message "4.1.1.1"
bar2 4111 prompt "4.1.1.2" popup bar2-4111 message "4.1.1.2"
bar3 41111 prompt "4.1.1.2.1" do proc1 message "4.1.1.2.1"
bar3 41112 prompt "4.1.1.2.2" do proc1 message "4.1.1.2.2"
bar3 41112 prompt "4.1.1.2.3" do proc1 message "4.1.1.2.3"
pad sair prompt "&sai" message "saindo ..." do proc1
EndMenu
Activate menu primeiro
proc proc1
if pad()="sair"
Deactivate menu primeiro
quit
endif
@16,01 say "Nome do menu="+menu()
@17,01 say "Item do menu principal="+pad()
@18,01 say "Nome do menu suspenso="+popup()
@19,01 say "Nome do item do menu="+prompt()
@20,01 say "Número do item no menu="+str(bar())
return
A figura a seguir mostra um detalhe da tela gerada pelo programa acima, onde observamos a barra do menu principal e alguns menus suspensos, ou secundários.

