CAPÍTULO 3
Programação visual com Software Livre
EDIT LIN EDITORIAL S.L,  dos autores  Daniel Campos Fernández e José Luis Redrejo.  Prólogo de Benoit Minisini


Iniciando no console



Vamos começar pelo caminho mais difícil para compreender que a interface gráfica não é mais que outro acessório do Gambas, que é igual ao resto dos componentes, as classes a partir dos quais criaremos objetos, neste caso Controles o Widgets.

Criaremos um projeto de console (sim, de console), chamado de Janela. Adicionaremos um módulo modMain e uma referencia ao componente gb.qt.


Figura 1
Figura 1. Projeto janela


Escrevemos agora o seguinte código:

PUBLIC SUB Main()

DIM hWin AS Window

hWin = NEW Window

hWin.Show()

END

Ao  executa-lo, aparecerá uma janela solitária na tela, que desaparecerá quando pressionarmos o botão Fechar do gestor de janelas.

As janelas são  contêiner de primeiro nível. Um contêiner é um controle que permite colocar outros em seu interior (botões, caixa de texto e etc.). O adjetivo de primeiro nível se refere a quem não tem um pai, quer dizer, que não é submetido a outro controle de nossa aplicação, senão diretamente ao desktop.

Neste programa temos vários efeitos, a primeira vista, estranhos. O primeiro é que declaramos hWin como uma variável local, assim, parece que ao finalizar a função Main o objeto deveria destruir-se. E não é assim já que a janela, por ser um controle, mantem uma referência interna (os objetos Gambas só destruirão-se caso não exista uma referência em todo o programa). Esta referência podemos dizer que corresponde a janela que está desenhada no servidor gráfico, com a intermediação da biblioteca gráfica (neste caso QT). Por outro lado, o programa deveria ter finalizado ao terminar a função Main() e não foi assim.

O segundo efeito se deve a que tanto o componente gb.qt como o componente gb.gtk são chamados automaticamente através do método Main() do programa e fica em laço principal da biblioteca gráfica, esperando que se produzam eventos gráficos (por exemplo, um click do mouse sobre um controle).

Na prática, para criar um programa gráfico indicaremos diretamente no assistente que desejamos criar um projeto gráfico, de forma que o ambiente de desenvolvimento inclui por padrão, o componente gb.qt, e nos permite criar um formulário de inicio. Um formulário de inicio é uma classe de inicio que herda as características da classe Form, que não necessita de um método Main no programa porque o interpretador chama diretamente o formulário para mostra-lo, e entra no laço de gestão de eventos.




Cópia literal

    Extraído do livro “GAMBAS, programação visual com software Livre”, da editora EDIT LIN EDITORIAL S.L,  dos autores  Daniel Campos Fernández e José Luis Redrejo. Prólogo de Benoit Minisini

LICENSA DESTE DOCUMENTO


    É permitido a cópia e distribuição da totalidade ou parte desta obra sem fins lucrativo. Toda cópia total ou parcial devera expressar o nome do autor e da editora e incluir esta mesma licença, adicionando se é uma cópia literal “Cópia literal”. Se é autorizada a modificação e tradução da obra  sem fins lucrativo sempre se deve constar na obra resultante  a modificação o nome da obra original o autor da obra original e o nome da editora e a obra resultante também deverá ser livremente reproduzida, distribuída, ao publico e transformada em termos similares ao exposto nesta licença.

Tradução

Cientista
 (Antonio Sousa)