Gambas Linux -projekt

Gambas är en utvecklingsmiljö som distribueras under GNU GPL -licensenMed detta kan vi säga att det inte bara är ett programmeringsspråk som härrör från grundspråket utan det är också ett mycket användbart verktyg när man bygger visuella applikationer för nästan alla GNU / Linux -distributioner.

I Gambas har programmeraren möjlighet att utforma fönster grafiskt, dra objekt från verktygslådan och sedan skriva koden i grundläggande för varje objekt.

Som vi såg tidigare är Gambas baserat på en grundläggande tolk med objekttillägg, liknande Visual Basic. Men fördelen vi har med Gambas är att du snabbt kan designa din grafiska applikation med QT eller GTK +, komma åt MySQL, PostgreSQL, Firebird, ODBC och SQLite databaser, styra applikationer med DBUS, bygga Front End av Linux -kommandon, göra 3D OpenGL -applikationer , skapa CGI -webbapplikationer, generera installationspaket för bland annat olika distributioner.

Av denna anledning kan vi då säga att det i Gambas inte är en kopia eller klon av Visual Basic, eftersom det trots att det är baserat på grundläggande är ett alternativ för att skapa program och applikationer för GNU -miljöer. Om vi ​​tittar på räkornas historia, kommer vi att upptäcka att den första versionen av räkor släpptes 1999 av fransmannen Benoît Minisini, vilket skapar en miljö som gör att vi enkelt kan programmera och utveckla applikationer med ett grafiskt användargränssnitt.

Till en början var programformen i Gambas liknande Gimp, med flera fönster och inriktad på användning av Qt och KDE. När det gjorde språnget till 2.x -versioner 2008 innebar det en fullständig redesign av det grafiska programmeringsgränssnittet, integrerade allt i ett enda fönster och tillät användning av GTK +. 2011 hoppade den till version 3.x.

Låt oss börja med Gambas3 installation.

1. Hur man installerar Gambas3


Enkelheten i Gambas gör den enkel att använda så det är inte nödvändigt att kunna något programmeringsspråk. Du behöver bara ha en gratis manual och lägga lite tid på den. Av denna anledning är det perfekt för inlärning om du precis har börjat. Tja, låt oss lära oss hur du installerar det på vårt Linux -operativsystem:

Först måste vi öppna kommandoterminalen och ange dessa kommandon en efter en:

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

Med denna kommandorad kan vi få den senaste versionen av Gambas. För närvarande går de för 3.8.1, även om jag rekommenderar att ha den mest stabila versionen som vi kan få med dessa andra kommandon, men vi måste komma ihåg att vi aldrig kan lägga till de två PPA: erna samtidigt, vi kan bara ha en av de två, det beror på att vi kan orsaka ett fel och vi måste börja om med att rengöra de tidigare installationerna.

2. Skapa Gambas -projekt med DB och rapportera


Det första vi måste göra är att designa databasen vi behöver för att lagra vår information. Den som jag föreslår kommer att kallas "studenter" och kommer att ha två tabeller (studenter och ämnen).
 Studentbord: ID, ID, namn, efternamn, adress, telefon och e -post. Ämnesbord: id, ämnesnamn 
För att göra det använder vi en mycket enkel chef för databasdesign, kallad SQLite Data Browser, vi öppnar den och skapar databasen genom att klicka på den nya knappen. Vi hittar var vi ska spara det och skapar tabellerna enligt den tidigare designen.

När det väl skapats skulle det se ut så här:

Vi lämnar ID -fältet som primärnyckel i båda tabellerna. Innan mini-manager stängs lägger vi till några data till den för att kontrollera dess funktion när vi utformar formuläret i programmet. Om vi ​​nu kan klicka på knappen Spara och stänga mini databrowser manager.

3. Utför Gambas -programmet


Vi öppnar Gambas och skapar ett nytt projekt som ger det namnet och motsvarande sökväg:

FÖRSTORA

För mer bekvämlighet placerar vi databasen som skapats i den mapp som skapats för projektet, i detta fall mappen som heter GestionEstudiantes, så det blir enkelt när du hittar dess sökväg i programmet.

 "Vi konfigurerar exit -knappen. Public Sub btnCerrar_Click () Avsluta slut 
Vi skapade två nya former, för att komma in studenter och för ämnen.

Nu konfigurerar vi knappen för att ange elever:

 Public Sub btnNuevoEstudiante_Click () FMain.Hide FormEstudiantes.Show End 
Vi konfigurerar också knappen Lägg till ämne:
 Public Sub btnNuevaAsignatura_Click () FMain.Hide FormCourses.Show End 
Så vi kommer att tilldela det.

4. Utformning av formuläret för att skriva in studenter


Till att börja med sätter vi en columview och två knappar som vi lägger till den nya texten respektive avslutar (Textegenskap).

Vi kan, om vi vill, lägga till en ikon till varje knapp genom dess bildegenskap. Till columview vi kommer att kalla det helt enkelt "bord" (I fastighetsnamnet) det liknar alla tabeller och vi försöker hålla detta första databasprojekt så enkelt som möjligt.

Vi kommer att kalla knapparna: nyhet Y gå ut.

Formuläret skulle se ut så här:

Vi konfigurerar stängningsknappen i formuläret.

 Public Sub btnExit_Click () Me.Close End 
Nu går vi vidare till kodning.

5. Vi började koda Gambas


Vi ska börja lägga in lite kod i vårt program, och vi kommer att kommentera det. Det första i en databas är anslutningen till den. För detta ger Gambas oss Anslutningsobjekt.

Allt som visas med en enda apostrof i koden är en kommentar som inte kommer att tolkas av programmet.

Exempel:

 'Project Test Private hconn As Connection' variabel för att upprätta anslutningen Private Function ConnectBase () As Boolean 'variabel för anslutningen, returnerar ett sant eller falskt värde Om hconn Null Then Return False' kontrollerar vi att anslutningen inte är öppen hconn = Ny Anslutning "Vi initierar anslutningen med den nya metoden och skickar sedan parametrarna med hconn" parameter för databasvägen hconn.Host = " / home / test" hconn.Name = "students" databasnamn hconn.Type = " sqlite3 "'databastyp Testa hconn.Open ()' vi försöker öppna anslutningen om vi inte lyckas skickar vi ett felmeddelande och vi ger det värdet null If Error Then hconn = Null Message.Error (" Det gick inte att ansluta till databasen ") Returnera True Endif Return False End 
När du har kopierat koden ovan klickar du på alternativet Kör från Debug -menyn. Om allt går bra ska inget fel visas och skärmen för vårt projekt visas igen. Vilket innebär att anslutningen till vår databas har gjorts tillfredsställande.

I händelse av ett fel, här är möjliga orsaker:

Orsaker till felLåt oss titta på orsakerna:

1. När du kopierar och klistrar in koden måste du ta hänsyn till citattecken, som ofta ändras vid kopiering och klistring och därför inte känns igen av applikationen. I det här fallet är det lämpligt att radera citattecken och placera dem manuellt. Koden i citaten måste vara i fuchsia för att veta att den är korrekt.

2. Ett annat möjligt fel är att inte ha markerat motsvarande alternativ på fliken Projektegenskaper, som du hittar genom att klicka på projektmenyn, sedan Egenskaper och där på fliken Komponenter, kontrollera att följande alternativ är markerade:

  • bg
  • gb.db
  • gb.db.sqlite3
  • gb.form
  • gb.db.mysql (Detta borde inte vara nödvändigt för databasen vi gör, men vi markerar det ändå)

3. Ett annat mycket vanligt fel är sökvägen där vi har både projektet och databasen, det är där de markerade raderna finns i koden som ska kopieras och klistras in.

Efter att ha korrigerat eventuella fel och kontrollerat att vår applikation fungerar fortsätter vi att stänga anslutningen genom att placera följande kod i slutet.

 PUBLIC SUB stäng anslutning () OM hconn = NULL DÅ RETUR hconn.Close () hconn = NULL END 
Först ser vi att det inte längre är stängt, om inte stänger vi det med .stänga

6. Visa lagrad data


Vi öppnar formuläret och inom Form process och vi sätter följande kod:

(Glöm inte att kontrollera citaten som när du klistrade in koden kunde ha ändrats).

 Public Sub Form_Open () 'först deklarerar vi variablerna och rensar 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 'definierar vi egenskaperna för columnview 'räkna för antal kolumner' text för titeln på kolumnernas bredd för bredden på kolumnernas inriktning för fälternas inriktning. table.Columns.Count = 6 table.Columns [0] .Text = "Cedula" table.Columns [0] .Alignment = Align.Center table.Columns [0] .Width = 100 table.Columns [1] .Text = "Namn" tabell.Kolumner [1] .Alignment = Align.Center tabell.Kolumner [1] .Bredde = 120 tabell.Kolumner [2] .Text = "Efternamn" tabell.Kolumner [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 = "Telefon" tabell.Kolumner [4] .Alignment = Align.Center tabell.Kolumner [4] .Bredd = 120 tabell.Kolumner [5] .Text = "Mail" tabell.Kolumner [5] .Alignment = Justera. Centrertabell.Kolumner [5] .Bredd = 120 hresul = hconn.Exec ("välj * från studenter") 'Denna instruktion söker i databasen, om den hittar data gör den hresul -variabeln sann och därför tillgänglig (tillgänglig) Do While hresul .Available 'då går det genom tabellen med en do while loop baserat på nyckeln (Cedula) och fyller tabellen med data. key = hresul ["ID"] 'vi gör ID -fältet som primärt för tabellsökningar. Lägg till (lösenord, lösenord)' vi lägger till data som finns i databasen. tabell [nyckel] [1] = hresul ["namn"] tabell [nyckel] [2] = hresul ["efternamn"] tabell [nyckel] [3] = hresul ["adress"] tabell [nyckel] [4] = hresul ["telefon"] tabell [nyckel] [5] = hresul ["post"] hresul.MoveNext () 'denna instruktion avancerar sökningen till nästa dataslinga' Kör om instruktionerna inuti slingan tills det inte finns fler data som ska visas. CloseConnection () 'stänger anslutningen Slut 
Form process

I slutet kör vi det och kontrollerar hur det fungerar, vilket ger följande resultat:

FÖRSTORA

7. Skapa formulär för att ange elevdata


Nu ska vi skapa ett nytt formulär som gör att vi kan mata in data för nya studenter, det föreslagna namnet på det är edata.

Det kommer att ha följande objekt: 6 etikettiketter, 6 textrutor och två knappar.

Den föreslagna layouten är följande:

För att se om allt går bra går vi till formuläret som visar studentlistan och konfigurerar den nya knappen enligt följande:

FÖRSTORA

Om det inte finns några fel och allt går bra, låt oss fortsätta med att konfigurera det nyskapade formuläret för att ange nya elevdata. Detta formulär kommer att få en referens till ett objekt av typ förbindelse, i vårat fall hconn därför placerar vi det i början av vår form.

 'Gambas klassfil' först konfigurerar vi anslutningen Privat hconn som anslutning 'vi skapar en runnew -metod som kommer att kallas från formuläret som listar elevernas Public Sub runnew (data As Connection) hconn = data' referens för föregående formulär Me. ShowModal () tvingar att interagera med formuläret innan vi stänger det Sluta Vi konfigurerar knappen Avbryt: Public Sub btnCancelar_Click () Me.Close (0) End För att ange nya data kommer vi att använda följande instruktion: TRY hconn.EXEC (“ infoga i mytable -värden (& 1, & 2, & 3, & 4, & 5. & 6) ”, txtid, txtname, txlastname, txtphone, txtmobile, txtcumple) exec Fälten anropas av ett ampersand och motsvarande index enligt nedan. (& 1, & 2, & 3, & 4, & 5. & 6) 
Låt oss gå tillbaka till föregående formulär och konfigurera acceptknappen enligt följande:

FÖRSTORA

Först försöker vi ansluta till vår databas, om vi inte lyckas lämnar vi. När anslutningen uppnåddes ringde vi runnewde fdata -metod. Eftersom det här formuläret visas i modal form väntar den här koden på att vi ska mata in data i fdata eller så stänger vi det helt enkelt.

Den stänger sedan anslutningen och anropar form_open -metoden som laddar om data för att visa ändringarna. Nu ska vi se hur vi gör för att ändra en post, till exempel om en vän byter mobil, bara redigera det fältet.

Vi kommer att dra nytta av den aktiverade händelsen för vår kontroll colunmview (tabell) för att lägga till den här funktionen. Denna händelse utlöses genom att dubbelklicka på vilken kolumn som helst i tabellen.

 Public Sub table_Activate () Dim hresul As Result If table.Current = Null Returnera sedan om ConnectBase () Returnera sedan hresul = hconn.Edit ("studenter", "ID = & 1", table.Current.Key) edata.runedit ( hresul) 'Anropa runeedit -metoden i formuläret edata table.Current [0] = hresul ["ID"] table.Current [1] = hresul ["förnamn"] table.Current [2] = hresul ["efternamn "] table. Current [3] = hresul [" address "] table.Current [4] = hresul [" phone "] table.Current [5] = hresul [" mail "] closeConnection () End 
Aktivera event

Fet linje är den som kallar edata runedit -metod. Eftersom vi inte har skapat den här metoden ännu, fungerar det inte om vi försöker köra den nu.

Låt oss därför återvända till ålder och låt oss placera följande variabler i början av formuläret så att de är tillgängliga från hela formuläret.

 Privat hconn Som anslutning Privat hresul Som resultat Privat redigering som boolsk 
Låt oss sedan skapa den nya metoden som heter runedit:
 Public Sub runedit (data som resultat) hresul = dataredigering = True txtCedula.Text = hresul ["ID"] txtName.Text = hresul ["förnamn"] txtName.Text = hresul ["efternamn"] txtAddress.Text = hresul ["adress"] txtTelephone.Text = hresul ["telefon"] txtEmail.Text = hresul ["mail"] Me.ShowModal End 
Detta visar oss edata med data från den valda posten så att vi kan redigera den och sätter variabelredigeringen med värdet true. Detta är nödvändigt för att använda ett villkorligt uttalande när du klickar btna acceptera Skilj mellan nytt och modifiera.

Vi kan testa det även om det fortfarande inte fungerar, det saknas fortfarande Ställ in acceptknappen, men vi kan kontrollera att det tar oss till det begärda formuläret.

Låt oss konfigurera acceptknappen för att spara ändringarna:

 Public Sub btnAccept_Click () Om du redigerar Prova sedan hresul ["cedula"] = txtCedula.Text Prova hresul ["names"] = txtNames.Text Prova hresul ["efternamn"] = txtSurname.Text Prova hresul ["address"] = txtAddress .Text Prova hresul ["phone"] = txtTelephone.Text Try hresul ["mail"] = txtEmail.Text Prova hresul.Update Else Try hconn.Exec ("infoga i elevernas värden (& 1, & 2, & 3 , & 4, & 5, & 6) ", txtCedula.Text, txtName.Text, txtSurname.Text, txtAddress.Text, txtTelephone.Text, txtEmail.Text) 'med detta anger vi den information som skickas Endif Me.Close () Catch Message.Error ("Omöjligt att ange data som skickats") Slut 
Vi kan nu spara ändringarna.

8. Konfigurera datasökning


Låt oss lägga till en sökknapp och en textruta i formuläret. Detta är formulärets nya utseende:

FÖRSTORA

Vi konfigurerar sökknappen på ett liknande sätt som den nya knappen, det här är 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 tabell.Kolumner [2] .Text = "Efternamn" tabell.Kolumner [2] .Alignment = Align.Center tabell.Kolumner [2] .Bredd = 120 tabell.Kolumner [3] .Text = "Adress" tabell. Kolumner [3] .Alignment = Align.Center -tabell.Kolumner [3] .Bredd = 120 tabell.Kolumner [4] .Text = "Telefon" -tabell.Kolumner [4] .Alignment = Align.Center -tabell.Kolumner [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älj * bland elever där namn som '"& filter &"' ") Do While hresul.Available key = hresul [" ID "] table.Add (key, key) table [key] [1] = hresul [" name res "] tabell [lösenord] [2] = hresul [" efternamn "] tabell [lösenord] [3] = hresul [" adress "] tabell [lösenord] [4] = hresul [" telefon "] tabell [lösenord] [ 5] = hresul ["mail"] hresul.MoveNext () Loop closeConexion () Slut 
Med det vi har gjort kan vi redan vara tydliga med processen, nu ska vi göra detsamma med formuläret för ämnena. De föreslagen layout är följande:

Som alltid är det första vi ska programmera exit -knappen:

 Public Sub btnExit_Click () Me.Close End 
Nu gör vi anslutningen till databasen:
 Privat hconn som anslutning Privat funktion connectbase () Som Boolean Om hconn Null Returnera sedan Falsk hconn = Ny anslutning hconn.Host = " / home / test" hconn.Name = "students" databasnamn hconn.Type = "sqlite3" 'databas typ Prova hconn.Open () Om fel Då hconn = Nullmeddelande.Error ("Fel vid anslutning av databas") Returnera True Endif Return False End 
Vi schemalägger evenemanget för att stänga anslutningen:
 Public Sub closeConexion () Om hconn = Null Returnera sedan hconn.Close () hconn = Null End 
Nu visualiserar vi data i columview, i formulärets öppna händelse.

Koden är följande:

 Public Sub Form_Open () Dim hresul As Result Dim key As String Dim filter As String table2.Clear If connectbase () Returnera sedan tabell2.Columns.Count = 2 table2.Columns [0] .Text = "id" table2.Columns [0 ] .Alignment = Align.Right table2.Columns [1] .Text = "Namnet på ämnet eller kursen" hresul = hconn.Exec ("välj * från ämnen") Do While hresul.Available key = hresul ["id"] table2.Add (key, key) table2 [key] [1] = hresul ["matter_name"] hresul.MoveNext () Loop closeConnection () End 
Nu skapar vi formuläret för att lägga till och / eller redigera data i tabellen, ämnen eller kurser. Det föreslagna namnet är adata. (registrerade).

9. Vi programmerar stängningsknappen

 Public Sub btnCerrar_Click () Me.Close End 
Vi skapar referensen till ett objekt av typanslutning, i vårt fall hconn, därför kommer vi i början av vårt adata -formulär att placera följande kod:
 Privat hconn som anslutning 
Dessutom skapar vi den runnew -metod som kommer att kallas från huvudformuläret. Syntaxen är följande:
 Public Sub runnew (data As Connection) hconn = data Me.ShowModal () End 
Nu går vi till formuläret för att ange ämnenas data och i btnnuevo -klickhändelsen placerar vi följande kod:
 Public Sub btnNuevo_Click () If connectbase () Returnera sedan adata.runnew (hconn) closeConexion () Form_Open () End 
Nu kan vi prova ny knapp av nämnda form.

Fortsätter med samma formulär, kodar vi metoden för att ändra poster enligt följande. Vi kommer att dra nytta av vår aktiveringshändelse colunmview -kontroll (tabell) för att lägga till den här funktionen. Denna händelse utlöses genom att dubbelklicka på vilken kolumn som helst i tabellen.

 Public Sub table2_Activate () Dim hresul As Result If Table2.Current = Null Returnera sedan if connectbase () Returnera sedan 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 
Kom ihåg att det inte kommer att fungera förrän vi har skapat den här händelsen i adata -formuläret. Låt oss därför återvända till fdata och låt oss placera följande variabler i början av formuläret så att de är tillgängliga från hela formuläret.
 PRIVATE hconn AS Connection PRIVATE hresul AS Resultat PRIVAT redigering som boolsk 
Vi skapar runedit -metoden vars kod är följande:
 Public Sub runedit (data som resultat) hresul = dataredigering = True txtAsignaturas.Text = hresul ["subject_name"] Me.ShowModal End 
Kom ihåg att testa för att kontrollera att allt går bra. Nu vi programmerar acceptknappen som följer:
 Public Sub btnAceptar_Click () Om du redigerar Försök sedan hresul ["subject_name"] = txtAsignaturas.Text Try hresul.Update Else Try hconn.Exec ("insert into subject_name values ​​(& 1)", txtAsignaturas.Text) Endif Me.Close () Catch Message.Error ("Det går inte att ange skickade data") Avsluta 
Nu programmerar vi ämnesökningsrutinen:
 Public Sub btnBuscar_Click () Dim hresul As Result Dim key As String Dim filter As String table2.Clear If connectbase () Returnera sedan tabell2.Columns.Count = 2 tabell2.Kolumner [0] .Text = "id" tabell2.Kolumner [0 ] .Alignment = Align.Right table2.Columns [1] .Text = "Namn på ämnet eller kursen" filter = txtBuscar.Text hresul = hconn.Exec ("välj * från ämnen där ämnesnamn 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 ska ha det klart.

Slutsatser om räkor
För personer som har gjort en applikation i Visual Basic och är intresserade av att programmera, är detta ett av verktygen som utan tvekan kommer att intressera dig och det är ett klart alternativ som du bör överväga.

Tack vare de tester som vi kan se i denna handledning kan vi se att det är enkelt att arbeta och verkligen det tar inte mycket tid att göra någon annan enkel applikation för Linux.

Som vi kan se är autofyllningen som har räkor begränsad till det objekt du arbetar med, inte som i fallet med Geany, som kan sätta allt på dig. Vi måste ge det poäng eftersom det fungerar som Java och Netbeans och utan ytterligare komplikationer.

Så för dem som vill lära sig att programmera enkla applikationer i Linux och är nyfikna rekommenderar vi att du ger Gambas3 ett försök.

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave