Fiz uma correção na mensagem questão (botões) e reupei:(4/11/2017)
Muitas vezes por algum motivo é necessário abrir mão da interface gráfica e usar apenas o terminal de comandos, seja por questão de memória, seja em um servidor etc.
Que tal unir um pouco dos dois mundos, criando mensagens box, diálogos e listagem no terminal, usando as teclas (Setas, Enter,X,C) para interagir.
Foi pensando nisso que resolvi criar um conjunto básico gui modo texto para usar em programas feitos em Prisma que rodem no terminal.
(Esta lib estará incluída nas próximas versões Prisma e futuramente quero fazer mais tipos de componentes em modo texto, senha, entra texto, etc.);
Download em anexo;
Veja o post completo no site com exemplos básicos: clique aqui (http://linguagemprisma.br4.biz/blog/modo_texto/gui-basico-em-terminal-tdialogo-pris/)
(http://i0.wp.com/linguagemprisma.br4.biz/blog/wp-content/uploads/2017/11/guiterm_msg_aviso.png?resize=300%2C147)
Um exemplo completo:
local td = inclua'guiterminal'
local term = inclua'terminal';
local cortitulo = 'vermelho';
funcao principal()
::_INICIO_LOOP_::
//dialogo de opção:
ret, m = td.escolha('Cores',' Escolha uma cor (use as setas):', {'azul','verde','preto','magenta'},12,3,19,45,cortitulo);
se ret entao
td.def_corfundo(m);
td.ative_corfundo();
fim
//mensagens
local txt = [[ Esta é uma mensagem multilinha!
Em Prisma os duplos colchetes
permitem a criação de strings
multilinhas
certo!!!
Você mudou a cor de fundo!
para: ]] .. m
//Ok
td.mensagem_ok("Teste", txt , 14,6,cortitulo);
//aviso:
td.mensagem_aviso('Aviso',txt,18,2,cortitulo);
//mensagem genérica (questão):
//com botões padrão: (Cancelar) (Não) (Sim)
ret,m = td.mensagem_questao("Teste","Deseja reverter a cor de fundo para Preto?",15,4, cortitulo);
se ret == 3 entao // 1=(Cancelar) 2=(Não) 3=(Sim);
td.def_corfundo('preto');
td.ative_corfundo();
fim
td.limpe_tudo();
//listagem, pode exibir um lista de clientes ou de arquivos em uma pasta:
ret, m = td.listagem('Clientes',' Nome Tel. End.', lista, 5,3, 19,48,'vermelho');
td.limpe_tudo();
se ret entao //omitindo posicao col x lin, o padrão é: 0 x 0;
td.mensagem_ok('Cliente','Você selecionou: ' .. m);
senao
td.mensagem_aviso('Anteção','Você não selecionou nenhum cliente');
fim
//com botões customizados: {"Sim","Não",num=2,cor='vermelho'} num = botão selecionado, cor = cor do botao selec.
ret,m = td.mensagem_questao("Teste","Sair do programa?",15,6, cortitulo,{"Sim","Não",num=2,cor='azul'});
se ret entao
se m == 'Sim' entao
td.def_corfundo'preto';
td.limpe_tudo();
term.defPadrao();
sis.saia(0);
senao
td.limpe_tudo();
vapara _INICIO_LOOP_;
fim
fim
retorne 0;
fim //fim principal
lista = {
'Marcos 3334546 rua A',
'Fernanda 5667777 rua B',
'João 2342342 rua C',
'Marcela 1231244 rua D'
}
Ps. screenshots:
(http://i1.wp.com/linguagemprisma.br4.biz/blog/wp-content/uploads/2017/11/guiterm_msg_quest.png) (http://i1.wp.com/linguagemprisma.br4.biz/blog/wp-content/uploads/2017/11/guiterm_escolha.png) (http://i1.wp.com/linguagemprisma.br4.biz/blog/wp-content/uploads/2017/11/guiterm_listagem.png)
Falou pessoal até a próxima.