Gambas Linux -projekt

Gambas er et udviklingsmiljø, der distribueres under GNU GPL -licensenMed dette kan vi sige, at det ikke kun er et programmeringssprog, der stammer fra det grundlæggende sprog, men det er også et meget nyttigt værktøj, når man bygger visuelle applikationer til næsten enhver GNU / Linux -distribution.

I Gambas har programmøren mulighed for at designe vinduer grafisk, trække objekter fra værktøjskassen og derefter skrive koden i basic for hvert objekt.

Som vi så tidligere, er Gambas baseret på en grundlæggende tolk med objektudvidelser, der ligner Visual Basic. Men den fordel, vi har med Gambas, er, at du hurtigt kan designe din grafiske applikation med QT eller GTK +, få adgang til MySQL, PostgreSQL, Firebird, ODBC og SQLite -databaser, styre applikationer med DBUS, bygge Front End af Linux -kommandoer, lave 3D OpenGL -applikationer , lave CGI webapplikationer, generere installationspakker til blandt andet forskellige distributioner.

Af denne grund kan vi sige, at det i Gambas ikke er en kopi eller klon af Visual Basic, da det på trods af at det er baseret på basic, er et alternativ til at oprette programmer og applikationer til GNU -miljøer. Hvis vi ser på rejernes historie, vil vi opdage, at den første version af rejer blev frigivet i 1999 af franskmanden Benoît Minisini, hvilket skabte et miljø, der ville give os mulighed for let at programmere og udvikle applikationer med en grafisk brugergrænseflade.

Først lignede programformen i Gambas den på Gimp, med flere vinduer og orienteret mod brugen af ​​Qt og KDE. Da det sprang til 2.x versioner i 2008, indebar det et komplet redesign af den grafiske programmeringsgrænseflade, integrering af alt i et enkelt vindue og tilladelse til brug af GTK +. I 2011 sprang den til version 3.x.

Lad os starte med Gambas3 installation.

1. Sådan installeres Gambas3


Gambas enkelhed gør den let at bruge, så det er ikke nødvendigt at kende noget programmeringssprog. Du skal bare have en gratis manual og bruge lidt tid på den. Af denne grund er det perfekt til læring, hvis du lige er begyndt. Lad os lære at installere det på vores Linux -operativsystem:

Først skal vi åbne kommandoterminalen og indtaste disse kommandoer en efter en:

 sudo add-apt-repository ppa: gambas-team / gambas-daily sudo apt-get opdatering sudo apt-get install gambas3 
Gambas installationskommandoer

Med denne kommandolinje kan vi få den nyeste version af Gambas. I øjeblikket går de til 3.8.1, selvom jeg anbefaler at have den mest stabile version, som vi kan få ved hjælp af disse andre kommandoer, men vi skal huske på, at vi aldrig kan tilføje de to PPA'er på samme tid, vi kan kun have en af de to skyldes det, at vi kunne forårsage en fejl, og vi skulle starte forfra med at rense de tidligere installationer.

2. Opret Gambas -projekt med DB og rapport


Den første ting, vi skal gøre, er at designe den database, vi har brug for til at gemme vores oplysninger. Den, jeg foreslår, vil blive kaldt "studerende" og vil have to borde (elever og fag).
 Studerendes bord: ID, ID, navne, efternavne, adresse, telefon og e -mail. Emnetabel: id, subject_name 
For at gøre det bruger vi en meget enkel manager til databasedesign, kaldet SQLite Data Browser, vi åbner den og opretter databasen ved at klikke på den nye knap. Vi finder, hvor vi vil gemme det, og opretter bordene i henhold til det tidligere design.

Når den var oprettet, ville den se sådan ud:

Vi efterlader ID -feltet som primær nøgle i begge tabeller. Inden vi lukker mini-manager tilføjer vi nogle data til den for at kontrollere dens funktion, når vi designer formularerne i programmet. Hvis vi nu kan klikke på Gem -knappen og lukke mini databrowser manager.

3. Udførelse af Gambas -programmet


Vi åbner Gambas og opretter et nyt projekt, der giver det navnet og den tilhørende sti:

FORSTØRRE

For større bekvemmelighed placerer vi den database, der er oprettet i den mappe, der er oprettet til projektet, i dette tilfælde mappen kaldet GestionEstudiantes, så det vil være let, når dens sti findes i programmet.

 »Vi konfigurerer exit -knappen. Offentlig under btnCerrar_Click () Afslut slut 
Vi skabte to nye former, for at komme ind i elever og for fag.

Nu konfigurerer vi knappen til at indtaste elever:

 Offentlig Sub btnNuevoEstudiante_Click () FMain.Hide FormEstudiantes.Show End 
Vi konfigurerer også knappen Tilføj emne:
 Offentlig Sub btnNuevaAsignatura_Click () FMain.Hide FormCourses.Show End 
Så vi vil have tildelt det.

4. Design af formularen til indtastning af elever


For at starte satte vi et columview og to knapper, som vi vil sætte henholdsvis den nye tekst til og afslutte (Tekstegenskab).

Vi kan, hvis vi ønsker det, tilføje et ikon til hver knap gennem dets billedegenskab. Til columview vi vil bare kalde det "bord" (I ejendomsnavn) det ligner meget enhver tabel, og vi forsøger at holde dette første databaseprojekt så enkelt som muligt.

Vi kalder knapperne: nyt Y gå ud.

Formularen ville se sådan ud:

Vi konfigurerer lukkeknappen i formularen.

 Public Sub btnExit_Click () Me.Close End 
Nu går vi videre til kodning.

5. Vi begyndte at kode Gambas


Vi kommer til at begynde at lægge noget kode i vores program, og vi vil kommentere det. Det første i en database er forbindelsen til den. Til dette giver Gambas os Forbindelsesobjekt.

Alt, der vises med en enkelt apostrof i koden, er en kommentar, som ikke vil blive fortolket af programmet.

Eksempel:

 'Project Test Private hconn As Connection' variabel for at etablere forbindelsen Private Function ConnectBase () As Boolean 'variabel for forbindelsen, returnerer en sand eller falsk værdi Hvis hconn Null Then Return False' kontrollerer vi, at forbindelsen ikke er åben hconn = Ny Forbindelse 'Vi initialiserer forbindelsen med den nye metode, og derefter videregiver vi parameterne med hconn' parameter for databasestien hconn.Host = " / home / test" hconn.Name = "students" database navn hconn.Type = " sqlite3 "'database type Prøv hconn.Open ()' vi forsøger at åbne forbindelsen, hvis det ikke lykkes, sender vi en fejlmeddelelse, og vi giver den værdien null If Error Then hconn = Null Message.Error (" Kunne ikke oprette forbindelse til databasen ") Return True Endif Return False End 
Når du har kopieret koden ovenfor, skal du klikke på indstillingen Kør i menuen Debug. Hvis alt går godt, skal der ikke vises nogen fejl, og skærmen på vores projekt vises igen. Hvilket betyder, at forbindelsen til vores database er foretaget tilfredsstillende.

I tilfælde af en fejl er her mulige årsager:

FejlårsagerLad os se på årsagerne:

1. Når du kopierer og indsætter koden, skal du tage hensyn til anførselstegnene, som ofte ændres ved kopiering og indsætning og derfor ikke genkendes af applikationen. I dette tilfælde er det tilrådeligt at slette anførselstegnene og placere dem manuelt. Koden inde i citaterne skal være i fuchsia for at vide, at den er korrekt.

2. En anden mulig fejl er ikke at have markeret de tilsvarende indstillinger på fanen Projektegenskaber, som kan findes ved at klikke på menuen Projekt, derefter Egenskaber og der på fanen Komponenter, skal du kontrollere, at følgende muligheder er markeret:

  • bg
  • gb.db
  • gb.db.sqlite3
  • gb.form
  • gb.db.mysql (Dette burde ikke være nødvendigt for den database, vi laver, men vi markerer det alligevel)

3. En anden meget almindelig fejl er stien, hvor vi har både projektet og databasen, hvor de markerede linjer er i koden, der skal kopieres og indsættes.

Efter at have rettet de mulige fejl og kontrolleret, at vores applikation fungerer, fortsætter vi med at lukke forbindelsen ved at placere følgende kode i slutningen.

 PUBLIC SUB tæt forbindelse () HVIS hconn = NULL SÅ VENDER du tilbage hconn.Luk () hconn = NULL END 
Først ser vi, at den ikke længere er lukket, hvis ikke, lukker vi den med .tæt

6. Se gemte data


Vi åbner formularen og inden for Formularproces og vi sætter følgende kode:

(Glem ikke at kontrollere citaterne om, at koden kunne have været ændret ved indsætning).

 Public Sub Form_Open () 'først deklarerer vi variablerne og rydder columnview Dim hresul As Result Dim key As String Dim filter As String table Clear If ConnectBase () Then Return' we confirm connection with the database 'definerer vi egenskaberne for columnview 'tæl for antal kolonner' tekst for titlen på kolonnenes bredde for bredden af ​​kolonnernes justering for tilpasningen af ​​felterne. table.Columns.Count = 6 table.Columns [0] .Text = "Cedula" table.Columns [0] .Alignment = Align.Center table.Columns [0] .Width = 100 table.Columns [1] .Text = "Navne" -tabel.Kolonner [1] .Alignment = Align.Center -tabel.Kolonner [1] .Bredde = 120 tabel.Kolonner [2] .Text = "Efternavn" -tabel.Kolonner [2] .Alignment = Align.Center -tabel .Columns [2] .Width = 120 table.Columns [3] .Text = "Address" table.Columns [3] .Alignment = Align.Center table.Columns [3] .Width = 120 table.Columns [4]. Tekst = "Telefon" tabel.Kolonner [4] .Alignment = Align.Center tabel.Kolonner [4] .Bredde = 120 tabel.Kolonner [5] .Tekst = "Mail" tabel.Kolonner [5] .Alignment = Juster. Centrertabel.Kolonner [5] .Bredde = 120 hresul = hconn.Exec ("vælg * fra elever") 'Denne instruktion søger i databasen, hvis den finder data, gør den hresul -variablen sand og derfor tilgængelig (tilgængelig) Do While hresul .Available 'så går den gennem tabellen med en do while loop baseret på nøglen (Cedula) og fylder tabellen med dataene. key = hresul ["ID"] 'vi gør ID -feltet som primært for tabellsøgninger. Tilføj (adgangskode, adgangskode)' vi tilføjer de data, der findes i databasen. tabel [nøgle] [1] = hresul ["navne"] tabel [nøgle] [2] = hresul ["efternavn"] tabel [nøgle] [3] = hresul ["adresse"] tabel [nøgle] [4] = hresul ["telefon"] tabel [nøgle] [5] = hresul ["mail"] hresul.MoveNext () 'denne vejledning viderefører søgningen til den næste dataløkke' Genudfører instruktionerne inde i sløjfen, indtil der ikke er flere data, der skal vises. CloseConnection () 'lukker forbindelsen Slut 
Formularproces

I slutningen kører vi det og kontrollerer dets funktion, hvilket vil returnere følgende resultat:

FORSTØRRE

7. Opret formular til indtastning af elevdata


Nu skal vi oprette en ny formular, der giver os mulighed for at indtaste data for nye elever, det foreslåede navn for det er edata.

Det vil have følgende objekter: 6 etiketter, 6 tekstbokse og to knapper.

Det foreslåede layout er som følger:

For at se, om alt går godt, går vi til formularen, der viser listen over elever og konfigurerer den nye knap som følger:

FORSTØRRE

Hvis der ikke er fejl, og alt går godt, skal vi fortsætte med at konfigurere den nyoprettede formular til at indtaste nye elevdata. Denne formular vil modtage en reference til et objekt af typen forbindelse, i vores tilfælde hconn derfor placerer vi det i begyndelsen af ​​vores form.

 'Gambas class file' først konfigurerer vi forbindelsen Private hconn As Connection 'vi opretter en runnew -metode, der vil blive kaldt fra formularen, der viser elevernes Public Sub runnew (data As Connection) hconn = data' reference til den tidligere form Me. ShowModal () 'tvinger til at interagere med formularen, før den lukkes Slut Vi konfigurerer knappen Annuller: Offentlig Sub btnCancelar_Click () Me.Close (0) End For at indtaste nye data vil vi bruge følgende instruktion: TRY hconn.EXEC (" indsæt i mytable værdier (& 1, & 2, & 3, & 4, & 5. & 6) ”, txtid, txtname, txlastname, txtphone, txtmobile, txtcumple) exec Felterne vil blive kaldt af et ampersand og tilsvarende indeks som vist nedenfor. (& 1, & 2, & 3, & 4, & 5. & 6) 
Lad os gå tilbage til den forrige formular og konfigurere acceptknappen som følger:

FORSTØRRE

Først prøver vi at oprette forbindelse til vores database, hvis det ikke lykkes, forlader vi. Når forbindelsen var opnået, ringede vi runnewde fdata metode. Da denne formular vises i modal form, venter denne kode på, at vi skal indtaste data i fdata, eller vi lukker dem simpelthen.

Det lukker derefter forbindelsen og kalder form_open -metoden, der genindlæser dataene for at vise de foretagne ændringer. Nu skal vi se, hvordan vi gør for at ændre en rekord, for eksempel hvis en ven ændrer mobilen, skal du bare redigere dette felt.

Vi kommer til at drage fordel af aktiveringshændelsen for vores kontrol colunmview (tabel) for at tilføje denne funktionalitet. Denne begivenhed udløses ved at dobbeltklikke på en hvilken som helst kolonne i tabellen.

 Public Sub table_Activate () Dim hresul As Result If table.Current = Null Returner derefter If ConnectBase () Returner derefter hresul = hconn.Edit ("students", "ID = & 1", table.Current.Key) edata.runedit ( hresul) 'Kald runeedit -metoden i formen edata table.Current [0] = hresul ["ID"] table.Current [1] = hresul ["fornavn"] table.Current [2] = hresul ["efternavn "] table. Current [3] = hresul [" address "] table.Current [4] = hresul [" phone "] table.Current [5] = hresul [" mail "] closeConnection () End 
Aktiver begivenhed

Fet linje er den, der kalder edata runedit metode. Da vi ikke har oprettet denne metode endnu, virker det ikke, hvis vi prøver at køre den nu.

Lad os derfor vende tilbage til alder og lad os placere følgende variabler i begyndelsen af ​​formularen, så de er tilgængelige fra hele formularen.

 Privat hconn som forbindelse Privat hresul Som resultat Privat redigering som boolsk 
Lad os derefter oprette den nye metode kaldet runedit:
 Public Sub runedit (data som resultat) hresul = dataredigering = True txtCedula.Text = hresul ["ID"] txtName.Text = hresul ["fornavn"] txtName.Text = hresul ["efternavn"] txtAddress.Text = hresul ["adresse"] txtTelephone.Text = hresul ["telefon"] txtEmail.Text = hresul ["mail"] Me.ShowModal End 
Dette viser os edata med dataene fra den valgte post, så vi kan redigere det og sætter variabelen redigering med værdien true. Dette er nødvendigt for at bruge en betinget erklæring, når du klikker btna acceptere Skel mellem nyt og modificer.

Vi kan teste det, selvom det stadig ikke virker, det mangler stadig indstil acceptknappen, men vi kan kontrollere, at det fører os til den anmodede formular.

Lad os konfigurere acceptknappen for at gemme ændringerne:

 Public Sub btnAccept_Click () Hvis du redigerer Prøv derefter hresul ["cedula"] = txtCedula.Text Prøv hresul ["names"] = txtNames.Text Prøv hresul ["efternavne"] = txtSurname.Text Prøv hresul ["adresse"] = txtAddress .Tekst Prøv hresul ["telefon"] = txtTelephone.Text Prøv hresul ["mail"] = txtEmail.Text Prøv hresul.Update Else Prøv hconn.Exec ("indsæt i elevernes værdier (& 1, & 2, & 3 , & 4, & 5, & 6) ", txtCedula.Text, txtName.Text, txtSurname.Text, txtAddress.Text, txtTelephone.Text, txtEmail.Text) 'med dette indtaster vi de sendte oplysninger Endif Me.Close () Catch Message.Error ("Umuligt at indtaste de sendte data") Slut 
Vi kan nu gemme ændringerne.

8. Konfigurer datasøgning


Lad os tilføje en søgeknap og en tekstboks til formularen. Dette er formens nye udseende:

FORSTØRRE

Vi konfigurerer søgeknappen på samme måde som den nye knap, dette er koden:

 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 = "Names" table.Columns [1] .Alignment = Align.Center table.Columns [1] .Width = 120 table.Columns [2] .Text = "Efternavn" table.Columns [2] .Alignment = Align.Center table.Columns [2] .Width = 120 table.Columns [3] .Text = "Adresse" -tabellen. Kolonner [3] .Alignment = Align.Center tabel.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 (" vælg * fra elever, hvor navne som '"& filter &"' ") Do While hresul.Available key = hresul [" ID "] table.Add (key, key) table [key] [1] = hresul [" name res "] tabel [adgangskode] [2] = hresul [" efternavn "] tabel [adgangskode] [3] = hresul [" adresse "] tabel [adgangskode] [4] = hresul [" telefon "] tabel [adgangskode] [ 5] = hresul ["mail"] hresul.MoveNext () Loop closeConexion () Slut 
Med det, vi har gjort, kan vi allerede være klare om processen, nu skal vi gøre det samme med formularen til emnerne. Det foreslået layout er følgende:

Som altid er det første, vi skal programmere, exit -knappen:

 Public Sub btnExit_Click () Me.Close End 
Nu opretter vi forbindelsen til databasen:
 Privat hconn som forbindelse Privat funktion connectbase () Som boolsk Hvis hconn Null Returner derefter Falsk hconn = Ny forbindelse hconn.Host = " / home / test" hconn.Name = "students" database navn hconn.Type = "sqlite3" 'database type Prøv hconn.Open () Hvis fejl Så hconn = Null Message.Error ("Fejl ved tilslutning af database") Return True Endif Return False End 
Vi planlægger begivenheden for at lukke forbindelsen:
 Offentlig sub closeConexion () Hvis hconn = Null Returner derefter hconn.Close () hconn = Null End 
Nu visualiserer vi dataene i columview, i formens åbne hændelse.

Koden er følgende:

 Public Sub Form_Open () Dim hresul As Result Dim key As String Dim filter As String table2.Clear If connectbase () Returner derefter tabel2.Columns.Count = 2 table2.Columns [0] .Text = "id" table2.Columns [0 ] .Alignment = Align.Right tabel2.Columns [1] .Text = "Emnets navn eller kursus" hresul = hconn.Exec ("vælg * fra emner") Do While hresul.Available key = hresul ["id"] table2.Add (key, key) table2 [key] [1] = hresul ["matter_name"] hresul.MoveNext () Loop closeConnection () End 
Nu opretter vi formularen til at tilføje og / eller redigere dataene i tabellen, emner eller kurser. Det foreslåede navn er adata. (registrerede).

9. Vi programmerer knappen Luk

 Public Sub btnCerrar_Click () Me.Close End 
Vi opretter referencen til et objekt af typen forbindelse, i vores tilfælde hconn, derfor vil vi i begyndelsen af ​​vores adata -formular placere følgende kode:
 Privat hconn som forbindelse 
Derudover opretter vi den runnew -metode, der vil blive kaldt fra hovedformularen. Syntaksen er som følger:
 Public Sub runnew (data As Connection) hconn = data Me.ShowModal () End 
Nu går vi til formularen for at indtaste emnernes data, og i btnnuevo -klikhændelsen placerer vi følgende kode:
 Offentlig Sub btnNuevo_Click () If connectbase () Returner derefter adata.runnew (hconn) closeConexion () Form_Open () End 
Nu kan vi prøv ny knap af nævnte form.

Fortsætter med den samme formular, koder vi metoden til ændring af poster som følger. Vi kommer til at drage fordel af vores aktivitetshændelse colunmview -kontrol (tabel) for at tilføje denne funktionalitet. Denne begivenhed udløses ved at dobbeltklikke på en hvilken som helst kolonne i tabellen.

 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 
Husk, at det ikke virker, før vi har oprettet denne begivenhed i adata -formularen. Lad os derfor vende tilbage til fdata og lad os placere følgende variabler i begyndelsen af ​​formularen, så de er tilgængelige fra hele formularen.
 PRIVATE hconn AS Connection PRIVATE hresul AS Resultat PRIVAT redigering som boolsk 
Vi opretter runedit -metoden, hvis kode er følgende:
 Public Sub runedit (data som resultat) hresul = dataredigering = True txtAsignaturas.Text = hresul ["subject_name"] Me.ShowModal End 
Husk at teste for at kontrollere, at alt går godt. Nu vi programmerer accept -knappen som følger:
 Public Sub btnAceptar_Click () Hvis du redigerer Prøv derefter hresul ["subject_name"] = txtAsignaturas.Text Prøv hresul.Update Else Prøv hconn.Exec ("insert into subject_name values ​​(& 1)", txtAsignaturas.Text) Endif Me.Close () Catch Message.Error ("Kan ikke angive sendte data") Slut 
Nu programmerer vi emnesøgningsrutinen:
 Public Sub btnBuscar_Click () Dim hresul As Result Dim key As String Dim filter As String table2.Clear If connectbase () Returner derefter tabel2.Columns.Count = 2 table2.Columns [0] .Text = "id" table2.Columns [0 ] .Alignment = Align.Right table2.Columns [1] .Text = "Navn på emnet eller kurset" filter = txtBuscar.Text hresul = hconn.Exec ("vælg * fra emner, hvor emnenavn som '" & filter & "' ") Do While hresul.Available key = hresul [" id "] table2.Add (key, key) table2 [key] [1] = hresul [" matter_name "] hresul.MoveNext () Loop closeConexion () End 
Vi vil have det klar.

Konklusioner om rejer
For folk, der har lavet en applikation i Visual Basic og er interesserede i at programmere, er dette et af de værktøjer, der utvivlsomt vil interessere dig, og det er en klar mulighed, som du bør overveje.

Takket være de tests, vi kan se i denne vejledning, kan vi se, at det er let at arbejde og virkelig det tager ikke meget tid at lave en anden simpel applikation til Linux.

Som vi kan se, er autofuldførelsen, der har rejer, begrænset til det objekt, du arbejder med, ikke som i tilfældet med Geany, som kan sætte alt på dig. Vi er nødt til at give det point, da det fungerer som Java og Netbeans og uden yderligere komplikationer.

Så for dem, der ønsker at lære at programmere enkle applikationer i Linux og er nysgerrige, anbefaler vi, at du prøver Gambas3.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave