    Curso de scripvox - Aula15 (Por Fabiano Ferreira)

    Menus

    Aps uma temporada de revises e exerccios de fixao, vamos
retomar nosso curso de scripvox.
    Veremos nesta aula, uma das formas mais interessantes de interao
com o usurio: a criao de menus.
    Assim, o usurio poder usar as setas verticais para escolher e
ativar a opo desejada.

    *Menu cria;
    Este comando cria a estrutura do menu de opes.
    Obrigatoriamente, o comando menu cria recebe 4 argumentos, que so:
xx, yy, onde xx, refere-se a coluna e linha, respectivamente, onde o
menu comea 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 comeando na coluna 1, linha 1, com 30 colunas e 3
linhas.
Menu cria 1 1 60 10
Cria um menu comeando 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 varivel.
Exemplo:
Menu adiciona "editar"
Inclui um item 'editar no menu de opes.
    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 opes:
editar
imprimir
converter arquivo
deletar arquivo
sair.

    *menu executa;
    Este comando verifica qual opo foi escolhida.
    Recebe como argumento, 3 variveis, que, respectivamente so:
<nmero 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 opes
editar, imprimir, converter arquivo, deletar arquivo e sair.
    O usurio pode escolher a opo desejada com as setas.
    As opes tambm podem ser ativada pelas iniciais, por exemplo, se o
usurio teclar a letra 'e' aciona a opo editar.
Se teclar 'i' vai para opo imprimir... e assim com todas as outras.
    O cdigo "#27" mensionado nesse exemplo,  o cdigo que representa a
tecla 'esc' e "#13" representa a tecla "enter"
    Por enquanto, no 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 opo selecionada com a seta,
pelo usurio.
Em resumo, o trecho referente ao '#13' nesse exemplo, serve para
possibilitar a confirmao da opo selecionada com as setas, apertando
a tecla enter.

*Menu termina;
    Este comando enserra o menu criado.
    No 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 acusaro erro ao serem executados pelo
scripvox.
    O motivo  que os rtulos  chamados no menu no existem.
Criamos apenas a parte dos menus, para mostrar como se faz, mas se
tentar selecionar alguma opo dentre as 5 deste menu, o programa
acusar erro.
    Com isso, aproveito para dizer uma coisa: vo se acostumando... nem
sempre  necessrio dar exemplos de um programa completo para expressar
uma idia.
    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 incio, pode parecer difcil, mas tudo  uma questo de tempo.
    Com treinamento, dedicao e fora 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 experincia e conhecimento.

    E assim terminamos nossa aula15.

Exerccio:
    Faa um programa qualquer utilizando o conhecimento de criao de
menus que voc aprendeu nessa aula.

    No  necessrio algo muito complexo, apenas  necessrio que fique
claro que voc sabe, de fato, manipular os menus.

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

Boa sorte!
