Progetto Gambas Linux

Gambas è un ambiente di sviluppo distribuito sotto licenza GNU GPLCon questo possiamo dire che non è solo un linguaggio di programmazione derivato dal linguaggio di base ma è anche uno strumento molto utile quando si creano applicazioni visive per quasi tutte le distribuzioni GNU/Linux.

In Gambas, il programmatore ha la possibilità di progettare graficamente finestre, trascinando oggetti dalla casella degli strumenti e quindi scrivendo il codice in base per ogni oggetto.

Come abbiamo visto in precedenza, Gambas si basa su un interprete di base con estensioni oggetto, simile a Visual Basic. Ma il vantaggio che abbiamo con Gambas è che puoi progettare rapidamente la tua applicazione grafica con QT o GTK +, accedere a database MySQL, PostgreSQL, Firebird, ODBC e SQLite, controllare applicazioni con DBUS, creare comandi Front End di Linux, eseguire applicazioni OpenGL 3D , crea applicazioni web CGI, genera pacchetti di installazione per varie distribuzioni, tra gli altri.

Per questo motivo, possiamo dire poi che in Gambas non è una copia o un clone di Visual Basic, poiché pur essendo basato su basic, è un'alternativa per creare programmi e applicazioni per ambienti GNU. Se guardiamo alla storia dei gamberi, scopriremo che la prima versione dei gamberi è stata rilasciata nel 1999 dal francese Benoît Minisini, creando un ambiente che ci permettesse di programmare e sviluppare facilmente applicazioni con un'interfaccia utente grafica.

All'inizio, il form del programma in Gambas era simile a quello di Gimp, con diverse finestre, e orientato all'uso di Qt e KDE. Quando ha fatto il salto alle versioni 2.x nel 2008, ha comportato una riprogettazione completa dell'interfaccia di programmazione grafica, integrando tutto in un'unica finestra e consentendo l'uso di GTK +. Nel 2011 è passato alla versione 3.x.

Cominciamo con il Installazione di Gambas3.

1. Come installare Gambas3


La semplicità di Gambas lo rende facile da usare quindi non è necessario conoscere alcun linguaggio di programmazione. Hai solo bisogno di avere un manuale gratuito e dedicarci un po' di tempo. Per questo motivo, è perfetto per imparare se sei appena agli inizi. Bene, impariamo come installarlo sul nostro sistema operativo Linux:

Per prima cosa, dobbiamo aprire il terminale di comando e inserire questi comandi uno per uno:

 sudo add-apt-repository ppa: gambas-team / gambas-daily sudo apt-get update sudo apt-get install gambas3 
Comandi di installazione di Gambas

Con questa riga di comando possiamo ottenere l'ultima versione rilasciata di Gambas. Attualmente stanno andando per 3.8.1, anche se consiglio di avere la versione più stabile che possiamo ottenere usando questi altri comandi, ma dobbiamo tenere presente che non possiamo mai aggiungere i due PPA contemporaneamente, possiamo averne solo uno dei due, questo è perché potremmo causare un errore e dovremmo ricominciare a pulire le installazioni precedenti.

2. Crea progetto Gambas con DB e report


La prima cosa che dobbiamo fare è progettare il database di cui abbiamo bisogno per memorizzare le nostre informazioni. Quello che vi propongo si chiamerà "studenti" e avrà due tavoli (studenti e materie).
 Tabella studenti: ID, ID, nomi, cognomi, indirizzo, telefono ed email. Tabella dei soggetti: id, nome_oggetto 
Per farlo utilizziamo un gestore molto semplice per la progettazione di database, chiamato Browser dati SQLite, lo apriamo e creiamo il database cliccando sul pulsante nuovo. Individuiamo dove lo salveremo e creeremo le tabelle secondo il design precedente.

Una volta creato, sarebbe simile a questo:

Lasceremo il campo ID come chiave primaria in entrambe le tabelle. Prima di chiudere il mini-manager, gli aggiungiamo alcuni dati per verificarne il funzionamento durante la progettazione dei moduli nel programma. Ora, se possiamo fare clic sul pulsante Salva e chiudere il mini gestore del browser di dati.

3. Esecuzione del programma Gambas


Apriamo Gambas e creiamo un nuovo progetto dandogli il nome e il percorso corrispondente:

INGRANDIRE

Per maggiore comodità, collochiamo il database creato all'interno della cartella creata per il progetto, in questo caso la cartella denominata GestionEstudiantes, così sarà facile individuarne il percorso nel programma.

 ‘Configuriamo il pulsante di uscita. Sub pubblico btnCerrar_Click () Esci Fine 
Abbiamo creato due nuovi moduli, per l'inserimento degli studenti e per le materie.

Ora configuriamo il pulsante per inserire gli studenti:

 Sub pubblico btnNuevoEstudiante_Click () FMain.Hide FormEstudiantes.Show End 
Configuriamo anche il pulsante aggiungi oggetto:
 Public Sub btnNuevaAsignatura_Click () FMain.Hide FormCourses.Show End 
Quindi lo avremo assegnato.

4. Progettazione del modulo per inserire gli studenti


Per iniziare, mettiamo a vista colonne e due pulsanti a cui inseriremo rispettivamente il nuovo testo e uscire (proprietà di testo).

Possiamo, se lo desideriamo, aggiungere un'icona a ciascun pulsante tramite la sua proprietà picture. Al vista colonne lo chiameremo semplicemente "tavola" (Nel nome della proprietà) è molto simile a qualsiasi tabella e stiamo cercando di mantenere questo primo progetto di database il più semplice possibile.

Chiameremo i pulsanti: btnnewesci.

Il modulo sarebbe simile a questo:

Configuriamo il pulsante di chiusura del form.

 Sub pubblico btnExit_Click () Me.Chiudi Fine 
Ora passiamo alla codifica.

5. Abbiamo iniziato a codificare Gambas


Inizieremo a inserire del codice nel nostro programma e lo commenteremo. La prima cosa in un database è la connessione ad esso. Per questo, Gambas ci fornisce il Oggetto connessione.

Tutto ciò che appare con un solo apostrofo nel codice è un commento che non verrà interpretato dal programma.

Esempio:

 'Project Test Private hconn As Connection' variabile per stabilire la connessione Private Function ConnectBase() As Boolean 'variabile per la connessione, restituisce un valore true o false If hconn Null Then Return False' controlliamo che la connessione non sia aperta hconn = New Connection 'Inizializziamo la connessione con il nuovo metodo e poi gli passiamo i parametri con hconn' parametro per il percorso del database hconn.Host = "/home/test" hconn.Name = "students" 'nome del database hconn.Type = " sqlite3" 'tipo database Try hconn.Open()' proviamo ad aprire la connessione se non ci riusciamo inviamo un messaggio di errore e gli diamo il valore null If Error Then hconn = Null Message.Error ("Failed to connect to il database") Return True Endif Return False End 
Dopo aver copiato il codice sopra, fai clic sull'opzione Esegui dal menu Debug. Se tutto va bene, non dovrebbe apparire alcun errore e ricomparirà la schermata del nostro progetto. Ciò significa che la connessione al nostro Database è stata effettuata in modo soddisfacente.

In caso di errore, ecco le possibili cause:

Cause di erroreDiamo un'occhiata ai tipi di cause:

1. Quando si copia e incolla il codice, è necessario tenere conto delle virgolette, che vengono spesso modificate durante il copia e incolla e quindi non vengono riconosciute dall'applicazione. In questo caso è consigliabile eliminare le virgolette e inserirle manualmente. Il codice all'interno delle virgolette deve essere in fucsia per sapere che è corretto.

2. Un altro possibile errore è non aver contrassegnato le opzioni corrispondenti nella scheda Proprietà del progetto, che si trova facendo clic sul menu Progetto, quindi su Proprietà e lì nella scheda Componenti, verificare che siano contrassegnate le seguenti opzioni:

  • bg
  • gb.db
  • gb.db.sqlite3
  • gb.form
  • gb.db.mysql (Questo non dovrebbe essere necessario per il database che creiamo, ma lo contrassegniamo comunque)

3. Un altro errore molto comune è il percorso in cui abbiamo sia il progetto che il database, ovvero dove si trovano le righe evidenziate nel codice da copiare e incollare.

Dopo aver corretto i possibili errori e verificato che la nostra applicazione funzioni, procediamo alla chiusura della connessione inserendo alla fine il seguente codice.

 PUBLIC SUB chiude la connessione () IF hconn = NULL THEN RETURN hconn.Close () hconn = NULL END 
Prima vediamo che non è più chiuso, altrimenti lo chiudiamo con .chiudere

6. Visualizza i dati memorizzati


Apriamo il form e all'interno del Processo di forma e mettiamo il seguente codice:

(Non dimenticare di controllare le virgolette che quando si incolla il codice potrebbero essere state modificate).

 Public Sub Form_Open() 'prima dichiariamo le variabili e cancelliamo la columnview Dim hresul As Result Dim key As String Dim filter As String table Clear If ConnectBase() Then Return' confermiamo la connessione con il database 'definiamo le proprietà per la columnview 'conta per numero di colonne' testo per il titolo delle colonne 'larghezza per la larghezza delle colonne' allineamento per l'allineamento dei campi. table.Columns.Count = 6 table.Columns [0] .Text = "Cedula" table.Columns [0] .Alignment = Align.Center table.Columns [0] .Width = 100 table.Columns [1] .Text = Tabella "Nomi".Colonne [1] .Allineamento = Allinea.Centro tabella.Colonne [1] .Larghezza = 120 Tabella.Colonne [2] .Testo = "Cognome" tabella.Colonne [2] .Allineamento = Allinea.Centro tabella .Colonne [2] .Larghezza = 120 tabella.Colonne [3] .Testo = tabella "Indirizzo".Colonne [3] .Allineamento = Allinea.Centro tabella.Colonne [3] .Larghezza = 120 tabella.Colonne [4]. Text = tabella "Telefono".Colonne [4] .Allineamento = Allinea.Centro tabella.Colonne [4] .Larghezza = 120 tabella.Colonne [5] .Testo = tabella "Posta".Colonne [5] .Allineamento = Allinea. Center table.Columns [5] .Width = 120 hresul = hconn.Exec ("seleziona * da studenti") 'Questa istruzione cerca nel database, se trova dati rende la variabile hresul vera e quindi disponibile (Disponibile) Do While hresul .Disponibile 'quindi passerà attraverso la tabella con un ciclo do while basato sulla chiave (Cedula) e riempirà la tabella con i dati. key = hresul ["ID"] 'rendiamo il campo ID come primario per le ricerche in tabella. Aggiungi (password, password)' aggiungiamo i dati trovati nel database. tabella [chiave] [1] = hresul ["nomi"] tabella [chiave] [2] = hresul ["cognome"] tabella [chiave] [3] = hresul ["indirizzo"] tabella [chiave] [4] = hresul ["telefono"] tabella [tasto] [5] = hresul ["mail"] hresul.MoveNext () 'questa istruzione fa avanzare la ricerca al ciclo dati successivo' Riesegue le istruzioni all'interno del ciclo finché non ce ne sono più dati da visualizzare. CloseConnection() 'chiude la connessione End 
Processo di forma

Alla fine lo eseguiamo e ne controlliamo il funzionamento, che restituirà il seguente risultato:

INGRANDIRE

7. Crea modulo per inserire i dati dello studente


Ora creeremo un nuovo modulo che ci permetta di inserire i dati per i nuovi studenti, il nome suggerito è edata.

Avrà i seguenti oggetti: 6 etichette per etichette, 6 caselle di testo e due pulsanti.

La disposizione suggerita è la seguente:

Per vedere se tutto sta andando bene, andiamo al modulo che mostra l'elenco degli studenti e configuriamo il nuovo pulsante come segue:

INGRANDIRE

Se non ci sono errori e tutto va bene, andiamo a configurare il form appena creato per inserire nuovi dati studente. Questo modulo riceverà un riferimento a un oggetto di tipo connessione, nel nostro caso hconn quindi lo mettiamo all'inizio della nostra forma.

 'Gambas class file' prima configuriamo la connessione Private hconn As Connection 'creiamo un metodo runnew che verrà chiamato dal form che elenca gli studenti Public Sub runnew (data As Connection) hconn = data' riferimento per il form precedente Me. ShowModal () 'forza l'interazione con il form prima di chiuderlo End Configuriamo il pulsante di annullamento: Public Sub btnCancelar_Click () Me.Close (0) End Per inserire nuovi dati, utilizzeremo la seguente istruzione: TRY hconn.EXEC (“ inserisci in mytable i valori ( & 1, & 2, & 3, & 4, & 5. & 6) ”, txtid, txtname, txlastname, txtphone, txtmobile, txtcumple) exec I campi verranno chiamati da una e commerciale e il indice corrispondente come mostrato di seguito. (& 1, & 2, & 3, & 4, & 5. & 6) 
Torniamo al form precedente e configuriamo il pulsante accetta come segue:

INGRANDIRE

Per prima cosa proviamo a connetterci al nostro database, se non ci riusciamo, usciamo. Una volta stabilita la connessione, abbiamo chiamato runnewde metodo fdata. Poiché questo modulo viene visualizzato in forma modale, questo codice sta aspettando che inseriamo dati in fdata o semplicemente lo chiudiamo.

Quindi chiude la connessione e chiama il metodo form_open che ricarica i dati per mostrare le modifiche apportate. Ora vedremo come fare per modificare un record, ad esempio se un amico cambia il cellulare, basta modificare quel campo.

Approfittiamo dell'evento di attivazione del nostro controllo vista colonne (tabella) per aggiungere questa funzionalità. Questo evento viene attivato facendo doppio clic su qualsiasi colonna della tabella.

 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 ) 'Chiama il metodo runeedit della forma edata table.Current [0] = hresul ["ID"] table.Current [1] = hresul ["first names"] table.Current [2] = hresul ["cognomi "] table. Current [3] = hresul ["indirizzo"] table.Current [4] = hresul ["phone"] table.Current [5] = hresul ["mail"] closeConnection () End 
Attiva evento

La riga in grassetto è quella che chiama il edata runedit metodo. Poiché non abbiamo ancora creato questo metodo, se proviamo a eseguirlo ora, non funzionerà.

Torniamo dunque a età e posizioniamo le seguenti variabili all'inizio del form in modo che siano accessibili dall'intero form.

 Private hconn As Connection Private hresul As Result Modifica privata As Boolean 
Quindi creiamo il nuovo metodo chiamato runedit:
 Public Sub runedit (data As Result) hresul = modifica dati = True txtCedula.Text = hresul ["ID"] txtName.Text = hresul ["firstname"] txtName.Text = hresul ["last name"] txtAddress.Text = hresul [ "address"] txtTelephone.Text = hresul ["telefono"] txtEmail.Text = hresul ["mail"] Me.ShowModal End 
Questo ci mostra edata con i dati del record selezionato in modo che possiamo modificarlo e mette la variabile editing con il valore true. Ciò è necessario in modo che l'utilizzo di un'istruzione condizionale quando si fa clic btna accettare Distinguere tra nuovo e modificare.

Possiamo testarlo anche se non funzionerà ancora, manca ancora imposta il pulsante di accettazione, ma possiamo verificare che ci porti al modulo richiesto.

Configuriamo il pulsante Accetta per salvare le modifiche:

 Public Sub btnAccept_Click () Se si modifica, quindi provare hresul ["cedula"] = txtCedula.Text Try hresul ["names"] = txtNames.Text Try hresul ["surnames"] = txtSurname.Text Try hresul ["address"] = txtAddress .Text Prova hresul ["phone"] = txtTelephone.Text Prova hresul ["mail"] = txtEmail.Text Prova hresul.Update Else Prova hconn.Exec ("inserisci nei valori degli studenti (& 1, & 2, & 3 , & 4, & 5, & 6) ", txtCedula.Text, txtNome.Testo, txtCognome.Testo, txtIndirizzo.Testo, txtTelefono.Testo, txtEmail.Testo) 'con questo inseriamo le informazioni inviate Endif Me.Close () Catch Message.Error ("Impossibile inserire i dati inviati") Fine 
Ora possiamo salvare le modifiche.

8. Configura ricerca dati


Aggiungiamo un pulsante di ricerca e una casella di testo al modulo. Questo è il nuovo look del modulo:

INGRANDIRE

Configuriamo il pulsante di ricerca in modo simile al nuovo pulsante, questo è il codice:

 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 = Allinea.Centra tabella.Colonne [0] .Larghezza = 100 tabella.Colonne [1] .Testo = "Nomi" tabella.Colonne [1] .Allineamento = Allinea.Centra tabella.Colonne [1] .Larghezza = 120 tabella.Colonne [2] .Testo = "Cognome" tabella.Colonne [2] .Allineamento = Allinea.Centra tabella.Colonne [2] .Larghezza = 120 tabella.Colonne [3] .Testo = tabella "Indirizzo". Colonne [3] .Allineamento = Allinea.Centra tabella.Colonne [3] .Larghezza = 120 tabella.Colonne [4] .Testo = "Telefono" tabella.Colonne [4] .Allineamento = Allinea.Centra tabella.Colonne [4] Larghezza = 120 tabella.Colonne [5] .Testo = tabella "Posta".Colonne [5] .Allineamento = Allinea.Centra tabella.Colonne [5] .Larghezza = 120 filter = txtBuscar.Text hresul = hconn.Exec (" select * from Students dove nomi come '"& filter &"' "") Do While hresul.Available key = hresul ["ID "] table.Add (key, key) table [key] [1] = hresul [" name res "] tabella [password] [2] = hresul [" cognome "] tabella [password] [3] = hresul [" indirizzo "] tabella [password] [4] = hresul [" telefono "] tabella [password] [ 5] = hresul ["mail"] hresul.MoveNext () Loop closeConexion () End 
Con quello che abbiamo fatto, possiamo già essere chiari sul processo, ora faremo lo stesso con il modulo per i soggetti. Il layout suggerito è il seguente:

Come sempre, la prima cosa che andremo a programmare è il pulsante di uscita:

 Sub pubblico btnExit_Click () Me.Chiudi Fine 
Ora effettueremo la connessione al database:
 Private hconn As Connection Private Function connectbase () As Boolean If hconn Null Then Return False hconn = New Connection hconn.Host = "/ home / test" hconn.Name = "students" 'nome database hconn.Type = " sqlite3 "'database digitare Try hconn.Open () If Error Then hconn = Null Message.Error ("Errore durante la connessione al database") Return True Endif Return False End 
Fissiamo l'evento per chiudere il collegamento:
 Public Sub closeConexion () If hconn = Null Then Return hconn.Close () hconn = Null End 
Ora visualizziamo i dati nel vista colonne, in caso di forma aperta.

Il codice è il seguente:

 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 dell'oggetto o del corso" hresul = hconn.Exec ("seleziona * dagli argomenti") Do While hresul.Available key = hresul ["id"] table2.Add (chiave, chiave) table2 [chiave] [1] = hresul ["nome_materia"] hresul.MoveNext () Loop closeConnection () End 
Ora creiamo il form per aggiungere e/o modificare i dati della tabella, delle materie o dei corsi. Il nome suggerito è adata. (interessato).

9. Programmiamo il pulsante di chiusura

 Sub pubblico btnCerrar_Click () Me.Chiudi Fine 
Creiamo il riferimento ad un oggetto di tipo connection, nel nostro caso hconn, quindi all'inizio del nostro form adata posizioneremo il seguente codice:
 Hconn privato come connessione 
Inoltre, creiamo il metodo runnew che verrà chiamato dal form principale. La sintassi è la seguente:
 Public Sub runnew (data As Connection) hconn = data Me.ShowModal () End 
Ora andiamo al form per inserire i dati dei soggetti e nell'evento btnnuevo click inseriamo il seguente codice:
 Public Sub btnNuevo_Click () If connectbase () Then Return adata.runnew (hconn) closeConexion () Form_Open () End 
Ora possiamo prova un nuovo pulsante di detta forma.

Continuando con la stessa forma, codifichiamo il metodo per modificare i record come segue. Approfittiamo dell'evento di attivazione del nostro controllo colonna (tabella) per aggiungere questa funzionalità. Questo evento viene attivato facendo doppio clic su qualsiasi colonna della tabella.

 Public Sub table2_Activate () Dim hresul As Result If table2.Current = Null Then Return If connectbase () Then Return hresul = hconn.Edit ("subjects", "id = & 1", table2.Current.Key) adata.runedit ( hresul ) table2.Current [0] = hresul ["id"] table2.Current [1] = hresul ["matter_name"] closeConnection () End 
Ricorda che non funzionerà finché non avremo creato questo evento nel modulo adata. Torniamo dunque a fdata e posizioniamo le seguenti variabili all'inizio del form in modo che siano accessibili dall'intero form.
 PRIVATO hconn AS Connessione PRIVATO hresul AS Risultato PRIVATO editing AS Booleano 
Creiamo il metodo runedit il cui codice è il seguente:
 Public Sub runedit (dati come risultato) hresul = modifica dei dati = True txtAsignaturas.Text = hresul ["nome_soggetto"] Me.ShowModal End 
Ricordati di fare il test per verificare che tutto stia andando bene. Ora programmiamo il pulsante di accettazione come segue:
 Public Sub btnAceptar_Click () Se si modifica, quindi provare hresul ["subject_name"] = txtAsignaturas.Text Provare hresul.Update Else Provare hconn.Exec ("inserire nei valori del nome oggetto (& 1)", txtAsignaturas.Text) Endif Me.Close () Catch Message.Error ("Impossibile inserire i dati inviati") Fine 
Ora programmiamo la routine di ricerca per soggetto:
 Public Sub btnBuscar_Click () Dim hresul As Risultato 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 dell'oggetto o del corso" filter = txtBuscar.Text hresul = hconn.Exec ("seleziona * da argomenti in cui nome_oggetto come '" & filter & "' ") Do While hresul.Available key = hresul [" id "] table2.Add (key, key) table2 [key] [1] = hresul [" matter_name "] hresul.MoveNext () Loop closeConexion () End 
Lo avremo pronto.

Conclusioni sui gamberi
Per le persone che hanno realizzato un'applicazione in Visual Basic e sono interessate alla programmazione, questo è uno degli strumenti che senza dubbio ti interesserà ed è un'opzione chiara che dovresti considerare.

Grazie ai test che possiamo vedere in questo tutorial, possiamo vedere che è facile da lavorare e davvero non ci vuole molto tempo per creare qualche altra semplice applicazione per Linux.

Come possiamo vedere, il completamento automatico che ha i gamberi è limitato all'oggetto con cui stai lavorando, non come nel caso di Geany, che può metterti addosso qualsiasi cosa. Dobbiamo dargli punti poiché funziona come Java e Netbeans e senza ulteriori complicazioni.

Quindi, per coloro che vogliono imparare a programmare semplici applicazioni in Linux e sono curiosi, consigliamo di provare Gambas3.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave