Notícias:

SMF - Just Installed!

Main Menu

Biblioteca GuiTerminal

Iniciado por adalberto, Novembro 03, 2017, 09:38:29 PM

tópico anterior - próximo tópico

adalberto

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



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:

        

Falou pessoal até a próxima.