Projeto Gambas Linux

Gambas é um ambiente de desenvolvimento distribuído sob a licença GNU GPLCom isso, podemos dizer que não é apenas uma linguagem de programação derivada da linguagem básica, mas também uma ferramenta muito útil na construção de aplicativos visuais para quase qualquer distribuição GNU / Linux.

No Gambas, o programador tem a facilidade de desenhar janelas graficamente, arrastar objetos da caixa de ferramentas e depois escrever o código básico para cada objeto.

Como vimos anteriormente, o Gambas é baseado em um interpretador básico com extensões de objeto, semelhante ao Visual Basic. Mas a vantagem que temos com o Gambas é que você pode projetar rapidamente sua aplicação gráfica com QT ou GTK +, acessar bancos de dados MySQL, PostgreSQL, Firebird, ODBC e SQLite, controlar aplicações com DBUS, construir front-end de comandos Linux, fazer aplicações 3D OpenGL , fazer aplicações web CGI, gerar pacotes de instalação para várias distribuições, entre outros.

Por este motivo, podemos dizer então que no Gambas não é uma cópia ou clone do Visual Basic, pois apesar de ser baseado no básico, é uma alternativa para criar programas e aplicações para ambientes GNU. Se olharmos para a história dos camarões, descobriremos que a primeira versão dos camarões foi lançada em 1999 pelo francês Benoît Minisini, criando um ambiente que nos permitiria programar e desenvolver facilmente aplicativos com uma interface gráfica de usuário.

No início, a forma do programa no Gambas era semelhante à do Gimp, com várias janelas, e orientada para o uso do Qt e do KDE. Quando deu o salto para as versões 2.x em 2008, envolveu um redesenho completo da interface de programação gráfica, integrando tudo em uma única janela, e permitindo o uso do GTK +. Em 2011 saltou para a versão 3.x.

Vamos começar com o Instalação Gambas3.

1. Como instalar o Gambas3


A simplicidade do Gambas torna-o fácil de usar, não sendo necessário conhecer nenhuma linguagem de programação. Você só precisa ter um manual gratuito e dedicar algum tempo a ele. Por isso, é perfeito para aprender se você está apenas começando. Bem, vamos aprender como instalá-lo em nosso sistema operacional Linux:

Primeiro, devemos abrir o terminal de comando e inserir esses comandos um por um:

 sudo add-apt-repository ppa: gambas-team / gambas-daily sudo apt-get update sudo apt-get install gambas3 
Comandos de instalação do Gambas

Com esta linha de comando, podemos obter a última versão lançada do Gambas. Atualmente estão indo para 3.8.1, embora eu recomende ter a versão mais estável que podemos obter usando esses outros comandos, mas devemos ter em mente que nunca podemos adicionar os dois PPAs ao mesmo tempo, só podemos ter um dos dois, isso ocorre porque poderíamos causar um erro e teríamos que reiniciar a limpeza das instalações anteriores.

2. Criar projeto Gambas com DB e relatório


A primeira coisa que devemos fazer é projetar o banco de dados de que precisamos para armazenar nossas informações. O que proponho se chamará "alunos" e terá duas mesas (alunos e disciplinas).
 Tabela de alunos: RG, RG, nomes, sobrenomes, endereço, telefone e e-mail. Tabela de assuntos: id, subject_name 
Para fazer isso, usamos um gerenciador muito simples para design de banco de dados, chamado SQLite Data Browser, nós o abrimos e criamos o banco de dados clicando no novo botão. Localizamos onde o salvaremos e criamos as tabelas de acordo com o desenho anterior.

Depois de criado, teria a seguinte aparência:

Deixaremos o campo ID como chave primária em ambas as tabelas. Antes de fechar o minigestor, adicionamos alguns dados a ele para verificar seu funcionamento quando estamos desenhando os formulários no programa. Agora, se pudermos clicar no botão Salvar e fechar o gerenciador de mini databrowser.

3. Executando o programa Gambas


Abrimos o Gambas e criamos um novo projeto dando-lhe o nome e o caminho correspondente:

PROLONGAR

Para maior comodidade, colocamos o banco de dados criado dentro da pasta criada para o projeto, neste caso a pasta GestionEstudiantes, para que seja fácil localizar seu caminho no programa.

 ‘Configuramos o botão de saída. Public Sub btnCerrar_Click () Quit End 
Criamos dois novos formulários, para entrada de alunos e para disciplinas.

Agora configuramos o botão para inserir os alunos:

 Public Sub btnNuevoEstudiante_Click () FMain.Hide FormEstudiantes.Show End 
Também configuramos o botão adicionar assunto:
 Public Sub btnNuevaAsignatura_Click () FMain.Hide FormCourses.Show End 
Então, nós o teremos atribuído.

4. Desenho do formulário para entrada de alunos


Para começar, colocamos um Columview e dois botões nos quais colocaremos o novo texto e sairemos, respectivamente (Propriedade do texto).

Podemos, se desejarmos, adicionar um ícone a cada botão por meio de sua propriedade de imagem. Ao Columview vamos chamá-lo simplesmente de "mesa" (No nome da propriedade) é muito semelhante a qualquer tabela e estamos tentando manter este primeiro projeto de banco de dados o mais simples possível.

Vamos chamar os botões: novo Y sair.

O formulário ficaria assim:

Configuramos o botão Fechar do formulário.

 Public Sub btnExit_Click () Me.Close End 
Agora passamos para a codificação.

5. Começamos a codificar Gambas


Vamos começar a colocar algum código em nosso programa e comentar sobre ele. A primeira coisa em um banco de dados é a conexão com ele. Para isso, o Gambas nos fornece o Objeto de conexão.

Tudo o que aparece com um único apóstrofo no código é um comentário que não será interpretado pelo programa.

Exemplo:

 Variável 'Project Test Private hconn As Connection' para estabelecer a conexão Private Function ConnectBase () As Boolean 'variável para a conexão, retorna um valor verdadeiro ou falso Se hconn Null Then Return False' nós verificamos se a conexão não está aberta hconn = New Conexão 'Inicializamos a conexão com o novo método e depois passamos os parâmetros com o parâmetro hconn' para o caminho do banco de dados hconn.Host = "/ home / test" hconn.Name = "students" 'nome do banco de dados hconn.Type = " sqlite3 "'tipo de banco de dados Try hconn.Open ()' tentamos abrir a conexão se não obtivermos sucesso, enviamos uma mensagem de erro e damos a ela o valor null If Error Then hconn = Null Message.Error (" Falha ao conectar a o banco de dados ") Retornar True Endif Retornar False End 
Depois de copiar o código acima, clique na opção Executar do menu Depurar. Se tudo correr bem, nenhum erro aparecerá e a tela do nosso projeto aparecerá novamente. O que significa que a conexão ao nosso banco de dados foi feita de forma satisfatória.

Em caso de erro, aqui estão as possíveis causas:

Causas de ErroVejamos os tipos de causas:

1. Ao copiar e colar o código, você deve levar em consideração as aspas, que muitas vezes são alteradas ao copiar e colar e, portanto, não são reconhecidas pelo aplicativo. Neste caso, é aconselhável eliminar as aspas e colocá-las manualmente. O código entre aspas deve estar em fúcsia para saber se está correto.

2. Outro possível erro é não ter marcado as opções correspondentes na guia Propriedades do Projeto, que podem ser encontradas clicando no menu Projeto, em Propriedades e lá na guia Componentes, verifique se as seguintes opções estão marcadas:

  • bg
  • gb.db
  • gb.db.sqlite3
  • gb.form
  • gb.db.mysql (Isso não deve ser necessário para o banco de dados que criamos, mas o marcamos de qualquer maneira)

3. Outro erro muito comum é o caminho onde temos o projeto e o banco de dados, que é onde estão as linhas destacadas no código a ser copiado e colado.

Após corrigir os possíveis erros e verificar o funcionamento do nosso aplicativo, procedemos ao fechamento da conexão colocando o seguinte código no final.

 PUBLIC SUB fechar conexão () IF hconn = NULL THEN RETURN hconn.Close () hconn = NULL END 
Primeiro vemos que não está mais fechado, senão fechamos com .perto

6. Ver dados armazenados


Abrimos o formulário e dentro do Processo de formulário e colocamos o seguinte código:

(Não se esqueça de verificar as aspas que ao colar o código poderiam ter sido alteradas).

 Public Sub Form_Open () 'primeiro declaramos as variáveis ​​e limpamos o columnview Dim hresul As Result Chave Dim As String Filtro Dim As String table Clear If ConnectBase () Then Return' nós confirmamos a conexão com o banco de dados 'nós definimos as propriedades para o columnview 'contagem para o número de colunas' texto para o título das colunas 'largura para a largura das colunas' alinhamento para o alinhamento dos campos. table.Columns.Count = 6 table.Columns [0] .Text = "Cedula" table.Columns [0] .Alignment = Align.Center table.Columns [0] .Width = 100 table.Columns [1] .Text = "Nomes" table.Columns [1] .Alignment = Align.Center table.Columns [1] .Width = 120 table.Columns [2] .Text = "Sobrenome" table.Columns [2] .Alignment = Align.Center table .Columns [2] .Width = 120 table.Columns [3] .Text = "Endereço" table.Columns [3] .Alignment = Align.Center table.Columns [3] .Width = 120 table.Columns [4]. Text = "Telefone" table.Columns [4] .Alignment = Align.Center table.Columns [4] .Width = 120 table.Columns [5] .Text = "Mail" table.Columns [5] .Alignment = Alignment = Alinhar. Center table.Columns [5] .Width = 120 hresul = hconn.Exec ("select * from students") 'Esta instrução pesquisa o banco de dados, se encontrar dados torna a variável hresul verdadeira e, portanto, disponível (Disponível) Do While hresul .Disponível 'então percorrerá a tabela com um loop do while baseado na chave (Cedula) e preencherá a tabela com os dados. key = hresul ["ID"] 'tornamos o campo ID o principal para as pesquisas de tabela.Adicionar (senha, senha)' adicionamos os dados encontrados no banco de dados. tabela [chave] [1] = hresul ["nomes"] tabela [chave] [2] = hresul ["sobrenome"] tabela [chave] [3] = hresul ["endereço"] tabela [chave] [4] = hresul ["phone"] table [key] [5] = hresul ["mail"] hresul.MoveNext () 'esta instrução avança a pesquisa para os próximos dados Loop' Reexecuta as instruções dentro do loop até que não haja mais dados a serem exibidos. CloseConnection () 'fecha a conexão End 
Processo de formulário

Ao final o executamos e verificamos seu funcionamento, o que nos retornará o seguinte resultado:

PROLONGAR

7. Crie um formulário para inserir os dados dos alunos


Agora vamos criar um novo formulário que nos permite inserir dados para novos alunos, o nome sugerido para ele é edata.

Terá os seguintes objetos: 6 rótulos de etiqueta, 6 caixas de texto e dois botões.

O layout sugerido é o seguinte:

Para ver se está tudo indo bem, vamos ao formulário que mostra a lista de alunos e configuramos o novo botão da seguinte maneira:

PROLONGAR

Se não houver erros e tudo correr bem, vamos configurar o formulário recém-criado para inserir novos dados do aluno. Este formulário receberá uma referência a um objeto do tipo conexão, no nosso caso hconn portanto, o colocamos no início do nosso formulário.

 'Arquivo de classe Gambas' primeiro configuramos a conexão Private hconn As Connection 'criamos um método runnew que será chamado a partir do formulário que lista os alunos Public Sub runnew (data As Connection) hconn = data' referência para o formulário anterior Me. ShowModal () 'força a interagir com o formulário antes de fechá-lo End Configuramos o botão cancelar: Public Sub btnCancelar_Click () Me.Close (0) End Para inserir novos dados, usaremos a seguinte instrução: TRY hconn.EXEC (“ inserir em valores mytable (& 1, & 2, & 3, & 4, & 5. & 6) ”, txtid, txtname, txlastname, txtphone, txtmobile, txtcumple) exec Os campos serão chamados por um e comercial e o índice correspondente conforme mostrado abaixo. (& 1, & 2, & 3, & 4, & 5. & 6) 
Vamos voltar ao formulário anterior e configurar o botão de aceitação da seguinte maneira:

PROLONGAR

Primeiro tentamos nos conectar ao nosso banco de dados, se não tivermos sucesso, vamos embora. Assim que a conexão foi estabelecida, ligamos método runnewde fdata. Como este formulário é exibido em formato modal, este código está esperando que entremos com os dados no fdata ou simplesmente o fechemos.

Em seguida, ele fecha a conexão e chama o método form_open que recarrega os dados para mostrar as alterações feitas. Agora vamos ver como fazemos para modificar um registro, por exemplo, se um amigo trocar o celular, basta editar esse campo.

Vamos aproveitar o evento ativar de nosso controle colunmview (tabela) para adicionar essa funcionalidade. Este evento é acionado com um clique duplo em qualquer coluna da tabela.

 Public Sub table_Activate () Dim hresul As Result If table.Current = Null Then Return If ConnectBase () Then Return hresul = hconn.Edit ("students", "ID = & 1", table.Current.Key) edata.runedit ( hresul) 'Chame o método runeedit do formulário edata table.Current [0] = hresul ["ID"] table.Current [1] = hresul ["first names"] table.Current [2] = hresul ["last names "] tabela. Atual [3] = hresul [" endereço "] tabela.Corrente [4] = hresul [" telefone "] tabela.Corrente [5] = hresul [" mail "] closeConnection () Fim 
Ativar evento

A linha em negrito é aquela que chama o método edata runedit. Como ainda não criamos esse método, se tentarmos executá-lo agora, ele não funcionará.

Voltemos, portanto, a idade e vamos colocar as seguintes variáveis ​​no início do formulário para que sejam acessíveis de todo o formulário.

 Private hconn As Connection Private hresul As Result Edição privada As Boolean 
Então vamos criar o novo método chamado runedit:
 Sub runedit público (dados como resultado) hresul = edição de dados = True txtCedula.Text = hresul ["ID"] txtName.Text = hresul ["firstname"] txtName.Text = hresul ["sobrenome"] txtAddress.Text = hresul ["endereço"] txtTelephone.Text = hresul ["telefone"] txtEmail.Text = hresul ["mail"] Me.ShowModal End 
Isso nos mostra edata com os dados do registro selecionado para que possamos editá-lo e coloca a edição da variável com o valor true. Isso é necessário para que o uso de uma declaração condicional ao clicar btna aceitar Distinguir entre novo e modificar.

Podemos testá-lo embora ainda não funcione, ainda está faltando definir botão de aceitação, mas podemos verificar se nos leva ao formulário solicitado.

Vamos configurar o botão aceitar para salvar as alterações:

 Public Sub btnAccept_Click () Se editar Então tente hresul ["cedula"] = txtCedula.Text Tente hresul ["names"] = txtNames.Text Tente hresul ["sobrenomes"] = txtSurname.Text Tente hresul ["address"] = txtAddress .Text Tente hresul ["phone"] = txtTelephone.Text Tente hresul ["mail"] = txtEmail.Text Tente hresul.Update Else Tente hconn.Exec ("insira nos valores dos alunos (& 1, & 2, & 3 , & 4, & 5, & 6) ", txtCedula.Text, txtName.Text, txtSurname.Text, txtAddress.Text, txtTelephone.Text, txtEmail.Text) 'com isso inserimos as informações enviadas Endif Me.Close () Catch Message.Error ("Impossível inserir os dados enviados") End 
Agora podemos salvar as alterações.

8. Configurar pesquisa de dados


Vamos adicionar um botão de pesquisa e uma caixa de texto ao formulário. Esta é a nova aparência do formulário:

PROLONGAR

Configuramos o botão de pesquisa de forma semelhante ao novo botão, este é o código:

 Public Sub btnBuscar_Click () Dim hresul As Result Dim key As String Dim filter As String table.Clear If ConnectBase () Then Return table.Columns.Count = 6 table.Columns [0] .Text = "Cedula" table.Columns [0 ] .Alignment = Align.Center table.Columns [0] .Width = 100 table.Columns [1] .Text = "Nomes" table.Columns [1] .Alignment = Align.Center table.Columns [1] .Width = 120 table.Columns [2] .Text = "Sobrenome" table.Columns [2] .Alignment = Align.Center table.Columns [2] .Width = 120 table.Columns [3] .Text = "Address" table. Columns [3] .Alignment = Align.Center table.Columns [3] .Width = 120 table.Columns [4] .Text = "Phone" table.Columns [4] .Alignment = Align.Center table.Columns [4] . Width = 120 table.Columns [5] .Text = "Mail" table.Columns [5] .Alignment = Align.Center table.Columns [5] .Width = 120 filter = txtBuscar.Text hresul = hconn.Exec (" selecione * de alunos onde nomes como '"& filtro &"' ") Faça While hresul.Available key = hresul [" ID "] table.Add (key, key) table [key] [1] = hresul [" name res "] tabela [senha] [2] = hresul [" sobrenome "] tabela [senha] [3] = hresul [" endereço "] tabela [senha] [4] = hresul [" telefone "] tabela [senha] [ 5] = hresul ["mail"] hresul.MoveNext () Loop closeConexion () End 
Com o que fizemos, já podemos ter clareza sobre o processo, agora vamos fazer o mesmo com o formulário para as disciplinas. O layout sugerido é o seguinte:

Como sempre, a primeira coisa que vamos programar é o botão sair:

 Public Sub btnExit_Click () Me.Close End 
Agora faremos a conexão com o banco de dados:
 Private hconn As Connection Função privada connectbase () As Boolean If hconn Null Then Return False hconn = Nova Conexão hconn.Host = "/ home / test" hconn.Name = "students" 'database name hconn.Type = "sqlite3"' database tipo Try hconn.Open () If Error Then hconn = Null Message.Error ("Erro ao conectar o banco de dados") Return True Endif Return False End 
Agendamos o evento para fechar a conexão:
 Public Sub closeConexion () Se hconn = Null Then Return hconn.Close () hconn = Null End 
Agora visualizamos os dados no Columview, no evento aberto do formulário.

O código é o seguinte:

 Public Sub Form_Open () Dim hresul As Result Dim key As String Dim filter As String table2.Clear If connectbase () Then Return table2.Columns.Count = 2 table2.Columns [0] .Text = "id" table2.Columns [0 ] .Alignment = Align.Right table2.Columns [1] .Text = "Nome da Disciplina ou Curso" hresul = hconn.Exec ("selecionar * das disciplinas") Fazer Enquanto hresul.Available key = hresul ["id"] tabela2.Adicionar (chave, chave) tabela2 [chave] [1] = hresul ["matter_name"] hresul.MoveNext () Loop closeConnection () End 
Agora criamos o formulário para adicionar e / ou editar os dados da tabela, disciplinas ou cursos. O nome sugerido é adata. (titulares dos dados).

9. Nós programamos o botão Fechar

 Public Sub btnCerrar_Click () Me.Close End 
Criamos a referência para um objeto do tipo conexão, no nosso caso hconn, portanto no início do nosso formulário adata colocaremos o seguinte código:
 Conexão privada hconn como 
Além disso, criamos o método runnew que será chamado a partir do formulário principal. A sintaxe é a seguinte:
 Public Sub runnew (data As Connection) hconn = data Me.ShowModal () End 
Agora vamos ao formulário para inserir os dados dos sujeitos e no evento click btnnuevo colocamos o seguinte código:
 Public Sub btnNuevo_Click () If connectbase () Then Return adata.runnew (hconn) closeConexion () Form_Open () End 
Agora podemos tente um novo botão da referida forma.

Continuando com o mesmo formulário, codificamos o método para modificar registros da seguinte maneira. Vamos aproveitar o evento de ativação do nosso controle colunmview (tabela) para adicionar essa funcionalidade. Este evento é acionado com um clique duplo em qualquer coluna da tabela.

 Public Sub table2_Activate () Dim hresul As Result If table2.Current = Null Then Return If connectbase () Then Return hresul = hconn.Edit ("subject", "id = & 1", table2.Current.Key) adata.runedit ( hresul) table2.Current [0] = hresul ["id"] table2.Current [1] = hresul ["matter_name"] closeConnection () End 
Lembre-se de que não funcionará até que tenhamos criado este evento no formulário adata. Voltemos, portanto, a fdata e vamos colocar as seguintes variáveis ​​no início do formulário para que sejam acessíveis de todo o formulário.
 PRIVATE hconn AS Conexão PRIVATE hresul AS Resultado Edição PRIVATE AS Boolean 
Criamos o método runedit cujo código é o seguinte:
 Public Sub runedit (dados como resultado) hresul = edição de dados = True txtAsignaturas.Text = hresul ["subject_name"] Me.ShowModal End 
Lembre-se de testar para verificar se tudo está indo bem. Agora nós programamos o botão aceitar da seguinte maneira:
 Public Sub btnAceptar_Click () Se estiver editando Então tente hresul ["subject_name"] = txtAsignaturas.Text Tente hresul.Update Else Tente hconn.Exec ("insert into subject_name values ​​(& 1)", txtAsignaturas.Text) Endif Me.Close () Catch Message.Error ("Não foi possível inserir os dados enviados") End 
Agora programamos a rotina de pesquisa de assunto:
 Public Sub btnBuscar_Click () Dim hresul As Result Dim key As String Dim filter As String table2.Clear If connectbase () Then Return table2.Columns.Count = 2 table2.Columns [0] .Text = "id" table2.Columns [0 ] .Alignment = Align.Right table2.Columns [1] .Text = "Nome da Disciplina ou Curso" filter = txtBuscar.Text hresul = hconn.Exec ("selecione * das disciplinas onde subject_name como '" & filtrar & "' ") Faça While hresul.Available key = hresul [" id "] table2.Add (key, key) table2 [key] [1] = hresul [" matter_name "] hresul.MoveNext () Loop closeConexion () End 
Nós o teremos pronto.

Conclusões sobre camarões
Para quem já fez uma aplicação em Visual Basic e se interessa por programação, esta é uma das ferramentas que sem dúvida lhe interessará e é uma opção clara que deve considerar.

Graças aos testes que podemos ver neste tutorial, podemos ver que é fácil de trabalhar e realmente não leva muito tempo para fazer algum outro aplicativo simples para Linux.

Como podemos ver, o autocomplete que possui camarões fica restrito ao objeto com o qual você está trabalhando, não como no caso do Geany, que pode colocar qualquer coisa em você. Temos que dar-lhe pontos, pois funciona como Java e Netbeans e sem maiores complicações.

Então, para aqueles que querem aprender a programar aplicativos simples no Linux e estão curiosos, recomendamos que você experimente o Gambas3.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave