    Curso de scripvox - Aula15 (Por Fabiano Ferreira)

    Menus

    Após uma temporada de revisões e exercícios de fixação, vamos
retomar nosso curso de scripvox.
    Veremos nesta aula, uma das formas mais interessantes de interação
com o usuário: a criação de menus.
    Assim, o usuário poderá usar as setas verticais para escolher e
ativar a opção desejada.

    *Menu cria;
    Este comando cria a estrutura do menu de opções.
    Obrigatoriamente, o comando menu cria recebe 4 argumentos, que são:
xx, yy, onde xx, refere-se a coluna e linha, respectivamente, onde o
menu começa na tela, e yy, se refere a quantidade de colunas e linhas,
respectivamente, que esse menu conterá.
Exemplo:
menu cria 1 1 30 3
    Cria um menu começando na coluna 1, linha 1, com 30 colunas e 3
linhas.
Menu cria 1 1 60 10
Cria um menu começando na linha 1, coluna 1, com 60 colunas e 10 linhas.

    *Menu adiciona;
    Este comando serve para adicionar um item no menu.
Recebe como argumento uma string ou uma variável.
Exemplo:
Menu adiciona "editar"
Inclui um item 'editar no menu de opções.
    Ou ainda:


Seja $primeiroitem "editar"
Seja $segundoitem "imprimir"
Seja $terceiroitem "converter arquivo"
Seja $quartoitem "deletar arquivo"
Seja $quintoitem "Sair"

Menu cria 1 1 60 10

Menu adiciona $primeiroitem
Menu adiciona $segundoitem
Menu adiciona $terceiroitem
Menu adiciona $quartoitem
Menu adiciona $quintoitem

    Será criado um menu com as opções:
editar
imprimir
converter arquivo
deletar arquivo
sair.

    *menu executa;
    Este comando verifica qual opção foi escolhida.
    Recebe como argumento, 3 variáveis, que, respectivamente são:
<número do item;
<tecla pressionada;
<texto selecionado;

    Exemplo:
Seja $primeiroitem "editar"
Seja $segundoitem "imprimir"
Seja $terceiroitem "converter arquivo"
Seja $quartoitem "deletar arquivo"
Seja $quintoitem "Sair"

Menu cria 1 1 60 10

Menu adiciona $primeiroitem
Menu adiciona $segundoitem
Menu adiciona $terceiroitem
Menu adiciona $quartoitem
Menu adiciona $quintoitem

Menu executa n l t
    Se l= "e" desvia @editar
Se l = "i" desvia @imprimir
Se l = "c" desvia @converter
se l = "d" desvia @deletar
Se l = "#27" desvia @fim
Se l = "#13"
se n = 1 desvia @editar
se n = 2 desvia @imprimir
se n = 3 desvia @converter
se n = 4 desvia @deletar
se n = 5 desvia @fim
Fim se

Este exemplo cria um menu com as opções
editar, imprimir, converter arquivo, deletar arquivo e sair.
    O usuário pode escolher a opção desejada com as setas.
    As opções também podem ser ativada pelas iniciais, por exemplo, se o
usuário teclar a letra 'e' aciona a opção editar.
Se teclar 'i' vai para opção imprimir... e assim com todas as outras.
    O código "#27" mensionado nesse exemplo, é o código que representa a
tecla 'esc' e "#13" representa a tecla "enter"
    Por enquanto, não se preocupem com isso,  pois esse assunto será
tratado com mais detalhes posteriormente.
    A tecla esc, é usada para sair, e a tecla enter, entra em uma
condicional, onde é verificado qual foi a opção selecionada com a seta,
pelo usuário.
Em resumo, o trecho referente ao '#13' nesse exemplo, serve para
possibilitar a confirmação da opção selecionada com as setas, apertando
a tecla enter.

*Menu termina;
    Este comando enserra o menu criado.
    Não há argumentos.

    Exemplo:

Seja $primeiroitem "editar"
Seja $segundoitem "imprimir"
Seja $terceiroitem "converter arquivo"
Seja $quartoitem "deletar arquivo"
Seja $quintoitem "Sair"

Menu cria 1 1 60 10

Menu adiciona $primeiroitem
Menu adiciona $segundoitem
Menu adiciona $terceiroitem
Menu adiciona $quartoitem
Menu adiciona $quintoitem

Menu executa n l t
    Se l= "e" desvia @editar
Se l = "i" desvia @imprimir
Se l = "c" desvia @converter
se l = "d" desvia @deletar
Se l = "#27" desvia @fim
Se l = "#13"
se n = 1 desvia @editar
se n = 2 desvia @imprimir
se n = 3 desvia @converter
se n = 4 desvia @deletar
se n = 5 desvia @fim
Fim se
Menu termina

    Nota: os exemplos escritos acusarão erro ao serem executados pelo
scripvox.
    O motivo é que os rótulos  chamados no menu não existem.
Criamos apenas a parte dos menus, para mostrar como se faz, mas se
tentar selecionar alguma opção dentre as 5 deste menu, o programa
acusará erro.
    Com isso, aproveito para dizer uma coisa: vão se acostumando... nem
sempre é necessário dar exemplos de um programa completo para expressar
uma idéia.
    Se quero saber por exemplo, como acesso arquivos pelo scripvox, devo
ser capaz de ler um 'esqueleto' que mostra apenas o manuseio dos arquivos e
saber como resolver meu problema.
    No início, pode parecer difícil, mas tudo é uma questão de tempo.
    Com treinamento, dedicação e força de vontade todos podem chegar lá!
    E para isso, podem contar comigo, e com o Robert, que tanto tem nos
ajudado e nos brindado com sua experiência e conhecimento.

    E assim terminamos nossa aula15.

Exercício:
    Faça um programa qualquer utilizando o conhecimento de criação de
menus que você aprendeu nessa aula.

    Não é necessário algo muito complexo, apenas é necessário que fique
claro que você sabe, de fato, manipular os menus.

*entregar a resposta até o dia 07/01/2012, enviando para o seguinte
endereço:
qst-scripvox@sanfersite.com.br

Boa sorte!
