Proiectul Gambas Linux

Gambas este un mediu de dezvoltare distribuit sub licența GNU GPLCu aceasta putem spune că nu este doar un limbaj de programare derivat din limbajul de bază, ci este și un instrument foarte util atunci când construiești aplicații vizuale pentru aproape orice distribuție GNU / Linux.

În Gambas, programatorul are posibilitatea de a proiecta grafic ferestrele, de a trage obiecte din caseta de instrumente și apoi de a scrie codul de bază pentru fiecare obiect.

După cum am văzut mai devreme, Gambas se bazează pe un interpret de bază cu extensii de obiecte, similar cu Visual Basic. Dar avantajul pe care îl avem cu Gambas este că vă puteți proiecta rapid aplicația grafică cu QT sau GTK +, să accesați bazele de date MySQL, PostgreSQL, Firebird, ODBC și SQLite, să controlați aplicații cu DBUS, să creați comenzi front-end de Linux, să faceți aplicații 3D OpenGL , realizează aplicații web CGI, generează pachete de instalare pentru diferite distribuții, printre altele.

Din acest motiv, putem spune atunci că în Gambas nu este o copie sau clonă a Visual Basic, deoarece, deși se bazează pe baza, este o alternativă pentru a crea programe și aplicații pentru medii GNU. Dacă ne uităm la istoria creveților, vom constata că prima versiune a creveților a fost lansată în 1999 de francezul Benoît Minisini, creând un mediu care să ne permită să programăm și să dezvoltăm cu ușurință aplicații cu o interfață grafică cu utilizatorul.

La început, forma programului în Gambas era similară cu cea a lui Gimp, cu mai multe ferestre și orientată spre utilizarea Qt și KDE. Când a făcut saltul la versiunile 2.x în 2008, a presupus o reproiectare completă a interfeței de programare grafică, integrând totul într-o singură fereastră și permițând utilizarea GTK +. În 2011 a trecut la versiunea 3.x.

Să începem cu Instalare Gambas3.

1. Cum se instalează Gambas3


Simplitatea Gambas îl face ușor de utilizat, deci nu este necesar să cunoașteți niciun limbaj de programare. Trebuie doar să aveți un manual gratuit și să petreceți ceva timp pe el. Din acest motiv, este perfect pentru a învăța dacă abia începeți. Ei bine, să învățăm cum să-l instalăm pe sistemul nostru de operare Linux:

Mai întâi, trebuie să deschidem terminalul de comandă și să introducem aceste comenzi una câte una:

 sudo add-apt-repository ppa: gambas-team / gambas-daily sudo apt-get update sudo apt-get install gambas3 
Comenzi de instalare Gambas

Cu această linie de comandă putem obține cea mai recentă versiune lansată a Gambas. În prezent, acestea merg pentru 3.8.1, deși vă recomand să aveți cea mai stabilă versiune pe care o putem obține folosind aceste alte comenzi, dar trebuie să avem în vedere că nu putem adăuga niciodată cele două PPA-uri în același timp, putem avea doar una dintre cele două, acest lucru se datorează faptului că am putea provoca o eroare și ar trebui să începem din nou curățarea instalațiilor anterioare.

2. Creați un proiect Gambas cu DB și raportați


Primul lucru pe care trebuie să-l facem este să proiectăm baza de date de care avem nevoie pentru a ne stoca informațiile. Cel pe care îl propun se va numi „studenți” și va avea două tabele (studenți și subiecte).
 Tabelul studenților: ID, ID, nume, prenume, adresă, telefon și e-mail. Tabel subiecte: id, nume_subiect 
Pentru a face acest lucru, folosim un manager foarte simplu pentru proiectarea bazelor de date, numit SQLite Browser de date, o deschidem și creăm baza de date făcând clic pe noul buton. Localizăm unde îl vom salva și vom crea tabelele conform designului anterior.

Odată creat, ar arăta astfel:

Vom lăsa câmpul ID ca cheie principală în ambele tabele. Înainte de a închide mini-managerul, adăugăm câteva date la acesta pentru a verifica funcționarea acestuia atunci când proiectăm formularele din program. Acum, dacă putem face clic pe butonul de salvare și închiderea mini manager de browser de date.

3. Realizarea programului Gambas


Deschidem Gambas și creăm un nou proiect dându-i numele și calea corespunzătoare:

MARI

Pentru o mai mare comoditate, plasăm baza de date creată în folderul creat pentru proiect, în acest caz folderul numit GestionEstudiantes, deci va fi ușor atunci când îi localizăm calea în program.

 ‘Configurăm butonul de ieșire. Public Sub btnCerrar_Click () Quit End 
Am creat două noi forme, pentru introducerea elevilor și pentru materii.

Acum configurăm butonul pentru a introduce studenți:

 Public Sub btnNuevoEstudiante_Click () FMain.Hide FormEstudiantes.Show End 
De asemenea, configurăm butonul Adăugare subiect:
 Public Sub btnNuevaAsignatura_Click () FMain.Hide FormCourses.Show End 
Așa că îl vom atribui.

4. Proiectarea formularului de intrare a elevilor


Pentru început, punem un columview și două butoane la care vom pune noul text și vom ieși respectiv (Proprietate text).

Putem, dacă dorim, să adăugăm o pictogramă la fiecare buton prin proprietatea sa de imagine. Pentru columview o vom numi pur și simplu „masă” (În numele proprietății) este foarte asemănător cu orice tabel și încercăm să menținem acest prim proiect de bază de date cât mai simplu posibil.

Vom apela butoanele: btnnew Da ieși.

Formularul ar arăta astfel:

Configurăm butonul de închidere al formularului.

 Public Sub btnExit_Click () Me.Close End 
Acum trecem la codificare.

5. Am început să codificăm Gambas


Vom începe să introducem un cod în programul nostru și îl vom comenta. Primul lucru dintr-o bază de date este conexiunea la aceasta. Pentru aceasta, Gambas ne oferă Obiect de conexiune.

Tot ceea ce apare cu un singur apostrof în cod este un comentariu care nu va fi interpretat de program.

Exemplu:

 Variabila „Proiect test privat hconn ca conexiune” pentru a stabili conexiunea Funcție privată ConnectBase () Ca variabilă booleană pentru conexiune, returnează o valoare adevărată sau falsă Dacă hconn Nul Apoi Returnează fals ”verificăm dacă conexiunea nu este deschisă hconn = Nou Conexiune 'Inițializăm conexiunea cu noua metodă și apoi îi trecem parametrii cu parametrul hconn' pentru calea bazei de date hconn.Host = "/ home / test" hconn.Name = "elevi" 'numele bazei de date hconn.Type = " sqlite3 "'tip de bază de date Încercați hconn.Open ()' încercăm să deschidem conexiunea dacă nu reușim, trimitem un mesaj de eroare și îi dăm valoarea nulă Dacă eroare Atunci hconn = Mesaj nul. Eroare (" Nu s-a conectat la baza de date ") Returnează True Endif Returnează False End 
După ce ați copiat codul de mai sus, faceți clic pe opțiunea Run din meniul Debug. Dacă totul merge bine, nu ar trebui să apară nicio eroare și ecranul proiectului nostru va apărea din nou. Ceea ce înseamnă că conexiunea la baza noastră de date a fost realizată în mod satisfăcător.

În cazul unei erori, iată care sunt cauzele posibile:

Cauzele eroriiSă ne uităm la tipurile de cauze:

1. Când copiați și lipiți codul, trebuie să țineți cont de ghilimele, care sunt adesea schimbate la copiere și lipire și, prin urmare, nu sunt recunoscute de aplicație. În acest caz, este recomandabil să ștergeți ghilimelele și să le plasați manual. Codul din ghilimele trebuie să fie în fucsia pentru a ști că este corect.

2. O altă posibilă eroare este faptul că nu ați marcat opțiunile corespunzătoare în fila Proprietăți proiect, care poate fi găsită făcând clic pe meniul Proiect, apoi Proprietăți și acolo în fila Componente, verificați dacă sunt marcate următoarele opțiuni:

  • bg
  • gb.db
  • gb.db.sqlite3
  • gb.form
  • gb.db.mysql (Acest lucru nu ar trebui să fie necesar pentru baza de date pe care o realizăm, dar o marcăm oricum)

3. O altă eroare foarte frecventă este calea în care avem atât proiectul, cât și baza de date, unde liniile evidențiate se află în codul care trebuie copiat și lipit.

După corectarea posibilelor erori și verificarea funcționării aplicației noastre, continuăm să închidem conexiunea plasând următorul cod la final.

 PUBLIC SUB închidere conexiune () IF hconn = NULL THEN RETURN hconn.Close () hconn = NULL END 
Mai întâi vedem că nu mai este închis, dacă nu, îl închidem cu .închide

6. Vizualizați datele stocate


Deschidem formularul și în cadrul Procesul formularului și punem următorul cod:

(Nu uitați să verificați ghilimelele care la lipirea codului ar fi putut fi modificate).

 Public Sub Form_Open () 'mai întâi declarăm variabilele și ștergem vizualizarea coloanei Dim hresul Ca rezultat Dim cheie Ca șir Dim filtru Ca șir Ștergeți dacă ConnectBase () Apoi Returnare' confirmăm conexiunea cu baza de date 'definim proprietățile pentru coloana textul „numărare pentru numărul de coloane” pentru titlul lățimii coloanelor pentru lățimea alinierii coloanelor pentru alinierea câmpurilor. table.Columns.Count = 6 table.Columns [0] .Text = "Cedula" table.Columns [0] .Alignment = Align.Center table.Columns [0] .Width = 100 table.Columns [1] .Text = Tabelul „Nume ”.Columns [1] .Alignment = Align.Center table.Columns [1] .Width = 120 table.Columns [2] .Text = Tabelul„ Prenume ”.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 = tabel "Telefon" .Columns [4] .Alignment = Align.Center table.Columns [4] .Width = 120 table.Columns [5] .Text = "Mail" table.Columns [5] .Alignment = Align. Centrul tabelului. Coloane [5] .Lățime = 120 hresul = hconn.Exec ("selectați * din studenți") 'Această instrucțiune caută în baza de date, dacă găsește date, face ca variabila hresul să fie adevărată și, prin urmare, disponibilă (Disponibil) Do While hresul .Disponibil 'atunci va trece prin tabel cu o buclă do while bazată pe cheie (Cedula) și va umple tabelul cu datele. cheie = hresul ["ID"] "facem câmpul ID ca primar pentru căutările în tabel. Adăugați (parolă, parolă)" adăugăm datele găsite în baza de date. table [key] [1] = hresul ["names"] table [key] [2] = hresul ["surname"] table [key] [3] = hresul ["address"] table [key] [4] = hresul ["phone"] table [key] [5] = hresul ["mail"] hresul.MoveNext () 'această instrucțiune avansează căutarea la următoarea buclă de date' Re-execută instrucțiunile din interiorul buclei până când nu mai există datele de afișat. CloseConnection () 'închide conexiunea End 
Procesul formularului

La final, îl rulăm și verificăm funcționarea acestuia, ceea ce va întoarce următorul rezultat:

MARI

7. Creați un formular pentru a introduce datele elevilor


Acum vom crea un nou formular care ne permite să introducem date pentru studenți noi, numele sugerat pentru acesta este edata.

Va avea următoarele obiecte: 6 etichete de etichete, 6 casete de text și două butoane.

Aspectul sugerat este după cum urmează:

Pentru a vedea dacă totul merge bine, mergem la formularul care afișează lista studenților și configurăm noul buton după cum urmează:

MARI

Dacă nu există erori și totul merge bine, să continuăm să configurăm formularul nou creat pentru a introduce date noi despre elevi. Acest formular va primi o referință la un obiect de tip conexiune, în cazul nostru hconn de aceea o plasăm la începutul formei noastre.

 „Fișierul clasei Gambas” configurăm mai întâi conexiunea Private hconn As Connection ”creăm o metodă runnew care va fi apelată din formularul care listează studenții Public Sub runnew (date As Connection) hconn = referință de date pentru formularul anterior Me. ShowModal () 'forțează să interacționeze cu formularul înainte de a-l închide Sfârșit Configurăm butonul de anulare: Public Sub btnCancelar_Click () Me.Close (0) End Pentru a introduce date noi, vom folosi următoarea instrucțiune: TRY hconn.EXEC („ introduceți în valorile tabelului meu (& 1, & 2, & 3, & 4, & 5. & 6) ”, txtid, txtname, txlastname, txtphone, txtmobile, txtcumple) exec Câmpurile vor fi apelate de un semn indicele corespunzător, așa cum se arată mai jos. (& 1, & 2, & 3, & 4, & 5. & 6) 
Să ne întoarcem la formularul anterior și să configurăm butonul de acceptare după cum urmează:

MARI

Mai întâi încercăm să ne conectăm la baza noastră de date, dacă nu reușim, plecăm. Odată ce conexiunea a fost realizată, am sunat metoda runnewde fdata. Deoarece acest formular este afișat în formă modală, acest cod așteaptă să introducem date în fdata sau pur și simplu îl închidem.

Apoi închide conexiunea și apelează metoda form_open care reîncarcă datele pentru a afișa modificările făcute. Acum vom vedea cum facem pentru a modifica o înregistrare, de exemplu, dacă un prieten schimbă telefonul mobil, trebuie doar să editați acel câmp.

Vom profita de evenimentul activ al controlului nostru colunmview (tabel) pentru a adăuga această funcționalitate. Acest eveniment este declanșat făcând dublu clic pe orice coloană din tabel.

 Public Sub table_Activate () Dim hresul Ca rezultat If table.Current = Null Then Return If ConnectBase () Then Return hresul = hconn.Edit ("students", "ID = & 1", table.Current.Key) edata.runedit ( hresul) 'Apelați metoda runeedit a tabelului edata formular.Current [0] = hresul ["ID"] table.Current [1] = hresul ["first names"] table.Current [2] = hresul ["last names "] table. Current [3] = hresul [" address "] table.Current [4] = hresul [" phone "] table.Current [5] = hresul [" mail "] closeConnection () End 
Activați evenimentul

Linia cu caractere aldine este cea care apelează edata runedit method. Deoarece nu am creat încă această metodă, dacă încercăm să o rulăm acum, aceasta nu va funcționa.

Să revenim, așadar, la vârstă și să plasăm următoarele variabile la începutul formularului, astfel încât să fie accesibile din întregul formular.

 Private hconn As Connection Private hresul As Result Editare privată ca Boolean 
Apoi, să creăm noua metodă numită runedit:
 Public Sub runedit (data As Result) hresul = editarea datelor = True txtCedula.Text = hresul ["ID"] txtName.Text = hresul ["firstname"] txtName.Text = hresul ["last name"] txtAddress.Text = hresul ["address"] txtTelephone.Text = hresul ["telephone"] txtEmail.Text = hresul ["mail"] Me.ShowModal End 
Aceasta ne arată edate cu datele înregistrării selectate, astfel încât să o putem edita și pune modificarea variabilă cu valoarea true. Acest lucru este necesar, astfel încât să utilizați o declarație condițională atunci când faceți clic btna accepta Distingeți între nou și modificați.

Îl putem testa, deși încă nu va funcționa, tot lipsește butonul de acceptare, dar putem verifica dacă ne duce la formularul solicitat.

Să configurăm butonul de acceptare pentru a salva modificările:

 Public Sub btnAccept_Click () Dacă editați Apoi Încercați hresul ["cedula"] = txtCedula.Text Încercați hresul ["names"] = txtNames.Text Încercați hresul ["surnames"] = txtSurname.Text Try hresul ["address"] = txtAddress .Text Încercați hresul ["telefon"] = txtTelephone.Text Încercați hresul ["mail"] = txtEmail.Text Încercați hresul.Update Else Încercați hconn.Exec ("introduceți în valorile elevilor (& 1, & 2, & 3 , & 4, & 5, & 6) ", txtCedula.Text, txtName.Text, txtSurname.Text, txtAddress.Text, txtTelephone.Text, txtEmail.Text) 'cu aceasta introducem informațiile trimise Endif Me.Close () Catch Message.Error („Imposibil de introdus datele trimise”) Sfârșit 
Acum putem salva modificările.

8. Configurați căutarea datelor


Să adăugăm un buton de căutare și o casetă text la formular. Acesta este noul aspect al formularului:

MARI

Configurăm butonul de căutare într-un mod similar cu noul buton, acesta este codul:

 Public Sub btnBuscar_Click () Dim hresul Ca rezultat Dim cheie Ca șir Dim filtru Ca șir de tabel. Ștergeți dacă ConnectBase () Apoi Returnează table.Columns.Count = 6 table.Columns [0] .Text = "Cedula" table.Columns [0 ] .Alignment = Align.Center table.Columns [0] .Width = 100 table.Columns [1] .Text = "Nume" table.Columns [1] .Alignment = Align.Center table.Columns [1] .Width = 120 table.Columns [2] .Text = "Last name" table.Columns [2] .Alignment = Align.Center table.Columns [2] .Width = 120 table.Columns [3] .Text = "Address" table. Coloane [3] .Alignment = Align.Center table.Columns [3] .Width = 120 table.Columns [4] .Text = "Phone" table.Columns [4] .Alignment = Align.Center table.Columns [4] . Lățime = 120 table.Columns [5] .Text = "Mail" table.Columns [5] .Alignment = Align.Center table.Columns [5] .Width = 120 filter = txtBuscar.Text hresul = hconn.Exec (" selectați * din studenți unde nume precum '"& filtrează &"' ") Faceți în timp ce hresul.Available key = hresul [" ID "] table.Add (key, key) table [key] [1] = hresul [" name res "] table [password] [2] = hresul [" surname "] table [password] [3] = hresul [" address "] table [password] [4] = hresul [" phone "] table [password] [ 5] = hresul ["mail"] hresul.MoveNext () închidere buclăConectare () End 
Cu ceea ce am făcut, putem fi deja clari despre proces, acum vom face același lucru cu formularul pentru subiecte. aspect sugerat este următorul:

Ca întotdeauna, primul lucru pe care îl vom programa este butonul de ieșire:

 Public Sub btnExit_Click () Me.Close End 
Acum vom face conexiunea la baza de date:
 Private hconn Ca conexiune Funcție privată connectbase () Ca boolean Dacă hconn Nul, apoi Returnează False hconn = Conexiune nouă hconn.Host = "/ home / test" hconn.Name = numele de bază de date "elevi" hconn.Type = baza de date "sqlite3" tastați Încercați hconn.Open () Dacă eroare Apoi hconn = Null Message.Error („Eroare la conectarea bazei de date”) Returnează True Endif Returnează False End 
Programăm evenimentul pentru a închide conexiunea:
 Public Sub closeConexion () Dacă hconn = Null, apoi Returnează hconn.Close () hconn = Null End 
Acum vizualizăm datele din columview, în cazul deschis al formularului.

Codul este următorul:

 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 = "Numele subiectului sau cursului" hresul = hconn.Exec ("selectați * din subiecte") Faceți În timp ce hresul.Available key = hresul ["id"] table2.Add (key, key) table2 [key] [1] = hresul ["matter_name"] hresul.MoveNext () Loop closeConnection () End 
Acum creăm formularul pentru a adăuga și / sau edita datele din tabel, subiecte sau cursuri. Numele sugerat este adata. (persoane vizate).

9. Programăm butonul de închidere

 Public Sub btnCerrar_Click () Me.Close End 
Creăm referința la un obiect de tip conexiune, în cazul nostru hconn, de aceea la începutul formularului nostru de date vom plasa următorul cod:
 Hconn privat ca conexiune 
În plus, creăm metoda runnew care va fi apelată din formularul principal. Sintaxa este următoarea:
 Public Sub runnew (date As Connection) hconn = data Me.ShowModal () End 
Acum mergem la formular pentru a introduce datele subiecților și în evenimentul de clic btnnuevo plasăm următorul cod:
 Public Sub btnNuevo_Click () If connectbase () Apoi Returnează adata.runnew (hconn) closeConexion () Form_Open () End 
Acum putem încercați butonul nou a formei respective.

Continuând cu același formular, codificăm metoda de modificare a înregistrărilor după cum urmează. Vom profita de activarea evenimentului nostru control colunmview (tabel) pentru a adăuga această funcționalitate. Acest eveniment este declanșat făcând dublu clic pe orice coloană din tabel.

 Public Sub table2_Activate () Dim hresul Ca rezultat 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 
Amintiți-vă că nu va funcționa până când nu vom crea acest eveniment în formularul adata. Să revenim, așadar, la fdata și să plasăm următoarele variabile la începutul formularului, astfel încât să fie accesibile din întregul formular.
 PRIVATE hconn AS Connection PRIVATE hresul AS Rezultat PRIVATE editing AS Boolean 
Creăm metoda runedit al cărei cod este următorul:
 Public Sub runedit (data As Result) hresul = editarea datelor = True txtAsignaturas.Text = hresul ["subject_name"] Me.ShowModal End 
Nu uitați să testați pentru a verifica dacă totul merge bine. Acum programăm butonul de acceptare după cum urmează:
 Public Sub btnAceptar_Click () Dacă editați Apoi Încercați hresul ["subject_name"] = txtAsignaturas.Text Încercați hresul.Update Altfel Încercați hconn.Exec ("inserare în valorile subiect_nume (& 1)", txtAsignaturas.Text) Endif Me.Close () Catch Message.Error („Nu se pot introduce datele trimise”) Sfârșit 
Acum programăm rutina de căutare a subiectului:
 Public Sub btnBuscar_Click () Dim hresul Ca rezultat Dim cheie Ca șir Dim filtru Ca șir de tabel2.Clar Dacă connectbase () Apoi Returnează tabel2.Columns.Count = 2 tabel2.Coloane [0] .Text = "id" tabel2.Coloane [0 ] .Alignment = Align.Right table2.Columns [1] .Text = "Numele subiectului sau cursului" filter = txtBuscar.Text hresul = hconn.Exec ("selectați * din subiecte unde subiectul_nume, cum ar fi '" & filtru & "' ") Do While hresul.Available key = hresul [" id "] table2.Add (key, key) table2 [key] [1] = hresul [" matter_name "] hresul.MoveNext () Loop closeConexion () End 
O vom avea gata.

Concluzii privind creveții
Pentru persoanele care au creat o aplicație în Visual Basic și sunt interesate de programare, acesta este unul dintre instrumentele care vă vor interesa fără îndoială și este o opțiune clară pe care ar trebui să o luați în considerare.

Datorită testelor pe care le putem vedea în acest tutorial, putem vedea că este ușor de lucrat și cu adevărat nu este nevoie de mult timp pentru a crea o altă aplicație simplă pentru Linux.

După cum putem vedea, completarea automată care are creveți este limitată la obiectul cu care lucrați, nu ca în cazul lui Geany, care vă poate pune orice. Trebuie să-i acordăm puncte, deoarece funcționează ca Java și Netbeans și fără alte complicații.

Deci, pentru cei care doresc să învețe să programeze aplicații simple în Linux și sunt curioși, vă recomandăm să încercați Gambas3.

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave