{"id":3162,"date":"2017-11-03T19:04:34","date_gmt":"2017-11-03T23:04:34","guid":{"rendered":"http:\/\/linguagemprisma.br4.biz\/blog\/?p=3162"},"modified":"2017-11-04T18:08:18","modified_gmt":"2017-11-04T22:08:18","slug":"gui-basico-em-terminal-tdialogo-pris","status":"publish","type":"post","link":"https:\/\/linguagemprisma.br4.biz\/blog\/modo_texto\/gui-basico-em-terminal-tdialogo-pris\/","title":{"rendered":"Gui b\u00e1sico em terminal | guiterminal.pris"},"content":{"rendered":"<p><strong>Fiz uma corre\u00e7\u00e3o na mensagem quest\u00e3o (bot\u00f5es) e reupei:(4\/11\/2017)<\/strong><\/p>\n<p>Muitas vezes por algum motivo \u00e9 necess\u00e1rio abrir m\u00e3o da interface gr\u00e1fica e usar apenas o terminal de comandos, seja por quest\u00e3o de mem\u00f3ria, seja em um servidor etc.<\/p>\n<p>Que tal unir um pouco dos dois mundos, criando mensagens box, di\u00e1logos e listagem no terminal, usando as teclas (Setas, Enter,X,C) para interagir.<\/p>\n<p>Foi pensando nisso que resolvi criar um conjunto b\u00e1sico gui modo texto para usar em programas feitos em Prisma que rodem no terminal.<\/p>\n<p><strong>(Esta lib estar\u00e1 inclu\u00edda nas pr\u00f3ximas vers\u00f5es Prisma e futuramente quero fazer mais tipos de componentes em modo texto, senha, entra texto, etc.);<\/strong><\/p>\n<p style=\"text-align: center;\">Baixe aqui.\u00a0<a href=\"http:\/\/linguagemprisma.br4.biz\/prisma_forum\/index.php?action=dlattach;topic=639.0;attach=56\" target=\"_blank\">GuiTerm<\/a><\/p>\n<p style=\"text-align: center;\">(\u00e9 necess\u00e1ria a biblioteca terminal)<\/p>\n<h2><\/h2>\n<h2>Exemplo 1 (mensagem ok):<\/h2>\n<p>local ret = guiterm.mensagem_ok(Titulo,Txt,Col,Lin, Cor);<\/p>\n<p>se Col ou Lin for omitido o valor padr\u00e3o \u00e9 0; Se Cor for omitido padr\u00e3o \u00e9 &#8216;azul&#8217;<\/p>\n<p>Cores: &#8216;azul&#8217;,&#8217;verde&#8217;,&#8217;vermelho&#8217;,&#8217;amarelo&#8217;,&#8217;cinza&#8217;,&#8217;preto&#8217;,&#8217;magenta&#8217;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3165\" src=\"https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2017\/11\/guiterm_msg_ok-300x255.png\" alt=\"guiterm_msg_ok\" width=\"300\" height=\"255\" srcset=\"https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2017\/11\/guiterm_msg_ok-300x255.png 300w, https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2017\/11\/guiterm_msg_ok.png 389w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<pre class=\"lang:prisma decode:true\">\/\/basico guiterminal \r\n\r\nlocal gterm = inclua'guiterminal';\r\n\r\nlocal ret , str = gterm.mensagem_ok('Teste',\"Pressione Enter para continuar...\");\r\n\r\ngterm.limpe_tudo();\r\n\r\ngterm.limpe_tudo();\r\n\r\nsis.saia(ret);<\/pre>\n<p>&nbsp;<\/p>\n<h2>Exemplo 2 (mensagem de aviso\/alerta):<\/h2>\n<p>local ret = guiterm.mensagem_aviso(Titulo,Txt,Col,Lin, Cor);<\/p>\n<p>se Col ou Lin for omitido o valor padr\u00e3o \u00e9 0; Se Cor for omitido padr\u00e3o \u00e9 &#8216;azul&#8217;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3164\" src=\"https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2017\/11\/guiterm_msg_aviso-300x147.png\" alt=\"guiterm_msg_aviso\" width=\"300\" height=\"147\" srcset=\"https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2017\/11\/guiterm_msg_aviso-300x147.png 300w, https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2017\/11\/guiterm_msg_aviso.png 401w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:prisma decode:true\">\/\/basico guiterminal\r\n\r\nlocal gterm = inclua'guiterminal';\r\n\r\nlocal ret ,str = gterm.mensagem_aviso('Teste',\"Pressione Enter para continuar...\",12,5);\r\ngterm.limpe_tudo();\r\n\r\nsis.saia(ret);<\/pre>\n<p>&nbsp;<\/p>\n<h2>exemplo 3 (mensagem quest\u00e3o):<\/h2>\n<p>local ret, rot = guiterm.mensagem_ok(Titulo,Txt,Col,Lin, Cor,TabBt);<\/p>\n<p>TabBt = { &#8220;Bt1&#8221;, &#8220;BT2&#8221;, &#8220;BT3&#8221;, num=3, cor=&#8217;azul&#8217;};<\/p>\n<p>num = 3 &#8211; foco no bot\u00e3o 3; cor = &#8216;azul&#8217; cor do foco. Se omitidos o padr\u00e3o \u00e9 1 e Cor;<\/p>\n<p>se Col ou Lin for omitido o valor padr\u00e3o \u00e9 0; Se Cor for omitido padr\u00e3o \u00e9 &#8216;azul&#8217;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3163\" src=\"https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2017\/11\/guiterm_msg_quest-300x175.png\" alt=\"guiterm_msg_quest\" width=\"300\" height=\"175\" srcset=\"https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2017\/11\/guiterm_msg_quest-300x175.png 300w, https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2017\/11\/guiterm_msg_quest.png 440w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<pre class=\"lang:prisma decode:true \">\/\/basico guiterminal \r\n\r\nlocal gterm = inclua'guiterminal';\r\n\r\nlocal ret, str;\r\nret, str = gterm.mensagem_questao(\r\n                                   'Quest\u00e3o','Deseja sair?\\n \\n(use as setas)',\r\n                                   9,4,'vermelho',{'[Sim]','[N\u00e3o]','[Abortar]',num=3,cor='azul'} \/\/num=3 foco no bt 3\r\n                                 );\r\ngterm.limpe_tudo();\r\nimprima(ret, str);\r\nsis.saia(ret);\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h2>Exemplo 4 (Dialogo de escolha):<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3166\" src=\"https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2017\/11\/guiterm_escolha-300x265.png\" alt=\"guiterm_escolha\" width=\"300\" height=\"265\" srcset=\"https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2017\/11\/guiterm_escolha-300x265.png 300w, https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2017\/11\/guiterm_escolha.png 371w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>ret, str = gterm.escolha(Titulo,Texto, Itens, Col, Lin, Alt,Larg, Cor );<\/p>\n<p>Itens = {&#8220;item1&#8221;, &#8220;item2&#8221;, &#8220;item3&#8221;, &#8230; }<\/p>\n<pre class=\"lang:prisma decode:true\">local gterm = inclua'guiterminal';\r\n\r\nlocal ret , str;\r\n\r\n ret, str = gterm.escolha('Cores',' Escolha uma cor (use as setas):', {'azul','verde','preto','magenta'},12,3,19,45,'azul');\r\ngterm.limpe_tudo();\r\nimprima(ret,str);\r\n\r\nsis.saia(ret); \/\/retorna o n\u00famero escolhido, quando for chamado por outro programa.\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h2>Exemplo 5 (listagem de itens):<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3167\" src=\"https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2017\/11\/guiterm_listagem-300x262.png\" alt=\"guiterm_listagem\" width=\"300\" height=\"262\" srcset=\"https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2017\/11\/guiterm_listagem-300x262.png 300w, https:\/\/linguagemprisma.br4.biz\/blog\/wp-content\/uploads\/2017\/11\/guiterm_listagem.png 437w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<pre class=\"lang:prisma decode:true \">\/\/basico guiterminal \r\n\r\nlocal gterm = inclua'guiterminal';\r\n\r\nlocal Lista = {\r\n'Marcos     3334546      rua A',\r\n'Fernanda   5667777      rua B',\r\n'Jo\u00e3o       2342342      rua C',\r\n'Marcela    1231244      rua D',\r\n'Marcos     3334546      rua A',\r\n'Fernanda   5667777      rua B',\r\n'Jo\u00e3o       2342342      rua C',\r\n'Marcela    1231244      rua D'\r\n}\r\n\r\nlocal  ret, str = gterm.listagem('Clientes','  Nome       Tel.         End.', Lista, 5,3, 19,48,'vermelho');\r\n \r\ngterm.limpe_tudo();\r\n \r\nimprima(ret,str);\r\n\r\n\r\nsis.saia(ret); \/\/retorna o n\u00famero escolhido, quando for chamado por outro programa.\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h1>Algumas fun\u00e7\u00f5es \u00fateis:<\/h1>\n<p>&nbsp;<\/p>\n<h3>gterm.def_corfundo(Cor);<\/h3>\n<p>\/\/define a cor de fundo para toda \u00e1rea do terminal<\/p>\n<h4>Cor = gterm.obt_corfundo();<\/h4>\n<p>\/\/obt\u00e9m a cor de fundo atual;<\/p>\n<h4>gterm.ative_corfundo();<\/h4>\n<p>\/\/Apaga a tela do terminal e ativa a cor definida na fun\u00e7\u00e3o anterior.<\/p>\n<h4>gterm.limpe_tudo();<\/h4>\n<p>\/\/o mesmo que a fun\u00e7\u00e3o anterior;<\/p>\n<h4>str = gterm.alin_esquerda(Texto, Tam, Car);<\/h4>\n<p>\/\/preenche com caracteres o lado direito de acordo com n\u00famero Tam. J\u00e1 descontando o tamanho de Texto.<\/p>\n<p>ex.:<\/p>\n<pre class=\"lang:prisma decode:true\">s = 'Prisma';\r\nstr = gterm.alin_esquerda( s , 20,'*');\r\nimprima(str); \/\/-&gt; Prisma**************\r\n<\/pre>\n<h4>str = gterm.alin_direita( Texto, Tam, Car);<\/h4>\n<pre class=\"lang:prisma decode:true \">local gterm = inclua'guiterminal';\r\n\r\ns = 'Prisma';\r\nstr = gterm.alin_direita( s , 20,'*');\r\nimprima(str); \/\/-&gt; **************Prisma<\/pre>\n<h4>str = gterm.alin_centro( Texto, Tam, Car);<\/h4>\n<pre class=\"lang:prisma decode:true \" title=\"Ex.:\">local gterm = inclua'guiterminal';\r\n\r\ns = 'Prisma';\r\nstr = gterm.alin_centro( s , 20,'*');\r\nimprima(str); \/\/-&gt; *******Prisma*******\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Caso Car seja omitido o padr\u00e3o \u00e9 espa\u00e7o.<\/p>\n<h4>str = gterm.str_encolha(Str, Tam);<\/h4>\n<p>Encolhe uma string Str para o tamanho Tam, se a string for maior que Tam, ela \u00e9 recortada no meio e ent\u00e3o \u00e9 inserida retic\u00eancias:<\/p>\n<pre class=\"lang:prisma decode:true \">local gterm = inclua'guiterminal';\r\n\r\ns = 'Prisma - linguagem de programa\u00e7\u00e3o com comandos em portugu\u00eas brasileiro';\r\ns2 = gterm.str_encolha(s, 47);\r\n\r\nimprima(s2);<\/pre>\n<p><strong>Sa\u00edda:\u00a0Prisma &#8211; linguagem de p&#8230; portugu\u00eas brasileiro<\/strong><\/p>\n<h2>OBS.: Teclas Aceitas:<\/h2>\n<ul>\n<li>setas para selecionar itens ou bot\u00f5es.<\/li>\n<li>C &#8211; Cancelar \/ Sem selecionar item (Para mensagem_questao, listagem e escolha); Retorno \u00e9 falso + &#8220;cancelado&#8221;;<\/li>\n<li>X &#8211; Sair \/ Fechar\u00a0 \/Sem selecionar item (Para &#8211; mensagem_questao, listagem e escolha); Retorno \u00e9 falso + &#8220;fechado&#8221;<\/li>\n<li>ENTER &#8211; Aceitar \/ Finaliza retornando o item selecionado ( Para todas); Retorno \u00e9 N\u00famero do \u00edtem + r\u00f3tulo do \u00edtem.<\/li>\n<\/ul>\n<p>Considera\u00e7\u00f5es:<\/p>\n<p>Claro que \u00e9 bem b\u00e1sico mesmo, mas por ser em terminal \u00e9 bem legal, espero usar essa lib em servidores modo texto, para facilitar a vida mesmo.<\/p>\n<p>No momento consta 5 componentes e todos caixas de dialogo, nenhuma janela ainda, menu ou outros tipos.<\/p>\n<p>Em breve, atualiza\u00e7\u00f5es e novos componentes.<\/p>\n<p>Pessoal, at\u00e9 a pr\u00f3xima.<\/p>\n<p>Veja uma grava\u00e7\u00e3o da \u00e1rea de trabalho:<\/p>\n<p><iframe loading=\"lazy\" title=\"Criando dialogos em terminal na linguagem Prisma\" width=\"760\" height=\"570\" src=\"https:\/\/www.youtube.com\/embed\/zt5WTilHpd8?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p>F\u00f3rum: linguage<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fiz uma corre\u00e7\u00e3o na mensagem quest\u00e3o (bot\u00f5es) e reupei:(4\/11\/2017) Muitas vezes por algum motivo \u00e9 necess\u00e1rio abrir m\u00e3o da interface gr\u00e1fica e usar apenas o terminal de comandos, seja por quest\u00e3o de mem\u00f3ria, seja em um servidor etc. Que tal unir um pouco dos dois mundos, criando mensagens box, di\u00e1logos e listagem no terminal, usando&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,7],"tags":[],"class_list":["post-3162","post","type-post","status-publish","format-standard","hentry","category-modo_texto","category-prisma"],"_links":{"self":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/3162","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/comments?post=3162"}],"version-history":[{"count":8,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/3162\/revisions"}],"predecessor-version":[{"id":3177,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/3162\/revisions\/3177"}],"wp:attachment":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/media?parent=3162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/categories?post=3162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/tags?post=3162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}