Caixa combo (combo box) em igbr

Caixa combo é um componente que exibe uma lista de itens para ser selecionado um.

veja:

Detalhes:

Incluindo a biblioteca gráfica igbr

Criando uma janela com titulo ‘Teste Combo’ e com largura 300 pixels por 200 de altura. E definindo a posição da janela como centro da tela (ig.janela_pos_centro).

Nota: existem outras posições possíveis, mas as mais importantes são a de cima e: ig.janela_pos_mouse (onde o mouse estiver na tela); ig.janela_pos_nulo (nulo, aleatório);

Conectando a função sis.saia() ao evento do clique fechar janela (ig.destruido); isso significa que quando clicarmos no x de fechar a janela, a função sis.saia será executada com o parâmetro 0 e o programa, portanto, será fechado.

Nota: se chama permutado pois o quarto parâmetro que seria o dado extra, se torna parâmetro da função conectada, que é o terceiro argumento.


Criando um fixo que é um painel onde podemos colar outros componentes na coordenada desejada. Temos que fazer isso porque a janela só admite um componente colado nela, não mais que um, a lógica portanto, é colocamos na janela um único componente mas um do tipo caixa (fixo, caixavertical, caixahorizontal etc.) e neste componente tipo caixa podemos colocar os demais, como botões, textos, rótulos etc.

Nota: usamos acima a variável painel como local, isso pode otimizar o desempenho de um programa Prisma.

Adicionando o painel fixo na janela.

Criando a caixa combo com texto ativo ‘escolha uma opção’ e adicionando-a no painel fixo nas coordenadas x=10, y=10. Primeiro argumento é o fixo, segundo é o componente a ser inserido, terceiro e quartos args são as coordenadas x e y.

Nota: x é a coluna e y a linha ok. Caso o argumento string seja omitido na criação do combo, nenhum texto será mostrado como padrão.

Anexando textos no combo. E assim com os demais itens. A sequência dos itens no combo fica de acordo com a ordem do uso desta função, o primeiro item anexado é o segundo no combo, o segundo é o terceiro e assim por diante. Isto porque o primeiro é o texto padrão inserido já na criação do combo.


Esta função é uma call back, ou seja ela é executada automaticamente quando um componente disparar algum evento. Neste caso, quando o combo mudar o seu valor. Temos o primeiro parâmetro que é o próprio componente conectado, segundo é o dado extra.

Dentro desta função temos:

Esta função retorna o texto ativo no combo, ou seja, o que está visível no combo.

Cria um objeto cor para ser usado em um componente posteriormente. Seu único parâmetro é uma variável cor, ig[‘branco’], ig[‘amarelo’], ig[‘marrom’], ig[‘preto’], ig[‘azul’], ou ig.branco, ig.amarelo etc. Veja mais detalhes de cor <aqui>.

Modificando a cor de fundo do componente janela. A constante ig.estado_normal é quando o componente em visibilidade padrão, temos outro tipo de estado, ig.estado_foco que é a aparência de um componente modificada quando o mouse estiver em cima. Isso é ótimo para botões, sendo possível determinar uma cor padrão e uma outra para quando o mouse passar por cima do botão.


Conectando uma função ao evento modificado do combo. Assim toda vez que o texto do combo for modificado, a função combo_ex() será executada. (o primeiro parâmetro é o componente a ser conectado, o combo, o segundo parâmetro é o evento, ig.modificado; o terceiro parâmetro é a função a ser executada (sem os parênteses) e o quarto é o dado extra, no caso a janela.

Mostrando a janela (jan) com todos os seus componentes filhos.

Inicia o laço de eventos do igbr. Sempre deve ser o último comando de um programa gráfico igbr, sem ele não funcionará.


FIM

Falou, até a próxima. Qualquer dúvida poste nos comentários ou no fórum.

Att. Adalberto

 

2 thoughts on “Caixa combo (combo box) em igbr

  1. Olá, estou realmente empolgado com o Prisma. Principalmente por poder desenvolver em português.
    Eu estou no primeiro ano de engenharia mecânica e estou iniciando no mundo da programação. Não consigo imaginar o trabalho assombroso que deve dar criar uma linguagem. Eu estive olhando alguns tutoriais de C, mas eu estou numa rotina louca da faculdade, o que dificulta aquele esforço e o tempo a mais para memorizar os comandos em inglês. Quero também me especializar em mec. dos fluidos, o que significa precisar de boas ferramentas em criação de funções mais complexas, operações com vetores, enfim de programas. Devo admitir que sou um entusiasta desse projeto, principalmente por ser também livre.
    Pena que ainda não tem pra linux 64 bits.

  2. Muito obrigado pelo feedback. Fico extremamente contente em saber que está sendo útil o projeto. O mundo da programação é mágico, é um lugar onde você se torna um criador e tudo vale, toda linguagem que tentar aprender. Tenho praticado muito C construindo Prisma, mas devo confessar que não o fiz do zero, pois não tenho o conhecimento aprofundado e tempo suficiente. Usei como base o projeto Lua, que é uma espécie de library em ANSI C para embutir sua linguagem em programas C. Mesmo assim, é meio trabalhoso principalmente para criar a interface gráfica. O tempo é curto mas aos poucos vou implementando novos métodos e tentando criar novos tutoriais. Vou fazer um tutorial para compilar o projeto em sistema 64 bits Linux, testar e depois posto aqui nos comentários e no blog.

    Para a linguagem C indico o livro C como programar de Deitel. Link: http://ads2015.com/Livros/Linguagem%20C-%20Como%20programar%20-%20Deitel.pdf

    Para estudar C tem que ter dedicação e paciência, (e praticar) o conhecimento vem com o tempo. Só estudar um pouco cada dia, e não seguir adiante enquanto não entender.
    Valeu, até mais.
    Att. Adalberto

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *