{"id":132,"date":"2014-12-30T03:51:47","date_gmt":"2014-12-30T03:51:47","guid":{"rendered":"http:\/\/linguagemprisma.net\/?p=132"},"modified":"2014-12-30T03:51:47","modified_gmt":"2014-12-30T03:51:47","slug":"criando-um-botao-que-exibe-mensagem","status":"publish","type":"post","link":"https:\/\/linguagemprisma.br4.biz\/blog\/igprisma\/criando-um-botao-que-exibe-mensagem\/","title":{"rendered":"Criando um bot\u00e3o que exibe mensagem!"},"content":{"rendered":"<p><a href=\"http:\/\/linguagemprisma.net\/wp-content\/uploads\/2014\/12\/caixavertical.png\"><img loading=\"lazy\" decoding=\"async\" class=\"  wp-image-143 aligncenter\" src=\"http:\/\/linguagemprisma.net\/wp-content\/uploads\/2014\/12\/caixavertical-300x221.png\" alt=\"caixavertical\" width=\"290\" height=\"213\" \/><\/a><\/p>\n<p><strong><span style=\"color: #000080;\">Segue o c\u00f3digo (explanarei posteriormente):<\/span><\/strong><\/p>\n<pre class=\"lang:prisma decode:true \">\/\/exemplo de botao\ninclua'igbr'\n\njan = ig.janela( );\n\nig.janela_def_titulo ( jan , \"Titulo da janela\");\nig.componente_def_tamanho( jan , 200 , 150 );\nig.conecte( jan , ig['destruido'] , 'ig.fimjanela( )' );\n\nbotao = ig.botao( 'Clique aqui');\n\nig.ad ( jan , botao ); \/\/adiciona o botao na janela\n\nig.componente_mostre( botao);\nig.componente_mostre( jan );\n\nig.fimprograma( );<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><em>Explana\u00e7\u00e3o:<\/em><\/p>\n<p><em>o que tem de diferente \u00e9 que os atributos da janela foram definidos separadamente:<\/em><\/p>\n<p><em>ig.janela_def_titulo( jan , &#8220;titulo&#8221;) ; \/\/define o titulo da janela jan<\/em><\/p>\n<p><em>ig.componente_def_tamanho( jan , 200 , 150 ); \/\/define o tamanho do componente jan;<\/em><\/p>\n<p><em>ig.botao(&#8220;rotulo do botao&#8221;) ; \/\/cria um botao, retorna seu endere\u00e7o id.<\/em><\/p>\n<p><em>ig.componente_mostre( comp );\/\/torna vis\u00edvel determinado componente.<\/em><\/p>\n<p>&nbsp;<\/p>\n<p>Note que o bot\u00e3o foi criado, est\u00e1 l\u00e1 na janela, mas pode clicar a vontade que ele n\u00e3o faz nada.<\/p>\n<p>Isto \u00e9 porque o programador deve dizer o que ele tem de fazer ao ser clicado, utilizamos para isso a fun\u00e7\u00e3o<\/p>\n<p>conecte;<\/p>\n<p>sintaxe: ig.conecte( componente , ig[&#8216;tipo-de-evento&#8217;]\u00a0 , &#8220;string_da_funcao_a_ser_executada( )&#8221; );<\/p>\n<p><strong>Aprimorando o exemplo acima:<\/strong><\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:prisma decode:true \">\/\/exemplo de botao\ninclua'igbr'\n\njan = ig.janela( );\n\nig.janela_def_titulo ( jan , \"Titulo da janela\");\nig.componente_def_tamanho( jan , 200 , 150 );\nig.conecte( jan , ig['destruido'] , 'ig.fimjanela( )' );\n\n \n\nfuncao mostre_msg ( texto )\n\nig.msg( jan , 'Titulo' , texto );\n\nfim; \/\/fim da funcao\n\nbotao = ig.botao( 'Clique aqui');\n\n\/\/conectando o evento clique\n\nig.conecte( botao , ig['clique'] , [[ mostre_msg(\"Ola Mundo!!!\") ]] );\n\n\/\/observe que podemos usar duplos colchetes para indicar strings longas, este modo n\u00e3o aceita caracteres\n\n\/\/de formata\u00e7\u00e3o;\n\nig.ad ( jan , botao ); \/\/adiciona o botao na janela\n\nig.componente_mostre( botao);\nig.componente_mostre( jan );\n\nig.fimprograma( );\n\n<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>OBS. perceberam que o componente janela consegue conter apenas um componente de cada vez; se quis\u00e9ssemos colocar dois bot\u00f5es, por exemplo, dever\u00edamos usar containers (recipientes de componentes) capazes de receber v\u00e1rios componentes.<\/p>\n<p>Usaremos agora o &#8216;container&#8217; Caixa vertical para mostrarmos 4 bot\u00f5es:<\/p>\n<pre class=\"lang:prisma decode:true \">\/\/exemplo de botao\ninclua'igbr'\n\nfuncao callback ( comp , janela ) \/\/esta funcao ser\u00e1 conectada ao clique dos botoes\n\nlocal rotulo = ig.botao_obt_rotulo( comp ); \/\/obt\u00e9m o r\u00f3tulo do botao conectado quando clicado\nlocal texto = \"foi apertado o bot\u00e3o: \" .. rotulo; \/\/concatenando strings\n\n   ig.msg(  janela , \"Aten\u00e7\u00e3o\" , texto ); \/\/exibe a mensagem\n\n   se rotulo == 'Botao 4 Sair' entao\n            ig.fimjanela(); \/\/fecha o programa\n   fim \/\/fim se\n \n\nfim \/\/fim da funcao callback\n\njan = ig.janela( );\n\nig.janela_def_titulo ( jan , \"Titulo da janela\");\nig.componente_def_tamanho( jan , 150 , 100 );\nig.conecte( jan , ig['destruido'] , 'ig.fimjanela( )' ); \/\/ o programa \u00e9 morto quando a janela \u00e9 fechada;\nig.janela_def_posicao ( jan , ig[ 'jan_pos_centro'] ); \/\/posiciona a janela no centro\n\ncaixav = ig.caixavertical( falso , 0 ); \/\/ cria uma caixa n\u00e3o homog\u00eania , com espaco zero\n\nig.ad( jan , caixav ); \/\/adiciona a caixa vertical na janela\n\nbotao1 = ig.botao( 'Botao 1');\nig.caixa_ad ( caixav,  botao1 , falso , falso , 0 ); \/\/adicionando os botoes na caixa vertical\nig.conecte( botao1 , ig['clique'] , \"callback ( %s , jan )\" ); \/\/conectando o clique dos botoes \u00e0 funcao callback;\n\/\/Obs. o %s \u00e9 uma entrada de formata\u00e7\u00e3o que ser\u00e1 trocada pelo pr\u00f3prio componente conectado\n\/\/ o qual na funcao \u00e9 representado pelo primeiro argumento o comp\n\nbotao2 = ig.botao( 'Botao 2');\nig.caixa_ad (caixav,  botao2, falso , falso , 0 );\nig.conecte( botao2 , ig['clique'] , \"callback ( %s , jan )\" );\n\nbotao3 = ig.botao( 'Botao 3');\nig.caixa_ad ( caixav, botao3, falso , falso , 0 );\nig.conecte( botao3 , ig['clique'] , \"callback ( %s , jan )\" );\n\nbotao4 = ig.botao( 'Botao 4 Sair');\nig.caixa_ad ( caixav, botao4, falso , falso , 0 );\nig.conecte( botao4, ig['clique'] , \"callback ( %s , jan )\" );\n\nig.componente_mostre_todos( jan );\n\nig.fimprograma( );\n\n\/\/experimente trocar os valores falso para verdadeiro, aumente a janela e veja se os componentes\n\/\/aumentam juntos, fa\u00e7a o teste\n\n\/\/ uma dica \u00e9 voc\u00ea usar duas ou mais caixas e dividir em \u00e1reas, por exemplo no meio fica tal componente\n\/\/ a esquerda outros componentes e assim vai.\n\n\/\/perceberam que a caixa se chama vertical porque os componentes adicionados v\u00e3o se organizando\n\/\/verticalmente, experimente mudar caixavertical para caixahorizontal\n\n<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Falou, at\u00e9 a pr\u00f3xima.<\/p>\n<p>Att. Adalberto.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Segue o c\u00f3digo (explanarei posteriormente): \/\/exemplo de botao inclua&#8217;igbr&#8217; jan = ig.janela( ); ig.janela_def_titulo ( jan , &#8220;Titulo da janela&#8221;); ig.componente_def_tamanho( jan , 200 , 150 ); ig.conecte( jan , ig[&#8216;destruido&#8217;] , &#8216;ig.fimjanela( )&#8217; ); botao = ig.botao( &#8216;Clique aqui&#8217;); ig.ad ( jan , botao ); \/\/adiciona o botao na janela ig.componente_mostre( botao); ig.componente_mostre( jan&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,5],"tags":[],"class_list":["post-132","post","type-post","status-publish","format-standard","hentry","category-igprisma","category-interface_grafica"],"_links":{"self":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/132","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=132"}],"version-history":[{"count":0,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/132\/revisions"}],"wp:attachment":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/media?parent=132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/categories?post=132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/tags?post=132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}