Gambas Linux -prosjekt

Gambas er et utviklingsmiljø som distribueres under GNU GPL -lisensenMed dette kan vi si at det ikke bare er et programmeringsspråk som stammer fra grunnspråket, men det er også et veldig nyttig verktøy når du bygger visuelle applikasjoner for nesten alle GNU / Linux -distribusjoner.

I Gambas har programmereren muligheten til å designe vinduer grafisk, dra objekter fra verktøykassen og deretter skrive koden i grunnleggende for hvert objekt.

Som vi så tidligere, er Gambas basert på en grunnleggende tolk med objektutvidelser, som ligner på Visual Basic. Men fordelen vi har med Gambas er at du raskt kan designe din grafiske applikasjon med QT eller GTK +, få tilgang til MySQL, PostgreSQL, Firebird, ODBC og SQLite databaser, kontrollere applikasjoner med DBUS, bygge Front End av Linux -kommandoer, gjøre 3D OpenGL -applikasjoner , lage CGI -webapplikasjoner, generere installasjonspakker for blant annet forskjellige distribusjoner.

Av denne grunn kan vi si at i Gambas er det ikke en kopi eller klon av Visual Basic, siden det til tross for at det er basert på grunnleggende, er et alternativ for å lage programmer og applikasjoner for GNU -miljøer. Hvis vi ser på rekerhistorien, vil vi finne at den første versjonen av reker ble utgitt i 1999 av franskmannen Benoît Minisini, noe som skaper et miljø som gjør at vi enkelt kan programmere og utvikle applikasjoner med et grafisk brukergrensesnitt.

Først var programskjemaet i Gambas det samme som Gimp, med flere vinduer, og orientert om bruk av Qt og KDE. Da det gjorde spranget til 2.x -versjoner i 2008, innebar det et fullstendig redesign av det grafiske programmeringsgrensesnittet, integrering av alt i et enkelt vindu og tillat bruk av GTK +. I 2011 hoppet den til versjon 3.x.

La oss starte med Gambas3 installasjon.

1. Slik installerer du Gambas3


Enkelheten i Gambas gjør den enkel å bruke, så det er ikke nødvendig å kunne noe programmeringsspråk. Du trenger bare å ha en gratis manual og bruke litt tid på den. Av denne grunn er den perfekt for læring hvis du nettopp har begynt. La oss lære å installere det på vårt Linux -operativsystem:

Først må vi åpne kommandoterminalen og skrive inn disse kommandoene en etter en:

 sudo add-apt-repository ppa: gambas-team / gambas-daglig sudo apt-get oppdatering sudo apt-get install gambas3 
Gambas installasjonskommandoer

Med denne kommandolinjen kan vi skaffe den siste utgaven av Gambas. For øyeblikket går de for 3.8.1, selv om jeg anbefaler å ha den mest stabile versjonen vi kan få tak i ved hjelp av disse andre kommandoene, men vi må huske på at vi aldri kan legge til de to PPA -ene samtidig, vi kan bare ha en av de to, dette er fordi vi kan forårsake en feil, og vi må starte på nytt med å rengjøre de tidligere installasjonene.

2. Lag Gambas -prosjekt med DB og rapport


Det første vi må gjøre er å designe databasen vi trenger for å lagre informasjonen vår. Den jeg foreslår vil bli kalt "studenter" og vil ha to tabeller (studenter og fag).
 Studentbord: ID, ID, navn, etternavn, adresse, telefon og e -post. Emnetabell: id, subject_name 
For å gjøre det bruker vi en veldig enkel leder for databasedesign, kalt SQLite Data Browser, vi åpner den og oppretter databasen ved å klikke på den nye knappen. Vi finner hvor vi vil lagre det og lager tabellene i henhold til forrige design.

Når den er opprettet vil den se slik ut:

Vi lar ID -feltet stå som hovednøkkel i begge tabellene. Før vi lukker mini-manageren, legger vi til noen data for å kontrollere funksjonen når vi designer skjemaene i programmet. Hvis vi nå kan klikke på lagre -knappen og lukke mini databrowser manager.

3. Utfører Gambas -programmet


Vi åpner Gambas og lager et nytt prosjekt som gir det navnet og den tilhørende banen:

FORSTØRRE

For større bekvemmelighet plasserer vi databasen som er opprettet i mappen som er opprettet for prosjektet, i dette tilfellet mappen som heter GestionEstudiantes, så det vil være enkelt når du finner banen i programmet.

 'Vi konfigurerer exit -knappen. Offentlig Sub btnCerrar_Click () Avslutt Slutt 
Vi opprettet to nye skjemaer, for å skrive inn studenter og for fag.

Nå konfigurerer vi knappen for å legge inn studenter:

 Offentlig Sub btnNuevoEstudiante_Click () FMain.Hide FormEstudiantes.Show End 
Vi konfigurerer også knappen Legg til emne:
 Offentlig Sub btnNuevaAsignatura_Click () FMain.Hide FormCourses.Show End 
Så vi vil ha tildelt det.

4. Utforming av skjemaet for å skrive inn studenter


For å begynne setter vi en columview og to knapper som vi skal sette henholdsvis den nye teksten til og avslutte (Tekstegenskap).

Vi kan, hvis vi ønsker det, legge til et ikon for hver knapp gjennom bildeegenskapen. Til columview vi vil bare kalle det "bord" (I eiendommens navn) det ligner veldig på alle tabeller, og vi prøver å holde dette første databaseprosjektet så enkelt som mulig.

Vi kaller knappene: nytt Y gå ut.

Skjemaet vil se slik ut:

Vi konfigurerer lukkeknappen på skjemaet.

 Offentlig Sub btnExit_Click () Me.Close End 
Nå går vi videre til koding.

5. Vi begynte å kode Gambas


Vi skal begynne å sette inn noen kode i programmet vårt, og vi vil kommentere det. Det første i en database er tilkoblingen til den. For dette gir Gambas oss Tilkoblingsobjekt.

Alt som vises med en eneste apostrof i koden er en kommentar som ikke vil bli tolket av programmet.

Eksempel:

 'Project Test Private hconn As Connection' -variabel for å etablere tilkoblingen Private Function ConnectBase () As Boolean 'variable for tilkoblingen, returnerer en sann eller usann verdi Hvis hconn Null Then Return False' sjekker vi at tilkoblingen ikke er åpen hconn = Ny Tilkobling 'Vi initialiserer tilkoblingen med den nye metoden, og deretter sender vi den parameterne med hconn' parameter for databasebanen hconn.Host = " / home / test" hconn.Name = "students" databasenavn hconn.Type = " sqlite3 "'database type Prøv hconn.Open ()' vi prøver å åpne tilkoblingen hvis vi ikke lykkes sender vi en feilmelding og vi gir den verdien null If Error Then hconn = Null Message.Error (" Kunne ikke koble til databasen ") Returner True Endif Return False End 
Når du har kopiert koden ovenfor, klikker du på Kjør -alternativet fra Debug -menyen. Hvis alt går bra, skal det ikke vises noen feil, og skjermen til prosjektet vårt vises igjen. Noe som betyr at tilkoblingen til vår database er gjort tilfredsstillende.

I tilfelle av en feil, er det mulige årsaker:

Årsaker til feilLa oss se på årsakene:

1. Når du kopierer og limer inn koden, må du ta hensyn til anførselstegnene, som ofte endres når du kopierer og limer inn og derfor ikke gjenkjennes av applikasjonen. I dette tilfellet er det tilrådelig å slette anførselstegnene og plassere dem manuelt. Koden inne i sitatene må være i fuchsia for å vite at den er riktig.

2. En annen mulig feil er ikke å ha merket de tilsvarende alternativene i kategorien Prosjektegenskaper, som du finner ved å klikke på Prosjekt -menyen, deretter Egenskaper og der i kategorien Komponenter, sjekk at følgende alternativer er merket:

  • bg
  • gb.db
  • gb.db.sqlite3
  • gb.form
  • gb.db.mysql (Dette burde ikke være nødvendig for databasen vi lager, men vi markerer det uansett)

3. En annen veldig vanlig feil er banen der vi har både prosjektet og databasen, det er der de markerte linjene er i koden som skal kopieres og limes inn.

Etter å ha korrigert de mulige feilene og kontrollert at applikasjonen vår fungerer, fortsetter vi å stenge tilkoblingen ved å plassere følgende kode på slutten.

 PUBLIC SUB lukk tilkoblingen () HVIS hconn = NULL DA RETURN hconn.Close () hconn = NULL END 
Først ser vi at den ikke lenger er lukket, hvis ikke, lukker vi den med .Lukk

6. Se lagrede data


Vi åpner skjemaet og i Skjema prosess og vi legger inn følgende kode:

(Ikke glem å sjekke anførselstegnene for at koden kunne ha blitt endret når du limte inn).

 Offentlig Sub Form_Open () 'først deklarerer vi variablene og sletter kolonnevisningen Dim hresul Som Resultat Dim -tasten Som streng Dim -filteret Som strengtabell Fjern Hvis ConnectBase () Deretter returnerer vi' vi bekrefter forbindelse med databasen 'vi definerer egenskapene for kolonnevisningen 'tell for antall kolonner' tekst for tittelen på kolonnenes bredde for bredden på kolonnenes justering for justeringen av feltene. table.Columns.Count = 6 table.Columns [0] .Text = "Cedula" table.Columns [0] .Alignment = Align.Center table.Columns [0] .Width = 100 table.Columns [1] .Text = "Navn" tabell.Kolonner [1] .Alignment = Align.Center tabell.Kolonner [1] .Bredde = 120 tabell.Kolonner [2] .Text = "Etternavn" tabell.Kolonner [2] .Alignment = Align.Center tabell .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 = Alignment. Sentraltabell.Kolonner [5] .Bredde = 120 hresul = hconn.Exec ("velg * fra studenter") 'Denne instruksjonen søker i databasen, hvis den finner data, gjør den hresul -variabelen sann og derfor tilgjengelig (Tilgjengelig) Do While hresul .Available 'så vil den gå gjennom tabellen med en do while loop basert på nøkkelen (Cedula) og vil fylle tabellen med dataene. key = hresul ["ID"] 'vi gjør ID -feltet som primært for tabellsøk. Legg til (passord, passord)' vi legger til dataene som finnes i databasen. tabell [nøkkel] [1] = hresul ["navn"] tabell [nøkkel] [2] = hresul ["etternavn"] tabell [nøkkel] [3] = hresul ["adresse"] tabell [nøkkel] [4] = hresul ["telefon"] tabell [nøkkel] [5] = hresul ["mail"] hresul.MoveNext () 'denne instruksjonen avanserer søket til neste dataslynge' Gjenoppretter instruksjonene inne i sløyfen til det ikke er flere data som skal vises. CloseConnection () 'avslutter tilkoblingen 
Skjema prosess

På slutten kjører vi den og kontrollerer hvordan den fungerer, noe som gir følgende resultat:

FORSTØRRE

7. Lag skjema for å legge inn elevdata


Nå skal vi lage et nytt skjema som lar oss legge inn data for nye studenter, det foreslåtte navnet på det er edata.

Den vil ha følgende objekter: 6 etiketter, 6 tekstbokser og to knapper.

Det foreslåtte oppsettet er som følger:

For å se om alt går bra, går vi til skjemaet som viser elevlisten og konfigurerer den nye knappen som følger:

FORSTØRRE

Hvis det ikke er noen feil og alt går bra, la oss fortsette med å konfigurere det nyopprettede skjemaet for å legge inn nye studentdata. Dette skjemaet vil motta en referanse til et objekt av type forbindelse, i vårt tilfelle hconn derfor plasserer vi den i begynnelsen av vår form.

 'Gambas class file' først konfigurerer vi tilkoblingen Private hconn As Connection 'vi lager en runnew -metode som vil bli kalt fra skjemaet som viser studentene Public Sub runnew (data As Connection) hconn = data' referanse for forrige skjema Me. ShowModal () 'tvinger seg til å samhandle med skjemaet før du lukker det Slutt Vi konfigurerer avbryt -knappen: Offentlig Sub btnCancelar_Click () Me.Close (0) End For å legge inn nye data, bruker vi følgende instruksjon: PRØV hconn.EXEC (" sett inn i mytable -verdiene (& 1, & 2, & 3, & 4, & 5. & 6) ”, txtid, txtname, txlastname, txtphone, txtmobile, txtcumple) exec Feltene vil bli kalt av et ampersand og tilsvarende indeks som vist nedenfor. (& 1, & 2, & 3, & 4, & 5. & 6) 
La oss gå tilbake til forrige skjema og konfigurere Godta -knappen som følger:

FORSTØRRE

Først prøver vi å koble til databasen vår, hvis vi ikke lykkes, drar vi. Når forbindelsen var oppnådd, ringte vi runnewde fdata metode. Siden dette skjemaet vises i modal form, venter denne koden på at vi skal legge inn data i fdata, eller vi bare lukker dem.

Den avslutter deretter tilkoblingen og kaller form_open -metoden som laster dataene på nytt for å vise endringene som er gjort. Nå skal vi se hvordan vi gjør for å endre en post, for eksempel hvis en venn endrer mobilen, bare rediger feltet.

Vi kommer til å dra nytte av den aktiverte hendelsen for vår kontroll colunmview (tabell) for å legge til denne funksjonaliteten. Denne hendelsen utløses ved å dobbeltklikke på en hvilken som helst kolonne i tabellen.

 Public Sub table_Activate () Dim hresul As Result If table.Current = Null Returner deretter If ConnectBase () Returner deretter hresul = hconn.Edit ("studenter", "ID = & 1", table.Current.Key) edata.runedit ( hresul) 'Kall runeedit -metoden i skjemaet edata table.Current [0] = hresul ["ID"] tabell.Current [1] = hresul ["fornavn"] table.Current [2] = hresul ["etternavn "] table. Current [3] = hresul [" address "] table.Current [4] = hresul [" phone "] table.Current [5] = hresul [" mail "] closeConnection () End 
Aktiver hendelsen

Fet linje er den som kaller edata runedit metode. Siden vi ikke har opprettet denne metoden ennå, vil det ikke fungere hvis vi prøver å kjøre den nå.

La oss derfor gå tilbake til alder og la oss plassere følgende variabler i begynnelsen av skjemaet slik at de er tilgjengelige fra hele skjemaet.

 Privat hconn som tilkobling Privat hresul Som resultat Privat redigering som boolsk 
La oss deretter lage den nye metoden kalt runedit:
 Offentlig sub runedit (data som resultat) hresul = dataredigering = True txtCedula.Text = hresul ["ID"] txtName.Text = hresul ["fornavn"] txtName.Text = hresul ["etternavn"] txtAddress.Text = hresul ["adresse"] txtTelephone.Text = hresul ["telefon"] txtEmail.Text = hresul ["mail"] Me.ShowModal End 
Dette viser oss edata med dataene til den valgte posten, slik at vi kan redigere den og setter variabelen redigering med verdien true. Dette er nødvendig for å bruke en betinget uttalelse når du klikker btna godta Skill mellom nytt og modifiser.

Vi kan teste det selv om det fortsatt ikke vil fungere, det mangler fortsatt angi knappen Godta, men vi kan kontrollere at det tar oss til det forespurte skjemaet.

La oss konfigurere Godta -knappen for å lagre endringene:

 Offentlig Sub btnAccept_Click () Hvis du redigerer Prøv deretter hresul ["cedula"] = txtCedula.Text Prøv hresul ["names"] = txtNames.Text Prøv hresul ["etternavn"] = txtSurname.Text Prøv hresul ["adresse"] = txtAddress .Tekst Prøv hresul ["phone"] = txtTelephone.Text Prøv hresul ["mail"] = txtEmail.Text Prøv hresul.Update Else Try hconn.Exec ("sett inn i studentenes verdier (& 1, & 2, & 3 , & 4, & 5, & 6) ", txtCedula.Text, txtName.Text, txtSurname.Text, txtAddress.Text, txtTelephone.Text, txtEmail.Text) 'med dette legger vi inn informasjonen som sendes Endif Me.Close () Catch Message.Error ("Umulig å legge inn dataene som er sendt") Slutt 
Vi kan nå lagre endringene.

8. Konfigurer datasøk


La oss legge til en søkeknapp og en tekstboks i skjemaet. Dette er det nye utseendet på skjemaet:

FORSTØRRE

Vi konfigurerer søkeknappen på en lignende måte som den nye knappen, dette er koden:

 Offentlig 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 tabell.Kolonner [2] .Text = "Etternavn" tabell.Kolonner [2] .Alignment = Align.Center tabell.Kolonner [2] .Bredde = 120 tabell.Kolonner [3] .Tekst = "Adresse" tabell. Kolonner [3] .Alignment = Align.Center tabell.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 (" velg * fra studenter der navn som '"& filter &"' ") Do While hresul.Available key = hresul [" ID "] table.Add (key, key) table [key] [1] = hresul [" name res "] tabell [passord] [2] = hresul [" etternavn "] tabell [passord] [3] = hresul [" adresse "] tabell [passord] [4] = hresul [" telefon "] tabell [passord] [ 5] = hresul ["mail"] hresul.MoveNext () Sløyfe closeConexion () Slutt 
Med det vi har gjort, kan vi allerede være klare om prosessen, nå skal vi gjøre det samme med skjemaet for fagene. De foreslått layout er følgende:

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

 Offentlig Sub btnExit_Click () Me.Close End 
Nå vil vi koble til databasen:
 Private hconn som tilkobling Private Function connectbase () As Boolean If hconn Null Then Return False hconn = New Connection hconn.Host = " / home / test" hconn.Name = "students" database name hconn.Type = "sqlite3" 'database type Prøv hconn.Open () If Error Then hconn = Null Message.Error ("Feil ved tilkobling av database") Returner True Endif Return False End 
Vi planlegger arrangementet for å stenge forbindelsen:
 Offentlig sub closeConexion () Hvis hconn = Null Returner deretter hconn.Close () hconn = Null End 
Nå visualiserer vi dataene i columview, i skjemaets åpne hendelse.

Koden er følgende:

 Offentlig Sub Form_Open () Dim hresul Som Resultat Dim -tast Som String Dim -filter Som String -tabell2.Clear If connectbase () Returner deretter tabell2.Columns.Count = 2 table2.Columns [0] .Text = "id" -tabell2.Kolonner [0 ] .Alignment = Align.Right table2.Columns [1] .Text = "Navn på emnet eller emnet" hresul = hconn.Exec ("velg * fra emner") Do While hresul.Available key = hresul ["id"] table2.Add (key, key) table2 [key] [1] = hresul ["matter_name"] hresul.MoveNext () Loop closeConnection () End 
Nå lager vi skjemaet for å legge til og / eller redigere dataene i tabellen, emnene eller kursene. Det foreslåtte navnet er adata. (registrerte).

9. Vi programmerer lukkeknappen

 Offentlig Sub btnCerrar_Click () Me.Close End 
Vi lager referansen til et objekt av typen tilkobling, i vårt tilfelle hconn, derfor vil vi i begynnelsen av vårt adata -skjema plassere følgende kode:
 Privat hconn som tilkobling 
I tillegg lager vi den runnew -metoden som vil bli kalt fra hovedskjemaet. Syntaksen er som følger:
 Offentlig del kjøres ny (data som tilkobling) hconn = data Me.ShowModal () End 
Nå går vi til skjemaet for å legge inn dataene til fagene, og i btnnuevo -klikkhendelsen plasserer vi følgende kode:
 Offentlig Sub btnNuevo_Click () If connectbase () Returner deretter adata.runnew (hconn) closeConexion () Form_Open () End 
Nå kan vi prøv ny knapp av nevnte form.

Fortsetter med det samme skjemaet, koder vi metoden for å endre poster som følger. Vi kommer til å dra nytte av vårt aktiviseringsarrangement colunmview -kontroll (tabell) for å legge til denne funksjonaliteten. Denne hendelsen utløses ved å dobbeltklikke på en hvilken som helst kolonne i tabellen.

 Offentlig sub -tabell2_Aktiver () Dim hresul som resultat Hvis table2.Current = Null Returner deretter Hvis connectbase () Returner deretter 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 
Husk at det ikke vil fungere før vi har opprettet denne hendelsen i adata -skjemaet. La oss derfor gå tilbake til fdata og la oss plassere følgende variabler i begynnelsen av skjemaet slik at de er tilgjengelige fra hele skjemaet.
 PRIVAT hconn AS Tilkobling PRIVAT hresul AS Resultat PRIVAT redigering som boolsk 
Vi lager runedit -metoden hvis kode er følgende:
 Offentlig sub runedit (data som resultat) hresul = dataredigering = True txtAsignaturas.Text = hresul ["subject_name"] Me.ShowModal End 
Husk å teste for å kontrollere at alt går bra. Nå Vi programmerer knappen Godta som følger:
 Offentlig Sub btnAceptar_Click () Hvis du redigerer Prøv deretter 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 angi sendte data") Slutt 
Nå programmerer vi emnesøkingsrutinen:
 Offentlig Sub btnBuscar_Click () Dim hresul As Result Dim key As String Dim filter As String table2.Clear If connectbase () Returner deretter tabell2.Columns.Count = 2 tabell2.Kolonner [0] .Tekst = "id" tabell2.Kolonner [0 ] .Alignment = Align.Right table2.Columns [1] .Text = "Navn på emnet eller emnet" filter = txtBuscar.Text hresul = hconn.Exec ("velg * fra emner der 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 skal ha det klart.

Konklusjoner om reker
For folk som har laget en applikasjon i Visual Basic, og er interessert i programmering, er dette et av verktøyene som utvilsomt vil interessere deg, og det er et klart alternativ som du bør vurdere.

Takket være testene vi kan se i denne opplæringen, kan vi se at det er enkelt å jobbe og virkelig det tar ikke mye tid å lage en annen enkel applikasjon for Linux.

Som vi kan se, er autofullføringen som har reker begrenset til objektet du jobber med, ikke som i tilfellet med Geany, som kan sette alt på deg. Vi må gi den poeng siden den fungerer som Java og Netbeans og uten ytterligere komplikasjoner.

Så for de som ønsker å lære å programmere enkle applikasjoner i Linux og er nysgjerrige, anbefaler vi at du prøver Gambas3.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave