Segue o código:
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 |
//example botao somar e diminuir //o mesmo exemplo em C levaria muito mais tempo e linhas para ser feito! inclua 'igbr' //inclui as funções gráficas contador = 0; //inicia a variavel contador com o valor 0; funcao somar( ) //esta funcao acrescenta 1 e atualiza o texto do rotulo contador = contador + 1; // incrementa 1 ig.rotulo_def_texto ( rotulo , convstring( contador ) ); //define o texto do label // a funcao 'convstring' converte numero para string fim funcao diminuir ( ) //esta funcao diminui 1 e atualiza o texto do rotulo contador = contador - 1; // diminui 1 ig.rotulo_def_texto ( rotulo , convstring( contador ) ) ; //define o texto do rótulo fim janela = ig.janela ( ); //cria uma janela ig.janela_def_posicao ( janela , ig.jan_pos_centro ); ig.janela_def_tamanho_padrao ( janela , 270 , 180 ); //define tamanho padrao para a janela ig.janela_def_titulo ( janela , " + - " ); // definir titulo da janela caixa_fixa = ig.fixo ( ); //cria uma caixa que organiza os componentes em posicoes por coordenadas x y fixas ig.ad ( janela , caixa_fixa ) ; // adiciona a caixa fixa na janela bt_mais = ig.botao( "+" ) ; // cria um botao com o texto '+' ig.componente_def_dica_texto ( bt_mais , "aumenta 1"); //mostra este texto quando o mouse parar em cima do componente ig.componente_def_tamanho ( bt_mais , 80 , 35 ); //define o tamanho do componente ig.fixo_ad ( caixa_fixa , bt_mais , 50 , 20 ); //adiciona o botao mais na caixa fixa na posicao coluna 50 por linha 20; //criando o botao menos bt_menos = ig.botao( "-" ); //definindo uma dica em makup, aceita tags como a do negrito <b><b> ig.componente_def_dica_markup ( bt_menos, "<b>diminui 1</b>"); ig.componente_def_tamanho( bt_menos, 80 , 35 ); //tamanho do botao //adicionando botao menos dentro da caixa fixa: ig.fixo_ad ( caixa_fixa , bt_menos , 50 , 80 ); rotulo = ig.rotulo ("0") ; //cria um rotulo com o texto '0' ig.fixo_ad( caixa_fixa , rotulo , 190 , 58 ); //modifica a cor do texto ( rgb: red = 22222222 , green = 0 e blue = 0 ) ig.componente_modifique_fg ( rotulo , ig.estado_normal , 2222222 , 0 , 0 ); ig.componente_modifique_fonte ( rotulo , 'Arial bold 56' ); //define a fonte do rotulo como arial negrito tamanho 56; ig.componente_mostre_todos ( janela ) ; //mostra a janela e seus componentes ig.conecte( janela , ig.destruido , "ig.saia()"); //conectando os botoes às suas respctivas funcoes: ig.conecte( bt_mais , ig.clique , [[ somar(rotulo)]] ); ig.conecte ( bt_menos , ig.clique , [[ diminuir ( rotulo ) ]] ); ig.fimprograma(); //inicia o laço de eventos |
———————————————————————
A novidade aqui é o componente caixa fixa, comando de criação ig.fixo( )
Diferentemente das caixas verticais e horizontais que já vimos, este container não
organiza automaticamente os componentes, ficando a cargo do programador definir
o local em coordenadas de x e y (x = coluna , y = linha). A função para adicionar
componentes em caixas fixas é : ig.fixo_ad ( caixa_fixa , componente, x , y )
Você pode querer mudar a posição de um componente dentro de uma caixa fixa,
para isso use a função: ig.fixo_posicione( caixa_fixa, componente, x , y )
É muito fácil mexer com este tipo de caixa, mas muitas vezes será melhor usar caixas
com organização automática, principalmente em programas em que os componentes
devem se adequar ao tamanho da tela do usuário final.
convstring( numero ) – Esta função é útil para converter números em strings,
para depois usarmos como texto de algum componente;
ig.componente_def_dica_texto ( bt_mais , “aumenta 1”);
Esta função é muito boa para expor um box com texto dica quando o mouse ficar parado
em cima do componente.
ig.componente_def_dica_markup ( bt_menos, “<b>diminui 1</b>”);
Mesmo uso da função anterior, com a diferença de que esta aceita tags de linguagens de markup,
tags simples como negrito <b>texto</b>, italico <i>texto</i> ou sublinhado <u>texto</u>
ig.componente_modifique_fg ( rotulo , ig.estado_normal , 2222222 , 0 , 0 );
esta muda o foreground (plano em relevo), isto é, no caso do rotulo é o texto.
vejamos cada parâmetro:
rotulo = componente editável para mudar a cor de foreground
ig.estado_normal = é o estado, geralmente se usa o normal, isto é, o componente não está em foco ou sendo
clicado. Tem também outro estado o ig.estado_foco, quando o mouse está sobre o componente.
o estado pode ser escrito se preferir de outra maneira: ig[“estado_normal”]
2222222 = é o valor para a intensidade do vermelho;
0 = intensidade da cor verde;
0 = intensidade da com azul
a cor é a combinação do RGB (isto é , red , green e blue).
se quiser pode passar uma tabela como valor da cor, ficando assim o comando:
cor = { red = 2222222, green = 0 , blue = 0 };
ig.componente_modifique_fg( rotulo , ig.estado_normal , cor ); //passando a tabela cor como parâmetro da cor;
ig.componente_modifique_fonte ( rotulo , ‘Arial bold 56’ );
Aqui definimos a fonte, só funciona com editáveis, não funciona com botões.
rotulo = o componente a ser mudado a fonte.
‘Arial bold 56’ = string de formatação da fonte. O nome da fonte sempre primeiro,
o tamanho sempre deve ir por último e no meio podem ficar características tais como
bold (negrito) ou italic (italico);
ig.conecte( janela , ig.destruido , “ig.saia()”); – se não entendeu este comando ainda, leia com
atenção, ele é simples: conecta uma função ao evento fechar janela (quando se clica no x de fechar),
neste caso a função foi ig.saia() para fechar o aplicativo e não deixá-lo rodar em modo invisível.
Se não usar este comando conectado a janela principal, ao fechar a janela ele continua rodando,
portanto nunca esqueça de usá-lo.
ig.conecte( bt_mais , ig.clique , [[ somar(rotulo)]] );
ig.conecte ( bt_menos , ig.clique , [[ diminuir ( rotulo ) ]] );
Aqui conectamos as funções somar e diminuir aos devidos botões com
o evento clique, para que quando clicados estas funções sejam executadas.
Note que passamos como parâmetro das funções conectadas a variável rotulo,
ig.fimprograma(); //inicia o laço de eventos
este é o último comando do programa, o código principal sempre deve estar antes desse comando.
Bom é isso, boas linhas de código!
Att. Adalberto