GAMBAS: A definitiva resposta open-source ao Microsoft Visual Basic

Estável, isento de bugs básicos e totalmente livre. Este é o GAMBAS, uma ferramenta de rápido desenvolvimento que provavelmente atrairá diversos desenvolvedores Visual Basic e Delphi da plataforma Microsoft Windows para o Linux.

[ Hits: 139.192 ]

Por: Alessandro de Oliveira Faria (A.K.A. CABELO) em 16/02/2005 | Blog: http://assuntonerd.com.br


Criando a aplicação



Para executar o GAMBAS basta executar o seguinte comando:

$ gambas

Se o GAMBAS estiver corretamente instalado, iremos obter a seguinte telas de BOAS-VINDAS:


Clique no ícone "NOVO PROJETO" para iniciar o desenvolvimento da aplicação. O seguinte assistente surgirá, clique o botão PRÓXIMO para continuar.

Com relação ao erros de acentuação, corrigiremos isto erro no fim do tutorial.


Na tela de seleção do tipo do projeto, selecione NOVO PROJETO.


Preencha o NOME e o tipo do PROJETO como no exemplo abaixo:


Selecione o local no HD onde o projeto deverá ser salvo.


A próxima tela irá exibir a informações sobre o projeto. Clique em OK para finalizar.


Bem vindo ao GAMBAS!


Em ARQUIVO, no menu principal, estão disponíveis as seguintes opções:


Em PROJETO temos disponíveis as opções abaixo:


Em VISUALIZAR podemos obter as seguinte informações do projeto:

Primeira aba: Informações gerais.


Segunda aba: Propriedade de edição e compilação.


Terceira aba: Componentes a serem utilizados no projeto.


Quarta aba: Utilizado para projetos multi-idioma.


Logo abaixo temos a Caixa de Ferramentas:


No ítem FERRAMENTA temos disponíveis as opções abaixo:


Irei detalhar apenas o ítem PROPRIEDADES por possuir um utilitário gerenciador de banco de dados.


Ao clicar no ítem GERENCIADOR DE BASE DE DADOS, iniciaremos um utilitário conforme a figura baixo:


Clique na opção NEW SERVER para cadastro o seu servidor de banco de dados MySQL.


Se todas as operações acima foram efetuadas com sucesso, iremos obter o seguinte resultado:


Efetue um duplo clique no banco AGENDA para obter as tabelas como na figura abaixo:


Ao clicar no botão SQL, podemos efetuar consultas SQL:


Ao clicar no ítem SERVER do menu principal, teremos o seguinte sub-menu:


Na opção CREATE DATABASE, podemos criar um banco de dados com muita facilidade. Veja a figura abaixo:


Já o ítem CREATE USER é utilizado para criar os usuários do MySQL.


Acredito que com esta apresentação você já está familiarizado com a interface GAMBAS. Se você está seguindo este tutorial, teremos uma tela semelhante a figura abaixo:


Adicione 5 objetos do tipo label, 3 EditText, 1 Button e 1TableView, conforme a figura abaixo:


Para inserir o nosso código, basta clicar com o botão direito sobre o objeto desejado e logo após selecionar o evento desejado. Podemos também pressionar CTRL+W para digitar o código fonte, veja a ilustração abaixo:


Pressione CRTL+W e insira o seguinte código:

' Gambas class file
arrtable[3] AS String

PUBLIC SUB show_data()
  'create the header's view
  
  
  WITH tableview1
    .rows.count=0
    .columns.count=3
    .columns[0].text="COD."
    .columns[1].text="NOME"
    .columns[1].Width=300
    .Columns[2].Text="TELEFONE"
        
  END WITH
  Mglobal.fill_view(tableview1, "select * from cadastro")
END

Primeiro declaramos um vetor (arrtable) para armazenar os dados a serem exibidos no TableView. Logo abaixo no código, criamos uma função que exibe os dados da tabela cadastro no objeto TableView.

Agora vamos inserir o código de conexão com o banco MySQL no Button. Clique com o botão direito sobre o Button1, selecione EVENTO no menu PopUp e escolha a opção Click. Ao abrir a janela de codificação, insira o seguinte código:

PUBLIC SUB Button1_Click()
DIM dbname AS String

      dbname="agenda"

      WITH Mglobal

        IF .conn(textbox1.text, textbox2.text, textbox3.text)=TRUE THEN
            .db.Close
            .db.Name=dbname
            .db.Open
          
        END IF
      END WITH
    
show_data()

CATCH
  Message.Error(Error.Text)

END

Repita o operação no objeto TableView, porém escolha agora o evento Data e insira o código abaixo.

PUBLIC SUB TableView1_Data(Row AS Integer, Column AS Integer)

  'the array's field name's
  arrtable[0]="codigo"
  arrtable[1]="nome"
  arrtable[2]="telefone"
  
  WITH Mglobal
    .rs1.MoveTo(Row)
    tableview1.data.Text = Str(.rs1[arrtable[Column]])
  END WITH

END

Este código insere as colunas do registro atual no linha do Tableview.

Vamos inserir um novo módulo, clicando com o botão direito sobre o formulário do projeto. Selecione a opção módulo do menu e digite o nome para o módulo a ser criado.


Dê um duplo clique no módulo Mglobal e insira o seguinte código:

' Gambas module file

PUBLIC db AS NEW Connection
PUBLIC rs AS Result
PUBLIC rs1 AS Result

PUBLIC FUNCTION conn(host AS String, lgn AS String, pass AS String) AS Boolean
  db.close
  db.Type = "mysql"
  
  db.Host = host
  db.Login = lgn
  db.Password = pass
  db.Open
  RETURN TRUE

CATCH
  Message.error(Error.text)
  RETURN FALSE
END


PUBLIC SUB fill_view(tbv AS tableview, qry AS String)
DIM i AS Float
  rs1 = db.exec(qry)
  WITH rs1
    tbv.rows.count=0
    IF .count<>0 THEN
      tbv.columns.count=.fields.count
      tbv.rows.count=.count
    END IF
  END WITH
END

Acabamos de criar duas funções no módulo Global. A primeira função server para conectar ao banco MySQL, a outra tem o objetivo de preencher a Tableview com os registro do banco.

Para verificar o funcionamento, basta clicar na teclar PLAY (verde) do projeto. Veja o resultado!


Ao clicar no botão conectar, iremos obter os os dados do banco de dados em nosso Tableview.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Download e instalação
   3. Criando a base de dados MySQL
   4. Criando a aplicação
   5. Criando o pacote de instalação
   6. Correção da tradução IDE Gambas
   7. Convertendo projetos do Visual Basic para Gambas
Outros artigos deste autor

FreePascal + Lazarus: Desenvolvedores em Delphi podem começar a migrar para o Linux!

Blu-ray: Reproduzindo, copiando, ripando e assistindo no GNU/Linux

GCJ – Conhecendo o compilador Java Livre

Transmitindo dados para relógios Timex Datalink no GNU/Linux

KaiOS: A ressurreição do FirefoxOS e o fim da segregação digital

Leitura recomendada

Agendando tarefa de gravação de vídeo com o mencoder e gnome-schedule

ERPs Open Source (parte 1) - Principais soluções

RealBasic 2005: Um Visual Basic multi-plataforma!

soundKonverter - o maravilhoso conversor de áudio

SMART Package Manager

  
Comentários
[1] Comentário enviado por mikemgbh em 16/02/2005 - 09:08h

Muito bom. Gosto do VB e este tutorial ficou legal.
Parabens

[2] Comentário enviado por marceloml em 16/02/2005 - 09:13h

Tô muito curioso para ver esta nova solução!!

Parabéns pelo tutorial e obrigado por nos ajudar a estar sempre atualizados com as novas tecnologias.

:)

[3] Comentário enviado por reimassupilami em 16/02/2005 - 09:50h

muito interessante... vou ler melhor o artigo, mas de início posso dizer q está muito legal...

[4] Comentário enviado por jragomes em 16/02/2005 - 09:56h

Artigo muito bom, muito completo. Já havia lido um artigo sobre o Hbasic, mas o Gambas se supera. A vantagem do Gambas é que toda a gente q por acaso tenha aprendido VB e migrou para Linux não precisará jogar fora seus conhecimentos.
Parabéns, Cabelo!!!

[5] Comentário enviado por kernelm em 16/02/2005 - 14:08h

Sinceramnete, eu adorei essa novidade, como ja disseram aqui, é uma boa para aqueles, que possuem conhecimentos em basic e não querem ver todo seu esforço jogado fora. Mas vai um pergunta, haverá suporte a mais distribuiçoes na hora do empacontamento, por exemplo ao slackware?

[6] Comentário enviado por androle em 16/02/2005 - 15:34h

Cabelo

Estou usando o Debian Sarge (testing) e instalei:

ii gambas 1.0-1 Visual development environment for the Gamba
ii gambas-doc 1.0-1 Free VB-like language
ii gambas-gb-comp 1.0-1 The Gambas compression component
ii gambas-gb-db 1.0-1 The Gambas database component
ii gambas-gb-db-m 1.0-1 The MySQL driver for the Gambas database com
ii gambas-gb-db-p 1.0-1 The PostgreSQL driver for the Gambas databas
ii gambas-gb-db-s 1.0-1 The SQLite driver for the Gambas database co
ii gambas-gb-debu 1.0-1 The debugger helper component for the Gambas
ii gambas-gb-eval 1.0-1 The Gambas expression evaluator component
ii gambas-gb-net 1.0-1 The Gambas networking component
ii gambas-gb-net- 1.0-1 The Gambas advanced networking component
ii gambas-gb-qt 1.0-1 The Gambas Qt GUI component
ii gambas-gb-qt-e 1.0-1 The Gambas source code editor component
ii gambas-gb-qt-e 1.0-1 The Gambas extended Qt GUI component
ii gambas-gb-sdl 1.0-1 The Gambas SDL component
ii gambas-gb-vb 1.0-1 The Gambas Visual Basic (tm) compatibility c
ii gambas-gb-xml 1.0-1 The Gambas Visual Basic (tm) compatibility c
ii gambas-runtime 1.0-1 The Gambas runtime


Então já foi lançado o 1.0. Ah, e tem suporte a sqlite também e gera *.deb. Muito 10. Queria algo assim para python.

Parabéns pelo artigo!!!

[7] Comentário enviado por vivone em 16/02/2005 - 18:07h

Cabelo, achei muito legal a sua matéria, porém tentei instalar a versão no debian que eu uso no trabalho e não consegui. Fui no link que vc indicou, peguei a última versão, descompactei em um diretório no meu profile, li o INSTALL e tentei usar o arquivo configure, porém no final ele apresenta o seguinte erro: configure: error: QT moc compiler not found. Try --with-moc option. . Será que vc pode me ajudar ? Desde já agradeço.

Alessandro.

[8] Comentário enviado por marcaoguitarra em 16/02/2005 - 19:59h

cara muito bom o artigo. Gostaria de parabenizá-lo pois voce sempre está contribuindo para o crescimento da comunidade open-source...

Valew cabelo.

[9] Comentário enviado por removido em 17/02/2005 - 00:46h

Muito bom mesmo Cabelow!! :-) Cara, isso ai vai dar um estimulo pra galerinha ae pra fazer scripts para facilitar a própria vida. Já fiz uns tres programinhas aki usando akele comando SHELL e EXEC e talz. O mais interessante é que não precisa saber programar com QT/C++ (que é um saco), o Gambas faz isso por você, não precisa também ser obrigado usar akela feiura do Xdialog, agora o lance é QT e GTK no Gambas, tudo bunitaom!!! :-) Ae galera só por dica... tem o comando SHELL que usa-se basicamente assim:

... [ Algum evento ]

SHELL "/etc/rc.d/rc.httpd stop"

... [Algum evendo END]

Enfim, você pode fazer com o gambas coisas pra automatizar algumas tarefas ai!! :) :P

[]s

[10] Comentário enviado por tiagocruz em 17/02/2005 - 07:26h

Valeu cabelo, show de bola cara!
Sabia que tinha um monte de VBzeiro por aqui, hehehe

E valeu Hiram, era o que eu precisava :-)

A a mina lá em cima, instale no debian via apt-get, não compile!

[11] Comentário enviado por tutasme em 17/02/2005 - 12:36h

eu usava muito e w2k e vb e como agora estou aprendendo linux vou baixar e estudar o gambas
valeu pela dica, foi muito interessante

[12] Comentário enviado por fabio em 17/02/2005 - 14:20h

É verdade Tiago, para os usuários de Debian (pelo menos o unstable):

$ apt-cache search gambas

gambas - Visual development environment for the Gambas programming language
gambas-doc - Free VB-like language
gambas-gb-compress - The Gambas compression component
gambas-gb-db - The Gambas database component
gambas-gb-db-mysql - The MySQL driver for the Gambas database component
gambas-gb-db-postgresql - The PostgreSQL driver for the Gambas database component
gambas-gb-db-sqlite - The SQLite driver for the Gambas database component
gambas-gb-debug - The debugger helper component for the Gambas IDE
gambas-gb-eval - The Gambas expression evaluator component
gambas-gb-net - The Gambas networking component
gambas-gb-net-curl - The Gambas advanced networking component
gambas-gb-qt - The Gambas Qt GUI component
gambas-gb-qt-editor - The Gambas source code editor component
gambas-gb-qt-ext - The Gambas extended Qt GUI component
gambas-gb-sdl - The Gambas SDL component
gambas-gb-vb - The Gambas Visual Basic (tm) compatibility component
gambas-gb-xml - The Gambas Visual Basic (tm) compatibility component
gambas-runtime - The Gambas runtime

[]'s

[13] Comentário enviado por alessandrosouza em 17/02/2005 - 14:32h

Amigos,
sabem me informar se é possível eu chamar API´s nativas do Linux no Gambas (Declare do VB)... ???

muito grato

[14] Comentário enviado por roschel em 17/02/2005 - 15:38h

Cabelo, parabéns por mais um excelente TUTO, creio que este seja o melhor de todos!

Já havia visto o GAMBAS há algum tempo, e realmente este TUTO me motivou a converter meus projetos VB para Linux !!!

Valeu !!

[15] Comentário enviado por removido em 17/02/2005 - 16:18h

Isso ae, cabelo veio!!
Sempre testando novos tarecos!!
Precisamos de bastante gente assim, aqui!
Falou,
EJ

[16] Comentário enviado por andreson em 01/04/2005 - 10:29h

O GAMBAS ALÉM DE SER UMA ÓTIMA ALTERNATIVA A PROGRAMADORES VB (ATÉ MESMO INICIANTES), TEM CONTRIBUIÇÃO TAMBÉM DE BRASILEIROS (BAIANOS). É A PROVA DE QUE VALE A PENA SER LIVRE. O www.gambas.com.br, ESTÁ HOSPEDADO EM PLENO POLÍGONO DAS SECAS DO SERTÃO DA BAHIA, ONDE TODOS PENSAM QUE SÓ HÁ FOME E ÁRVORES SECAS.

Andreson de Oliveira Mota - Valente - BA

[17] Comentário enviado por felipebalbi em 09/05/2005 - 13:48h

Primeiro quero parabenizar o Cabelo que sempre tá postando ótimos artigos.

E agora eu tenho uma pergunta:

Tem alguma ferramenta do gênero Gambas, Lazarus que seja voltada para as bibliotecas GTK? (de preferência gtk2 =p)

Se tiver, por favor mail me:
felipebalbi 'at' linuxmail 'dot' org

[18] Comentário enviado por gsi.vinicius em 13/03/2006 - 16:29h

muito bom o software...eu tenho vários sistemas feitos em vb que precisavam mesmo passar par o mundo linux para baratear a implementação legalizada nas empresas....bacana também seu tutorial sobre o Mysql no gambas

[19] Comentário enviado por valdir.df em 25/03/2006 - 11:06h

Olá. Bom, sou da "idade da pedra"pois uso o basic desde os tempos em que o computador chupava pirulitos.
Fico um pouco com uma pulga-atrás-das-orelhas com este tal Gambas, mas confesso que estou curioso para fazer uns testes.
Tão achando mesmo que irei migrar minha aplicação VB que está em funcionamento em meus clientes, para a plataforma Linux? Bom amigo, com certeza só depois que eu fizer pelo menos uns "milhões" de testes.
Diz o velho poeta: antes uma pombinha na mão que mil voando.!
Vamos ver onde isto vai dar! :-)

[20] Comentário enviado por sombriks em 25/05/2006 - 02:40h

Cabeloooo!!! essa foi muito legal, vou apresentar ele para uns amigos meus que mexem com a RAD da micro$oft ede quebra eles me ensinam VB, ehehehehe!!!

aqui eu não consegui conectar no mysql (Slack 10.2, disse que faltou o driver), mas ainda assim foi muito show! fiz umas "telinhas felizes", como dirima meu amigo Mazela, eeeee!!!

[21] Comentário enviado por le.roque em 16/08/2006 - 14:13h

queria saber como fazer comunicação serial !

[22] Comentário enviado por zebendo em 04/11/2006 - 07:37h

eu programo em VB e talvez seja essa a unica coisa que faltava pra eu migrar tutalmente pro LINUX, valeu!!!! muito boa a matéria!!!

[23] Comentário enviado por batuta em 04/01/2007 - 21:48h

01012007.
Ola Cabelo tudo bem. Li o seu artigo e gostei. Tenho aplicações em Visual Basic e gostaria de migrar para o Gambas. Gostaria de informação como preparar o ambiente e modulos necessários para isso.

Batuta.

rbatuta@gmail.com
21 8666-6181

[24] Comentário enviado por julianlinuxer em 17/01/2007 - 14:00h

Cara, esse Gambas é muito massa, tô babando a dias com a simplicidade e intuitividade que ele tem em desenvolver aplicativos, ainda com a fácil integração com o banco MySql, o artigo tá muito legal!

[25] Comentário enviado por euclidestriches em 05/07/2007 - 16:18h

gostaria de entender uma coisa? como este pessoal do gnu linux ao redor do mundo consegue viver uma vez que tudo é grátis? como se alimentam? como moram? como se locomovem? como se vestem? como pagam suas contas? ou será que vivem do papai e da mamãe? acho que estas pessoas são verdadeiros santos milagrosos e merecem ser canonizados. agora mais esta uma ferramenta de desenvolvimento para atrair este pessoal do vb? se me responderem a minha dúvida juro que solicito a canonização de voces.

[26] Comentário enviado por Érico Schuch em 27/02/2008 - 20:33h

Caro amigo euclidestriches;
Você está certo em pensar assim. Mas veja bem, a 10 anos trabalho com programas livres, e em todo esse tempo, nunca pedi um centavo aos meus pais. Um exemplo de porque isso acontece é simples: Ou você cobra R$ 500 de licenças + R$ 100 de instalação/manutencão com programas proprietários ou cobra R$ 200 de instalação/manutenção por um programa livre.
E usando programas livres você tem a vantagem de poder você mesmo mudar o código, retirando ou adicionando partes, e se você achar interessante, distribui livremente.
Não é uma questão de vender o programa, e sim mostrar o quanto ele vale a pena ;)
Pense nisso.

E cabelo, obrigado. Estava a procura de exatamente isso !

[27] Comentário enviado por kai em 05/09/2008 - 18:39h

Fala ai cabelo... Cara parabéns pelo seu artigo.

Com certeza vai ajudar munto desevolvedor que está afim de migrar do windows para Linux..

Abraços

[28] Comentário enviado por jorginho_aspire em 26/05/2009 - 18:12h

Caro euclidestriches,
Suas perguntas são bem típicas de M$ users, mas vamos lá.

P: gostaria de entender uma coisa? como este pessoal do gnu linux ao redor do mundo consegue viver uma vez que tudo é grátis?
R: Através, e principalmente, de serviços. Desenvolvem o software com base na licença livre, mas oferecem serviços de consultoria a muitas empresas ao redor do mundo. Outra fonte de renda é através de doações de quem usa e necessita do software. As próprias empresas que usam normalmente contribuem para os projetos abertos. Ex: a IBPhoenix. Aqui no Brasil, a Firebase (mantida pelo Carlos Cantu) angaria fundos para manutenção do projeto Firebird. E os usuários tbm são chamados a contribuir. Também, não posso deixar de destacar que, programadores que contribuem para esses projetos livres de forma não mercadológica procuram aparecer no mercado, isto é, mostrar do que são capazes e posteriormente abrirem campo para empresas grandes. Eu, particularmente, os servers que monto eu cobro pelo serviço apenas, haja visto que o fato de adquirir um software proprietário (Ex: Windows Server) vc tbm pagará pelos serviços de implantação/manutenção da mesma forma, além das licenças, taxas e afins. Outra questão muito tocada aos críticos do SL é referente a garantia ou seja, dizem que o SL não oferece garantias de seu uso. Na minha experiência, salvo em casos onde a some de cifrões é bem grande, também não se tem garantia alguma ou, se tem, não é a contento. Eu uso diversas soluções free, tais como: Firebird, o proprio Linux, Virtual box, PHP, etc, e nunca fiquei na mão com nenhum desses programas, pois, a comunidade é unida e o pessoal ajuda muito.

P: acho que estas pessoas são verdadeiros santos milagrosos e merecem ser canonizados.
R: São mesmo, pois são preocupados com o sucesso de quem usa seus programas (acarretando no próprio sucesso profissional) e não simplesmente no poder que sua carteira tem (modelo de mercado típico de M$ e suas afiliadas, diga-se: Symantec, Borland e cia ltda)

P: agora mais esta uma ferramenta de desenvolvimento para atrair este pessoal do vb? se me responderem a minha dúvida juro que solicito a canonização de voces.
R: O monopolismo esfarrapado que M$ e cia ltda implantou no mundo parece ter tomado sua mente. É fato que qto mais opções vc tem, melhores produtos são oferecidos. Imagina se só a FIAT fabricasse carros no mundo. Não teriámos toda essa tecnologia automotiva que tem hj, e pq? Exatamente pq querem a todo instante conquistar uma fatia maior de clientes, de mercados. O mesmo acontece com TI. Se vc tem mais de um software que oferece recursos similares, vc tem mais qualidade, preço, isto é, a lei da concorrência. Veja o caso dos softwares de bancos de dados (vou citar os proprietários): Oracle e SQL-Server. Quantos recursos não foram desenvolvidos simplesmente para um ser melhor que o outro? Milhares... São duas opções, logo vc escolhe o que for melhor para solucionar seu(s) problema(s). Então, agradeça a comunidade do SL pq é apartir daqui que as maiores e melhores soluções nascem. Não vá acreditando que M$ e afins criam tudo isso que vc vê no seu desktop e sim, as pessoas que dedicam suas vidas ao SL.

[29] Comentário enviado por Renato_12 em 27/10/2009 - 19:36h

Opa, pelo que eu li deve ser bom mesmo!
Já estou baixando para testar!
Falou!
Ha!

[30] Comentário enviado por BraveDOG em 11/02/2017 - 10:12h

Desculpem-me ressuscitar o tópico, mas acho que a documentação do gambas bem fraca (a documentação e não o gambas). Estou com uma dúvida, é possível gerar um executável (.exe) da aplicação feita com o Gambas para que o mesmo rode em Windows ?? Alguém tem o caminho das pedras ? Obrigado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts