Segue o código (explanarei posteriormente):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
//exemplo de botao inclua'igbr' jan = ig.janela( ); ig.janela_def_titulo ( jan , "Titulo da janela"); ig.componente_def_tamanho( jan , 200 , 150 ); ig.conecte( jan , ig['destruido'] , 'ig.fimjanela( )' ); botao = ig.botao( 'Clique aqui'); ig.ad ( jan , botao ); //adiciona o botao na janela ig.componente_mostre( botao); ig.componente_mostre( jan ); ig.fimprograma( ); |
Explanação:
o que tem de diferente é que os atributos da janela foram definidos separadamente:
ig.janela_def_titulo( jan , “titulo”) ; //define o titulo da janela jan
ig.componente_def_tamanho( jan , 200 , 150 ); //define o tamanho do componente jan;
ig.botao(“rotulo do botao”) ; //cria um botao, retorna seu endereço id.
ig.componente_mostre( comp );//torna visível determinado componente.
Note que o botão foi criado, está lá na janela, mas pode clicar a vontade que ele não faz nada.
Isto é porque o programador deve dizer o que ele tem de fazer ao ser clicado, utilizamos para isso a função
conecte;
sintaxe: ig.conecte( componente , ig[‘tipo-de-evento’] , “string_da_funcao_a_ser_executada( )” );
Aprimorando o exemplo acima:
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 |
//exemplo de botao inclua'igbr' jan = ig.janela( ); ig.janela_def_titulo ( jan , "Titulo da janela"); ig.componente_def_tamanho( jan , 200 , 150 ); ig.conecte( jan , ig['destruido'] , 'ig.fimjanela( )' ); funcao mostre_msg ( texto ) ig.msg( jan , 'Titulo' , texto ); fim; //fim da funcao botao = ig.botao( 'Clique aqui'); //conectando o evento clique ig.conecte( botao , ig['clique'] , [[ mostre_msg("Ola Mundo!!!") ]] ); //observe que podemos usar duplos colchetes para indicar strings longas, este modo não aceita caracteres //de formatação; ig.ad ( jan , botao ); //adiciona o botao na janela ig.componente_mostre( botao); ig.componente_mostre( jan ); ig.fimprograma( ); |
OBS. perceberam que o componente janela consegue conter apenas um componente de cada vez; se quiséssemos colocar dois botões, por exemplo, deveríamos usar containers (recipientes de componentes) capazes de receber vários componentes.
Usaremos agora o ‘container’ Caixa vertical para mostrarmos 4 botões:
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 |
//exemplo de botao inclua'igbr' funcao callback ( comp , janela ) //esta funcao será conectada ao clique dos botoes local rotulo = ig.botao_obt_rotulo( comp ); //obtém o rótulo do botao conectado quando clicado local texto = "foi apertado o botão: " .. rotulo; //concatenando strings ig.msg( janela , "Atenção" , texto ); //exibe a mensagem se rotulo == 'Botao 4 Sair' entao ig.fimjanela(); //fecha o programa fim //fim se fim //fim da funcao callback jan = ig.janela( ); ig.janela_def_titulo ( jan , "Titulo da janela"); ig.componente_def_tamanho( jan , 150 , 100 ); ig.conecte( jan , ig['destruido'] , 'ig.fimjanela( )' ); // o programa é morto quando a janela é fechada; ig.janela_def_posicao ( jan , ig[ 'jan_pos_centro'] ); //posiciona a janela no centro caixav = ig.caixavertical( falso , 0 ); // cria uma caixa não homogênia , com espaco zero ig.ad( jan , caixav ); //adiciona a caixa vertical na janela botao1 = ig.botao( 'Botao 1'); ig.caixa_ad ( caixav, botao1 , falso , falso , 0 ); //adicionando os botoes na caixa vertical ig.conecte( botao1 , ig['clique'] , "callback ( %s , jan )" ); //conectando o clique dos botoes à funcao callback; //Obs. o %s é uma entrada de formatação que será trocada pelo próprio componente conectado // o qual na funcao é representado pelo primeiro argumento o comp botao2 = ig.botao( 'Botao 2'); ig.caixa_ad (caixav, botao2, falso , falso , 0 ); ig.conecte( botao2 , ig['clique'] , "callback ( %s , jan )" ); botao3 = ig.botao( 'Botao 3'); ig.caixa_ad ( caixav, botao3, falso , falso , 0 ); ig.conecte( botao3 , ig['clique'] , "callback ( %s , jan )" ); botao4 = ig.botao( 'Botao 4 Sair'); ig.caixa_ad ( caixav, botao4, falso , falso , 0 ); ig.conecte( botao4, ig['clique'] , "callback ( %s , jan )" ); ig.componente_mostre_todos( jan ); ig.fimprograma( ); //experimente trocar os valores falso para verdadeiro, aumente a janela e veja se os componentes //aumentam juntos, faça o teste // uma dica é você usar duas ou mais caixas e dividir em áreas, por exemplo no meio fica tal componente // a esquerda outros componentes e assim vai. //perceberam que a caixa se chama vertical porque os componentes adicionados vão se organizando //verticalmente, experimente mudar caixavertical para caixahorizontal |
Falou, até a próxima.
Att. Adalberto.