Diálogos são essenciais nos programas gráficos pois permitem maior interação com o usuário, eles servem para exibir avisos, advertências, para confirmar algo etc.
Aqui vou apresentar um diálogo de informação (info), mas resta uma questão: o mesmo efeito é obtido pela função ig.msg() que é bem simples, então por que usar um comando um pouco mais complicado?
A resposta é: depende do objetivo. Se você quer ter mais controle, aproveitar o retorno dos cliques no diálogo, logo é melhor usar a função ig.dialogo_mensagem(). Mas se for algo simples, apenas para exibir um aviso, por exemplo, use ig.msg() que é mais fácil.
Bom, segue o código comentando, bons estudos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
//exemplo de dialogo informação em igprisma //============ CRIANDO A MENSAGEM NUMA FUNCAO CALL BACK ================ //esta função será conectada ao evento clique do botao. funcao mostre_msg( wid , dado ) //a mensagem na verdade é um dialogo, uma janelinha simples: dialogo = ig.dialogo_mensagem( dado ,'titulo aqui' , 'Seu texto aqui' , ig.msg_informacao , //tipo da mensagem ig.botao_ok //tipo do botao ); // ig.janela_def_titulo( dialogo , 'meu dialogo'); -- muda o titulo do dialogo local x = ig.dialogo_execute( dialogo ) //executando e pegando o retorno do dialogo ig.componente_destrua( dialogo ); //necessario sempre destruir o dialogo apos o uso se x == ig.ret_ok entao imprima'foi pressionado botao ok' senaose x == ig.ret_fechar entao imprima 'foi pressionado: botao fechar' senao imprima'outro botao' fim //fim se imprima(x); fim //fim da funcao mostre_msg //==== FIM DA FUNCAO CALL BACK =============== ig = inclua'igbr' //incluindo as funcoes da lib igbr janela = ig.janela('Dialogo info' , 400 , 250 ); //criando a janela ig.janela_destrua(janela); //garantindo que o programa feche corretamente ao fechar a janela ig.janela_def_posicao( janela , ig.janela_pos_centro ); //definindo posicao da janela no monitor //-> poderia ser também: ig.janela_pos_mouse // ig.janela_pos_centro_pai // ig.janela_pos_nulo local cor_verde = ig.cor_analise( ig.verde ) //criando uma cor para usá-la como fundo ig.componente_modifique_corfundo( janela , ig.estado_normal , cor_verde ); //modificando a cor de fundo da janela usando a cor criada antes. caixa_fixa = ig.fixo(); //criando um fixo ig.ad ( janela , caixa_fixa );//colocando na janela ig.botao_mostre_imagem ( verdadeiro);//imagens visíveis nos botoes botao = ig.botao_estoque( ig.estoque_imprimir ); //botao do estoque ig.fixo_ad ( caixa_fixa , botao , 300 , 200 ); //adicionando o botao no fixo, col 300 , lin 200 ig.conecte_funcao ( botao , ig.clique , mostre_msg , janela ); //esta funcao é nova, baixa o prisma mais atual >= 1.0.91 //note que ela possui 4 parâmetros: //1=componente, 2=evento , 3=funcao , 4=argumento_extra; ig.componente_mostre_todos(janela); //mostrando a janela e todos seus componentes filhos ig.fimprograma(); //inicia o laço de eventos. |
Obrigado por usarem Prisma, qualquer dúvida poste nos comentários, ou no fórum <aqui>