- 1. Hoe Gambas3 te installeren
- 2. Maak een Gambas-project met DB en rapporteer
- 3. Uitvoeren van het Gambas-programma
- 4. Ontwerp van het formulier om studenten in te voeren
- 5. We zijn begonnen met het coderen van Gambas
- 6. Opgeslagen gegevens bekijken
- 7. Formulier maken om leerlinggegevens in te voeren
- 8. Gegevens zoeken configureren
- 9. We programmeren de sluitknop
Gambas is een ontwikkelomgeving die wordt gedistribueerd onder de GNU GPL-licentieHiermee kunnen we zeggen dat het niet alleen een programmeertaal is die is afgeleid van de basistaal, maar het is ook een zeer nuttig hulpmiddel bij het bouwen van visuele applicaties voor bijna elke GNU / Linux-distributie.
In Gambas heeft de programmeur de mogelijkheid om vensters grafisch te ontwerpen, objecten uit de gereedschapskist te slepen en vervolgens de basiscode voor elk object te schrijven.
Zoals we eerder zagen, is Gambas gebaseerd op een basisinterpreter met objectextensies, vergelijkbaar met Visual Basic. Maar het voordeel dat we hebben met Gambas is dat je snel je grafische applicatie kunt ontwerpen met QT of GTK +, toegang hebt tot MySQL-, PostgreSQL-, Firebird-, ODBC- en SQLite-databases, applicaties kunt besturen met DBUS, Front End van Linux-commando's kunt bouwen, 3D OpenGL-applicaties kunt doen , CGI-webapplicaties maken, installatiepakketten genereren voor onder andere verschillende distributies.
Om deze reden kunnen we zeggen dat het in Gambas geen kopie of kloon is van Visual Basic, aangezien het, ondanks dat het gebaseerd is op basic, een alternatief is om programma's en applicaties voor GNU-omgevingen te maken. Als we naar de geschiedenis van garnalen kijken, zullen we zien dat de eerste versie van garnalen in 1999 werd uitgebracht door de Fransman Benoît Minisini, waardoor een omgeving werd gecreëerd die ons in staat zou stellen om eenvoudig applicaties te programmeren en te ontwikkelen met een grafische gebruikersinterface.
Aanvankelijk was de programmavorm in Gambas vergelijkbaar met die van Gimp, met verschillende vensters, en gericht op het gebruik van Qt en KDE. Toen het in 2008 de sprong naar 2.x-versies maakte, betekende dit een volledig herontwerp van de grafische programmeerinterface, waarbij alles in een enkel venster werd geïntegreerd en het gebruik van GTK + mogelijk werd gemaakt. In 2011 sprong het naar versie 3.x.
Laten we beginnen met de Gambas3-installatie.
1. Hoe Gambas3 te installeren
De eenvoud van Gambas maakt het gemakkelijk te gebruiken, dus het is niet nodig om een programmeertaal te kennen. U hoeft alleen maar een gratis handleiding te hebben en er wat tijd aan te besteden. Om deze reden is het perfect om te leren als je net begint. Laten we eens kijken hoe we het op ons Linux-besturingssysteem kunnen installeren:
Eerst moeten we de opdrachtterminal openen en deze opdrachten één voor één invoeren:
sudo add-apt-repository ppa: gambas-team / gambas-daily sudo apt-get update sudo apt-get install gambas3Gambas installatie commando's
Met deze opdrachtregel kunnen we de laatste vrijgegeven versie van Gambas verkrijgen. Momenteel gaan ze voor 3.8.1, hoewel ik aanraad om de meest stabiele versie te hebben die we kunnen verkrijgen met deze andere commando's, maar we moeten niet vergeten dat we de twee PPA's nooit tegelijkertijd kunnen toevoegen, we kunnen er maar één hebben van de twee, dit is omdat we een fout kunnen veroorzaken en we zouden opnieuw moeten beginnen met het opschonen van de vorige installaties.
2. Maak een Gambas-project met DB en rapporteer
Het eerste dat we moeten doen, is de database ontwerpen die we nodig hebben om onze informatie op te slaan. Degene die ik voorstel zal "studenten" worden genoemd en zal twee tabellen hebben (studenten en vakken).
Studententabel: ID, ID, namen, achternamen, adres, telefoon en e-mail. Onderwerptabel: id, subject_nameOm dit te doen gebruiken we een zeer eenvoudige manager voor databaseontwerp, genaamd SQLite-gegevensbrowser, we openen het en maken de database aan door op de nieuwe knop te klikken. We zoeken waar we het zullen opslaan en maken de tabellen volgens het vorige ontwerp.
Eenmaal gemaakt ziet het er als volgt uit:
We laten het ID-veld als primaire sleutel in beide tabellen. Voordat we de minimanager sluiten, voegen we er wat gegevens aan toe om de werking ervan te controleren wanneer we de formulieren in het programma ontwerpen. Als we nu op de knop Opslaan kunnen klikken en de mini databrowser manager.
3. Uitvoeren van het Gambas-programma
We openen Gambas en maken een nieuw project met de naam en het bijbehorende pad:
VERGROTEN
Voor meer gemak plaatsen we de database die is gemaakt in de map die voor het project is gemaakt, in dit geval de map met de naam GestionEstudiantes, zodat het gemakkelijk is om het pad in het programma te vinden.
‘We configureren de exit-knop. Openbare sub btnCerrar_Click () Afsluiten EindeWe hebben twee nieuwe formulieren gemaakt, voor het invoeren van studenten en voor vakken.
Nu configureren we de knop om studenten in te voeren:
Public Sub btnNuevoEstudiante_Click () FMain.Hide FormEstudiantes.Show EndWe configureren ook de knop onderwerp toevoegen:
Public Sub btnNuevaAsignatura_Click () FMain.Hide FormCourses.Show EndDus we zullen het hebben toegewezen.
4. Ontwerp van het formulier om studenten in te voeren
Om te beginnen zetten we een kolomweergave en twee knoppen waarop we respectievelijk de nieuwe tekst zullen plaatsen en afsluiten (Teksteigenschap).
We kunnen, als we dat willen, een pictogram aan elke knop toevoegen via de afbeeldingseigenschap. Naar de kolomweergave we zullen het gewoon "tafel" noemen (In eigendomsnaam) het lijkt erg op elke tabel en we proberen dit eerste databaseproject zo eenvoudig mogelijk te houden.
We noemen de knoppen: btnnew Y uitgaan.
Het formulier zou er als volgt uitzien:
We configureren de sluitknop van het formulier.
Public Sub btnExit_Click () Me.Close EndNu gaan we verder met coderen.
5. We zijn begonnen met het coderen van Gambas
We gaan wat code in ons programma plaatsen en we zullen er commentaar op geven. Het eerste in een database is de verbinding ermee. Hiervoor biedt Gambas ons de Verbindingsobject.
Alles dat met een enkele apostrof in de code verschijnt, is een opmerking die niet door het programma zal worden geïnterpreteerd.
Voorbeeld:
Variabele 'Project Test Private hconn As Connection' om de verbinding tot stand te brengen Private Function ConnectBase () As Boolean 'variabele voor de verbinding, retourneert een true of false waarde If hconn Null Then Return False' controleren we of de verbinding niet open is hconn = New Verbinding 'We initialiseren de verbinding met de nieuwe methode en dan geven we deze de parameters door met hconn' parameter voor het databasepad hconn.Host = "/ home / test" hconn.Name = "studenten" 'databasenaam hconn.Type = " sqlite3" 'database type Probeer hconn.Open ()' we proberen de verbinding te openen als het ons niet lukt, sturen we een foutmelding en geven deze de waarde null If Error Dan hconn = Null Message.Error ("Failed to connect to de database") Return True Endif Return False EndNadat u de bovenstaande code hebt gekopieerd, klikt u op de optie Uitvoeren in het menu Foutopsporing. Als alles goed gaat, zou er geen fout moeten verschijnen en zal het scherm van ons project opnieuw verschijnen. Dat betekent dat de verbinding met onze Database naar tevredenheid tot stand is gebracht.
In het geval van een fout zijn hier mogelijke oorzaken:
Oorzaken van foutenLaten we eens kijken naar de soorten oorzaken:
1. Bij het kopiëren en plakken van de code moet je rekening houden met de aanhalingstekens, die bij het kopiëren en plakken vaak veranderen en dus niet herkend worden door de applicatie. In dit geval is het raadzaam om de aanhalingstekens te verwijderen en handmatig te plaatsen. De code tussen de aanhalingstekens moet in fuchsia zijn om te weten dat deze correct is.
2. Een andere mogelijke fout is dat de overeenkomstige opties niet zijn gemarkeerd op het tabblad Projecteigenschappen, die u kunt vinden door op het menu Project te klikken en vervolgens op Eigenschappen en daar in het tabblad Componenten te controleren of de volgende opties zijn gemarkeerd:
- bg
- gb.db
- gb.db.sqlite3
- nl.formulier
- gb.db.mysql (Dit zou niet nodig moeten zijn voor de database die we maken, maar we markeren het toch)
3. Een andere veel voorkomende fout is het pad waar we zowel het project als de database hebben, dat is waar de gemarkeerde regels zich in de code bevinden die moet worden gekopieerd en geplakt.
Nadat we de mogelijke fouten hebben gecorrigeerd en hebben gecontroleerd of onze applicatie werkt, gaan we verder met het sluiten van de verbinding door de volgende code aan het einde te plaatsen.
PUBLIC SUB sluit verbinding () IF hconn = NULL THEN RETURN hconn.Close () hconn = NULL ENDEerst zien we dat het niet meer gesloten is, zo niet, dan sluiten we het met .dichtbij
6. Opgeslagen gegevens bekijken
We openen het formulier en binnen de Formulier proces en we zetten de volgende code:
(Vergeet niet om de aanhalingstekens te controleren die bij het plakken van de code veranderd kunnen zijn).
Public Sub Form_Open () 'eerst declareren we de variabelen en wissen we de columnview Dim hresul As Result Dim key As String Dim filter As String table Clear If ConnectBase () Then Return' we bevestigen de verbinding met de database 'we definiëren de eigenschappen voor de columnview 'tel voor aantal kolommen' tekst voor de titel van de kolommen 'breedte voor de breedte van de kolommen' oplijning voor de uitlijning van de velden. table.Columns.Count = 6 table.Columns [0] .Text = "Cedula" table.Columns [0] .Alignment = Align.Center table.Columns [0] .Width = 100 table.Columns [1] .Text = "Namen" table.Columns [1] .Alignment = Align.Center table.Columns [1] .Width = 120 table.Columns [2] .Text = "Achternaam" table.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]. Tekst = "Telefoon" tabel.Kolommen [4] .Uitlijning = Uitlijning.Center tabel.Kolommen [4] .Breedte = 120 tabel.Kolommen [5] .Text = "Mail" tabel.Kolommen [5] .Uitlijning = Uitlijnen. Center table.Columns [5] .Width = 120 hresul = hconn.Exec ("selecteer * van studenten") 'Deze instructie doorzoekt de database, als het gegevens vindt, wordt de hresul-variabele waar en daarom beschikbaar (Beschikbaar) Do While hresul .Beschikbaar 'dan gaat het door de tabel met een do while-lus op basis van de sleutel (Cedula) en vult de tabel met de gegevens. key = hresul ["ID"] 'we maken het ID-veld als primair voor tabelzoekopdrachten.Toevoegen (wachtwoord, wachtwoord)' we voegen de gegevens toe die in de database zijn gevonden. tabel [sleutel] [1] = hresul ["namen"] tabel [sleutel] [2] = hresul ["achternaam"] tabel [sleutel] [3] = hresul ["adres"] tabel [sleutel] [4] = hresul ["phone"] table [key] [5] = hresul ["mail"] hresul.MoveNext () 'deze instructie versnelt het zoeken naar de volgende gegevenslus' Voert de instructies binnen de lus opnieuw uit totdat er geen gegevens weer te geven. CloseConnection () 'sluit de verbinding End'Formulier proces
Aan het einde voeren we het uit en controleren we de werking ervan, wat het volgende resultaat oplevert:
VERGROTEN
7. Formulier maken om leerlinggegevens in te voeren
Nu gaan we een nieuw formulier maken waarmee we gegevens voor nieuwe studenten kunnen invoeren, de voorgestelde naam hiervoor is edata.
Het zal de volgende objecten hebben: 6 labellabels, 6 tekstvakken en twee knoppen.
De voorgestelde indeling is als volgt:
Om te zien of alles goed gaat, gaan we naar het formulier dat de lijst met studenten toont en configureren de nieuwe knop als volgt:
VERGROTEN
Als er geen fouten zijn en alles goed gaat, gaan we verder met het configureren van het nieuw gemaakte formulier om nieuwe studentgegevens in te voeren. Dit formulier krijgt een verwijzing naar een object van het type verbinding, in ons geval hconn daarom plaatsen we het aan het begin van ons formulier.
'Gambas-klassebestand' eerst configureren we de verbinding Private hconn As Connection 'we maken een runnew-methode die wordt aangeroepen vanuit het formulier met de studenten Public Sub runnew (data As Connection) hconn = data' referentie voor het vorige formulier Me. ShowModal () 'forceert interactie met het formulier voordat het wordt gesloten. End We configureren de annuleerknop: Public Sub btnCancelar_Click () Me.Close (0) End Om nieuwe gegevens in te voeren, gebruiken we de volgende instructie: TRY hconn.EXEC (“ invoegen in mytable waarden ( & 1, & 2, & 3, & 4, & 5. & 6) ”, txtid, txtname, txlastname, txtphone, txtmobile, txtcumple) exec De velden worden aangeroepen door een ampersand en de overeenkomstige index zoals hieronder weergegeven. (& 1, & 2, & 3, & 4, & 5. & 6)Laten we teruggaan naar het vorige formulier en de acceptatieknop als volgt configureren:
VERGROTEN
Eerst proberen we verbinding te maken met onze database, als het ons niet lukt, vertrekken we. Toen de verbinding tot stand was gebracht, belden we: runnewde fdata-methode. Omdat dit formulier in modale vorm wordt weergegeven, wacht deze code op ons om gegevens in fdata in te voeren of we sluiten het gewoon.
Vervolgens wordt de verbinding gesloten en wordt de methode form_open aangeroepen die de gegevens opnieuw laadt om de aangebrachte wijzigingen weer te geven. Nu gaan we kijken hoe we een record kunnen wijzigen, bijvoorbeeld als een vriend van mobiel verandert, bewerk dat veld dan gewoon.
We gaan profiteren van de activeringsgebeurtenis van onze controle kolomweergave (tabel) om deze functionaliteit toe te voegen. Deze gebeurtenis wordt geactiveerd door te dubbelklikken op een kolom in de tabel.
Public Sub table_Activate () Dim hresul As Resultaat If table.Current = Null Then Return If ConnectBase () Then Return hresul = hconn.Edit ("studenten", "ID = & 1", table.Current.Key) edata.runedit ( hresul ) 'Noem de runeedit-methode van het formulier edata table.Current [0] = hresul ["ID"] table.Current [1] = hresul ["first names"] table.Current [2] = hresul ["achternamen "] tabel. Huidig [3] = hresul ["adres"] tabel. Huidig [4] = hresul ["telefoon"] tabel. Huidig [5] = hresul ["mail"] closeConnection () EndEvenement activeren
De vetgedrukte regel is degene die de noemt edata runedit-methode. Aangezien we deze methode nog niet hebben gemaakt, zal het niet werken als we het nu proberen uit te voeren.
Laten we daarom terugkeren naar leeftijd en laten we de volgende variabelen aan het begin van het formulier plaatsen, zodat ze toegankelijk zijn vanuit het hele formulier.
Privé hconn Als verbinding Privé hresul als resultaat Privé bewerken als BooleanLaten we dan de nieuwe methode maken genaamd runedit:
Public Sub runedit (gegevens als resultaat) hresul = gegevensbewerking = True txtCedula.Text = hresul ["ID"] txtName.Text = hresul ["voornaam"] txtName.Text = hresul ["achternaam"] txtAddress.Text = hresul [ "adres"] txtTelephone.Text = hresul ["telefoon"] txtEmail.Text = hresul ["mail"] Me.ShowModal EndDit toont ons edata met de gegevens van het geselecteerde record zodat we het kunnen bewerken en zet de variabele bewerking met de waarde waar. Dit is nodig zodat het gebruik van een voorwaardelijke instructie bij het klikken op btna accepteren Maak onderscheid tussen nieuw en wijzigen.
We kunnen het testen, hoewel het nog steeds niet werkt, het ontbreekt nog steeds stel de acceptatieknop in, maar we kunnen controleren of het ons naar het gevraagde formulier leidt.
Laten we de knop Accepteren configureren om de wijzigingen op te slaan:
Public Sub btnAccept_Click () Indien bewerken Probeer dan hresul ["cedula"] = txtCedula.Text Probeer hresul ["names"] = txtNames.Text Probeer hresul ["achternamen"] = txtSurname.Text Probeer hresul ["adres"] = txt .Text Probeer hresul ["phone"] = txtTelephone.Text Probeer hresul ["mail"] = txtEmail.Text Probeer hresul.Update Else Probeer hconn.Exec ("voeg in studentenwaarden in (& 1, & 2, & 3 , & 4, & 5, & 6) ", txtCedula.Text, txtName.Text, txtSurname.Text, txtAddress.Text, txtTelephone.Text, txtEmail.Text) 'Hiermee voeren we de verzonden informatie in Endif Me.Close () Catch Message.Error ("Onmogelijk om de verzonden gegevens in te voeren") EindeWe kunnen de wijzigingen nu opslaan.
8. Gegevens zoeken configureren
Laten we een zoekknop en een tekstvak aan het formulier toevoegen. Dit is de nieuwe look van het formulier:
VERGROTEN
We configureren de zoekknop op dezelfde manier als de nieuwe knop, dit is de code:
Public Sub btnBuscar_Click () Dim hresul As Resultaat 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 = "Achternaam" table.Columns [2] .Alignment = Align.Center table.Columns [2] .Width = 120 table.Columns [3] .Text = "Adres" table. Kolommen [3] .Alignment = Align.Center table.Columns [3] .Width = 120 table.Columns [4] .Text = "Telefoon" table.Columns [4] .Alignment = Align.Center table.Columns [4] Breedte = 120 table.Columns [5] .Text = "Mail" table.Columns [5] .Alignment = Align.Center table.Columns [5] .Width = 120 filter = txtBuscar.Text hresul = hconn.Exec (" selecteer * van studenten waar namen als '"& filter &"' ") Do While hresul.Available key = hresul [" ID "] table.Add (key, key) table [key] [1] = hresul [" name res "] tabel [wachtwoord] [2] = hresul [" achternaam "] tabel [wachtwoord] [3] = hresul [" adres "] tabel [wachtwoord] [4] = hresul [" telefoon "] tabel [wachtwoord] [ 5] = hresul ["mail"] hresul.MoveNext () Loop closeConexion () EndMet wat we hebben gedaan, kunnen we al duidelijk zijn over het proces, nu gaan we hetzelfde doen met het formulier voor de onderwerpen. De voorgestelde lay-out is de volgende:
Zoals altijd is het eerste dat we gaan programmeren de exit-knop:
Public Sub btnExit_Click () Me.Close EndNu gaan we de verbinding met de database maken:
Private hconn As Connection Private Function connectbase () As Boolean If hconn Null Return False hconn = Nieuwe verbinding hconn.Host = "/ home / test" hconn.Name = "studenten" 'databasenaam hconn.Type = " sqlite3 "'database type Try hconn.Open () If Error Then hconn = Null Message.Error ("Fout bij het verbinden van database") Return True Endif Return False EndWe plannen het evenement om de verbinding te sluiten:
Public Sub closeConexion () If hconn = Null Return hconn.Close () hconn = Null EndNu visualiseren we de gegevens in de kolomweergave, in het open geval van het formulier.
De code is de volgende:
Public Sub Form_Open () Dim hresul As Resultaat Dim-sleutel As String Dim filter As String table2.Clear If connectbase () Return table2.Columns.Count = 2 table2.Columns [0] .Text = "id" table2.Columns [0 ] .Alignment = Align.Right table2.Columns [1] .Text = "Naam van het onderwerp of de cursus" hresul = hconn.Exec ("selecteer * uit onderwerpen") Do While hresul.Available key = hresul ["id"] table2.Add (key, key) table2 [key] [1] = hresul ["matter_name"] hresul.MoveNext () Loop closeConnection () EndNu maken we het formulier om de gegevens van de tabel, vakken of cursussen toe te voegen en/of te bewerken. De voorgestelde naam is adata. (betrokkenen).
9. We programmeren de sluitknop
Public Sub btnCerrar_Click () Me.Close EndWe maken de verwijzing naar een object van het type verbinding, in ons geval hconn, daarom plaatsen we aan het begin van ons adata-formulier de volgende code:
Privé hconn als verbindingDaarnaast maken we de runnew-methode die wordt aangeroepen vanuit het hoofdformulier. De syntaxis is als volgt:
Public Sub runnew (gegevens als verbinding) hconn = gegevens Me.ShowModal () EndNu gaan we naar het formulier om de gegevens van de onderwerpen in te voeren en in het btnnuevo click event plaatsen we de volgende code:
Public Sub btnNuevo_Click () If connectbase () Then Return adata.runnew (hconn) closeConexion () Form_Open () EndNu kunnen we probeer nieuwe knop van genoemde vorm.
We gaan verder met hetzelfde formulier en coderen de methode voor het wijzigen van records als volgt. We gaan profiteren van het activeerevenement van onze colunmview-besturing (tabel) om deze functionaliteit toe te voegen. Deze gebeurtenis wordt geactiveerd door te dubbelklikken op een kolom in de tabel.
Public Sub table2_Activate () Dim hresul As Resultaat 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 () EndOnthoud dat het pas werkt als we dit evenement in het adata-formulier hebben aangemaakt. Laten we daarom terugkeren naar fdata en laten we de volgende variabelen aan het begin van het formulier plaatsen, zodat ze toegankelijk zijn vanuit het hele formulier.
PRIVATE hconn AS Verbinding PRIVATE hresul AS Resultaat PRIVATE bewerking AS BooleanWe maken de runedit-methode waarvan de code de volgende is:
Public Sub runedit (gegevens als resultaat) hresul = gegevensbewerking = True txtAsignaturas.Text = hresul ["subject_name"] Me.ShowModal EndVergeet niet om te testen om te controleren of alles goed gaat. nutsvoorzieningen we programmeren de acceptatieknop als volgt:
Public Sub btnAceptar_Click () Bij bewerken Probeer dan hresul ["subject_name"] = txtAsignaturas.Text Probeer hresul.Update Else Probeer hconn.Exec ("insert in subject_name values (& 1)", txtAsignaturas.Text) Endif Me.Close () Catch Message.Error ("Kan verzonden gegevens niet invoeren") EindeNu programmeren we de onderwerpzoekroutine:
Public Sub btnBuscar_Click () Dim hresul As Resultaat Dim-toets As String Dim filter As String table2.Clear If connectbase () Return table2.Columns.Count = 2 table2.Columns [0] .Text = "id" table2.Columns [0 ] .Alignment = Align.Right table2.Columns [1] .Text = "Naam van het onderwerp of de cursus" filter = txtBuscar.Text hresul = hconn.Exec ("selecteer * van onderwerpen waar onderwerpnaam zoals '" & filter & "' ") Do While hresul.Available key = hresul [" id "] table2.Add (key, key) table2 [key] [1] = hresul [" matter_name "] hresul.MoveNext () Loop closeConexion () EndWe zullen het klaar hebben.
Conclusies over garnalen
Voor mensen die een applicatie in Visual Basic hebben gemaakt en geïnteresseerd zijn in programmeren, is dit een van de tools die je ongetwijfeld zal interesseren en het is een duidelijke optie die je zou moeten overwegen.
Dankzij de tests die we in deze tutorial kunnen zien, kunnen we zien dat het gemakkelijk is om te werken en echt het kost niet veel tijd om een andere eenvoudige applicatie voor Linux te maken.
Zoals we kunnen zien, is het automatisch aanvullen met garnalen beperkt tot het object waarmee u werkt, niet zoals in het geval van Geany, dat alles op u kan zetten. We moeten het punten geven omdat het werkt als Java en Netbeans en zonder verdere complicaties.
Dus voor degenen die eenvoudige applicaties in Linux willen leren programmeren en nieuwsgierig zijn, raden we je aan Gambas3 eens te proberen.