Projet Gambas Linux

Gambas est un environnement de développement distribué sous licence GNU GPLAvec cela, nous pouvons dire que ce n'est pas seulement un langage de programmation dérivé du langage de base, mais c'est aussi un outil très utile lors de la création d'applications visuelles pour presque toutes les distributions GNU / Linux.

Dans Gambas, le programmeur a la possibilité de concevoir des fenêtres graphiquement, en faisant glisser des objets de la boîte à outils, puis en écrivant le code en basique pour chaque objet.

Comme nous l'avons vu précédemment, Gambas est basé sur un interpréteur basique avec des extensions d'objets, similaire à Visual Basic. Mais l'avantage que nous avons avec Gambas est que vous pouvez rapidement concevoir votre application graphique avec QT ou GTK+, accéder aux bases de données MySQL, PostgreSQL, Firebird, ODBC et SQLite, contrôler les applications avec DBUS, construire le Front End de commandes Linux, faire des applications 3D OpenGL , créer des applications Web CGI, générer des packages d'installation pour diverses distributions, entre autres.

Pour cette raison, nous pouvons dire que dans Gambas, il ne s'agit pas d'une copie ou d'un clone de Visual Basic, car bien qu'il soit basé sur Basic, il s'agit d'une alternative pour créer des programmes et des applications pour les environnements GNU. Si nous regardons l'histoire des crevettes, nous constaterons que la première version des crevettes a été publiée en 1999 par le Français Benoît Minisini, créant un environnement qui nous permettrait de programmer et de développer facilement des applications avec une interface utilisateur graphique.

Au début, la forme du programme de Gambas était similaire à celle de Gimp, avec plusieurs fenêtres, et orientée vers l'utilisation de Qt et KDE. Lorsqu'il a fait le saut vers les versions 2.x en 2008, il s'agissait d'une refonte complète de l'interface de programmation graphique, intégrant tout dans une seule fenêtre, et permettant l'utilisation de GTK+. En 2011, il est passé à la version 3.x.

Commençons par le Installation de Gambas3.

1. Comment installer Gambas3


La simplicité de Gambas le rend facile à utiliser, il n'est donc pas nécessaire de connaître un langage de programmation. Vous avez juste besoin d'avoir un manuel gratuit et d'y consacrer du temps. Pour cette raison, il est parfait pour apprendre si vous débutez. Eh bien, apprenons à l'installer sur notre système d'exploitation Linux :

Tout d'abord, nous devons ouvrir le terminal de commande et entrer ces commandes une par une :

 sudo add-apt-repository ppa: gambas-team / gambas-daily sudo apt-get update sudo apt-get install gambas3 
Commandes d'installation de Gambas

Avec cette ligne de commande, nous pouvons obtenir la dernière version publiée de Gambas. Actuellement, ils optent pour la 3.8.1, bien que je recommande d'avoir la version la plus stable que nous puissions obtenir en utilisant ces autres commandes, mais nous devons garder à l'esprit que nous ne pouvons jamais ajouter les deux PPA en même temps, nous ne pouvons en avoir qu'un des deux, c'est parce que nous pourrions provoquer une erreur et nous aurions à recommencer le nettoyage des installations précédentes.

2. Créer un projet Gambas avec DB et rapport


La première chose que nous devons faire est de concevoir la base de données dont nous avons besoin pour stocker nos informations. Celui que je propose s'appellera « étudiants » et comportera deux tableaux (étudiants et matières).
 Table des élèves : pièce d'identité, pièce d'identité, noms, prénoms, adresse, téléphone et e-mail. Table des sujets : id, subject_name 
Pour ce faire, nous utilisons un gestionnaire très simple pour la conception de bases de données, appelé Navigateur de données SQLite, nous l'ouvrons et créons la base de données en cliquant sur le bouton nouveau. Nous localisons où nous allons l'enregistrer et créer les tableaux selon la conception précédente.

Une fois créé, cela ressemblerait à ceci :

Nous laisserons le champ ID comme clé primaire dans les deux tables. Avant de fermer le mini-manager, nous y ajoutons quelques données pour vérifier son fonctionnement lorsque nous concevons les formulaires dans le programme. Maintenant, si nous pouvons cliquer sur le bouton Enregistrer et fermer le mini gestionnaire de navigateur de données.

3. Exécution du programme Gambas


Nous ouvrons Gambas et créons un nouveau projet en lui donnant le nom et le chemin correspondant :

AGRANDIR

Pour plus de commodité, nous plaçons la base de données créée dans le dossier créé pour le projet, dans ce cas le dossier appelé GestionEstudiantes, il sera donc facile de localiser son chemin dans le programme.

 « Nous configurons le bouton de sortie. Public Sub btnCerrar_Click () Quitter Fin 
Nous avons créé deux nouveaux formulaires, pour l'inscription des étudiants et pour les matières.

Maintenant, nous configurons le bouton pour entrer les étudiants :

 Public Sub btnNuevoEstudiante_Click () FMain.Hide FormEstudiantes.Show End 
Nous configurons également le bouton ajouter un sujet :
 Public Sub btnNuevaAsignatura_Click () FMain.Hide FormCourses.Show End 
Nous l'aurons donc attribué.

4. Conception du formulaire de saisie des étudiants


Pour commencer, nous mettons un vue de la colonne et deux boutons auxquels nous mettrons le nouveau texte et quitterons respectivement (Propriété Texte).

On peut, si on le souhaite, ajouter une icône à chaque bouton via sa propriété picture. Au vue de la colonne nous l'appellerons simplement "table" (Dans le nom de la propriété) elle est très similaire à n'importe quelle table et nous essayons de garder ce premier projet de base de données aussi simple que possible.

Nous appellerons les boutons : btnnew Oui sortir.

Le formulaire ressemblerait à ceci :

Nous configurons le bouton de fermeture du formulaire.

 Public Sub btnExit_Click () Me.Close End 
Passons maintenant au codage.

5. Nous avons commencé à coder Gambas


Nous allons commencer à mettre du code dans notre programme, et nous le commenterons. La première chose dans une base de données est la connexion à celle-ci. Pour cela, Gambas nous fournit les Objet de connexion.

Tout ce qui apparaît avec une seule apostrophe dans le code est un commentaire qui ne sera pas interprété par le programme.

Exemple:

 Variable 'Project Test Private hconn As Connection' pour établir la connexion Private Function ConnectBase() As Boolean 'variable pour la connexion, retourne une valeur true ou false If hconn Null Then Return False' on vérifie que la connexion n'est pas ouverte hconn = New Connexion 'On initialise la connexion avec la nouvelle méthode puis on lui passe les paramètres avec le paramètre hconn' pour le chemin de la base de données hconn.Host = "/ home / test" hconn.Name = "students" 'nom de la base de données hconn.Type = " sqlite3" 'type de base de données Try hconn.Open ()' nous essayons d'ouvrir la connexion si nous n'y parvenons pas nous envoyons un message d'erreur et nous lui donnons la valeur null If Error Then hconn = Null Message.Error ( "Impossible de se connecter à la base de données") Return True Endif Return False End 
Une fois que vous avez copié le code ci-dessus, cliquez sur l'option Exécuter dans le menu Déboguer. Si tout se passe bien, aucune erreur ne devrait apparaître et l'écran de notre projet réapparaîtra. Ce qui signifie que la connexion à notre base de données a été effectuée de manière satisfaisante.

En cas d'erreur, voici les causes possibles :

Causes d'erreurRegardons les types de causes :

1. Lors du copier-coller du code, vous devez tenir compte des guillemets, qui sont souvent modifiés lors du copier-coller et ne sont donc pas reconnus par l'application. Dans ce cas, il est conseillé de supprimer les guillemets et de les placer manuellement. Le code à l'intérieur des guillemets doit être en fuchsia pour savoir qu'il est correct.

2. Une autre erreur possible est de ne pas avoir coché les options correspondantes dans l'onglet Propriétés du projet, que l'on peut trouver en cliquant sur le menu Projet, puis Propriétés et là dans l'onglet Composants, vérifiez que les options suivantes sont cochées :

  • bg
  • gb.db
  • gb.db.sqlite3
  • gb.form
  • gb.db.mysql (Cela ne devrait pas être nécessaire pour la base de données que nous créons, mais nous la marquons quand même)

3. Une autre erreur très courante est le chemin où nous avons à la fois le projet et la base de données, où se trouvent les lignes en surbrillance dans le code à copier et coller.

Après avoir corrigé les éventuelles erreurs et vérifié que notre application fonctionne, nous procédons à la fermeture de la connexion en plaçant le code suivant à la fin.

 PUBLIC SUB fermer la connexion () SI hconn = NULL ALORS RETOUR hconn.Close () hconn = NULL END 
On voit d'abord qu'il n'est plus fermé, sinon, on le ferme avec .Fermer

6. Afficher les données stockées


Nous ouvrons le formulaire et dans le Processus de formulaire et on met le code suivant :

(N'oubliez pas de vérifier les guillemets qui lors du collage du code auraient pu être modifiés).

 Public Sub Form_Open () 'nous déclarons d'abord les variables et effaçons la columnview Dim hresul As Result Dim key As String Dim filter As String table Clear If ConnectBase () Then Return' nous confirmons la connexion avec la base de données 'nous définissons les propriétés de la columnview 'compter pour le nombre de colonnes' texte pour le titre des colonnes 'largeur pour la largeur des colonnes' alignement pour l'alignement des champs. table.Columns.Count = 6 table.Columns [0] .Text = "Cedula" table.Columns [0] .Alignment = Align.Center table.Columns [0] .Width = 100 table.Columns [1] .Text = Tableau "Noms".Colonnes [1] .Alignement = Aligner.Centrer le tableau.Colonnes [1] .Largeur = 120 tableau.Colonnes [2] .Text = Tableau "Nom".Colonnes [2] .Alignment = Aligner.Centrer le tableau .Columns [2] .Width = 120 table.Columns [3] .Text = "Address" table.Columns [3] .Alignment = Align.Center table.Columns [3] .Width = 120 table.Columns [4]. Text = Table "Téléphone".Colonnes [4] .Alignment = Aligner.Tableau central.Colonnes [4] .Largeur = 120 table.Colonnes [5] .Text = Table "Mail".Colonnes [5] .Alignment = Aligner. Center table.Columns [5] .Width = 120 hresul = hconn.Exec ("sélectionner * parmi les étudiants") 'Cette instruction recherche dans la base de données, si elle trouve des données, elle rend la variable hresul vraie et donc disponible (Disponible) Do While hresul .Disponible 'alors il parcourra le tableau avec une boucle do while basée sur la clé (Cedula) et remplira le tableau avec les données. key = hresul ["ID"] 'nous faisons du champ ID le champ principal pour les recherches de table.Ajouter (mot de passe, mot de passe)' nous ajoutons les données trouvées dans la base de données. table [clé] [1] = hresul ["noms"] table [clé] [2] = hresul ["nom"] table [clé] [3] = hresul ["adresse"] table [clé] [4] = hresul ["téléphone"] table [clé] [5] = hresul ["mail"] hresul.MoveNext () 'cette instruction fait avancer la recherche à la prochaine boucle de données' Réexécute les instructions à l'intérieur de la boucle jusqu'à ce qu'il n'y en ait plus données à afficher. CloseConnection() 'ferme la connexion End 
Processus de formulaire

À la fin, nous l'exécutons et vérifions son fonctionnement, ce qui renverra le résultat suivant :

AGRANDIR

7. Créer un formulaire pour saisir les données des étudiants


Maintenant, nous allons créer un nouveau formulaire qui nous permet d'entrer des données pour les nouveaux étudiants, le nom suggéré est edata.

Il aura les objets suivants : 6 étiquettes d'étiquettes, 6 zones de texte et deux boutons.

La disposition suggérée est la suivante :

Pour voir si tout se passe bien, on va sur le formulaire qui affiche la liste des étudiants et on configure le nouveau bouton comme suit :

AGRANDIR

S'il n'y a pas d'erreurs et que tout se passe bien, configurons le formulaire nouvellement créé pour saisir les nouvelles données des étudiants. Ce formulaire recevra une référence à un objet de type connexion, dans notre cas hconn nous le plaçons donc au début de notre formulaire.

 'Fichier de classe Gambas' nous configurons d'abord la connexion Private hconn As Connection 'nous créons une méthode runnew qui sera appelée à partir du formulaire qui répertorie les étudiants Public Sub runnew (data As Connection) hconn = data' référence pour le formulaire précédent Me. ShowModal() 'oblige à interagir avec le formulaire avant de le fermer End Nous configurons le bouton d'annulation : Public Sub btnCancelar_Click() Me.Close (0) End Pour saisir de nouvelles données, nous utiliserons l'instruction suivante : TRY hconn.EXEC (“ insérer dans mytable les valeurs ( & 1, & 2, & 3, & 4, & 5. & 6) ”, txtid, txtname, txlastname, txtphone, txtmobile, txtcmple) exec Les champs seront appelés par une esperluette et le indice correspondant comme indiqué ci-dessous. (& 1, & 2, & 3, & 4, & 5. & 6) 
Revenons au formulaire précédent et configurons le bouton accepter comme suit :

AGRANDIR

Nous essayons d'abord de nous connecter à notre base de données, si nous n'y parvenons pas, nous partons. Une fois la connexion établie, nous avons appelé méthode runnewde fdata. Comme ce formulaire est affiché sous forme modale, ce code attend que nous saisissions des données dans fdata ou que nous le fermions simplement.

Il ferme ensuite la connexion et appelle la méthode form_open qui recharge les données pour afficher les modifications apportées. Maintenant, nous allons voir comment modifier un enregistrement, par exemple si un ami change de mobile, modifiez simplement ce champ.

Nous allons profiter de l'événement activate de notre contrôle vue de la colonne (tableau) pour ajouter cette fonctionnalité. Cet événement est déclenché en double-cliquant sur n'importe quelle colonne du tableau.

 Public Sub table_Activate () Dim hresul As Result If table.Current = Null Then Return If ConnectBase () Then Return hresul = hconn.Edit ("students", "ID = & 1", table.Current.Key) edata.runedit ( hresul ) 'Appelle la méthode runeedit du formulaire edata table.Current [0] = hresul ["ID"] table.Current [1] = hresul ["prénoms"] table.Current [2] = hresul ["noms de famille "]. Table actuelle [3] = hresul ["adresse"] table.Current [4] = hresul ["téléphone"] table.Current [5] = hresul ["mail"] closeConnection () End 
Activer l'événement

La ligne en gras est celle qui appelle le méthode de modification des données runedit. Comme nous n'avons pas encore créé cette méthode, si nous essayons de l'exécuter maintenant, cela ne fonctionnera pas.

Revenons donc à âge et plaçons les variables suivantes au début du formulaire afin qu'elles soient accessibles depuis l'ensemble du formulaire.

 Private hconn As Connection Private hresul As Result Édition privée As Boolean 
Créons ensuite la nouvelle méthode appelée runemodifier:
 Public Sub runedit (data As Result) hresul = édition de données = True txtCedula.Text = hresul ["ID"] txtName.Text = hresul ["firstname"] txtName.Text = hresul ["last name"] txtAddress.Text = hresul [ "adresse"] txtTelephone.Text = hresul ["téléphone"] txtEmail.Text = hresul ["mail"] Me.ShowModal End 
Cela nous montre des données avec les données de l'enregistrement sélectionné afin que nous puissions l'éditer et met la variable d'édition avec la valeur true. Ceci est nécessaire pour que l'utilisation d'une instruction conditionnelle lors du clic btna accepter Distinguer entre nouveau et modifier.

On peut le tester même s'il ne fonctionnera toujours pas, il manque encore définir le bouton d'acceptation, mais nous pouvons vérifier qu'il nous amène au formulaire demandé.

Configurons le bouton accepter pour enregistrer les modifications :

 Public Sub btnAccept_Click () Si édition Alors essayez hresul ["cedula"] = txtCedula.Text Essayez hresul ["noms"] = txtNames.Text Essayez hresul ["surnames"] = txtSurname.Text Essayez hresul ["adresse"] = txtAddress .Text Try hresul ["phone"] = txtTelephone.Text Try hresul ["mail"] = txtEmail.Text Try hresul.Update Else Try hconn.Exec ("insérer dans les valeurs des étudiants (& 1, & 2, & 3 , & 4, & 5, & 6) ", txtCedula.Text, txtName.Text, txtSurname.Text, txtAddress.Text, txtTelephone.Text, txtEmail.Text) 'avec cela, nous entrons les informations envoyées Endif Me.Close () Catch Message.Error ("Impossible de saisir les données envoyées") Fin 
Nous pouvons maintenant enregistrer les modifications.

8. Configurer la recherche de données


Ajoutons un bouton de recherche et une zone de texte au formulaire. Voici le nouveau look du formulaire :

AGRANDIR

Nous configurons le bouton de recherche d'une manière similaire au nouveau bouton, voici le code :

 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 = "Last name" table.Columns [2] .Alignment = Align.Center table.Columns [2] .Width = 120 table.Columns [3] .Text = "Address" table. Colonnes [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 = Align.Center table.Columns [5] .Width = 120 filter = txtBuscar.Text hresul = hconn.Exec (" sélectionnez * parmi les étudiants où des noms comme '"& filter &"' ") Do While hresul.Available key = hresul [" ID "] table.Add (key, key) table [key] [1] = hresul [" name res "] table [mot de passe] [2] = hresul [" nom de famille "] table [mot de passe] [3] = hresul [" adresse "] table [mot de passe] [4] = hresul [" téléphone "] table [mot de passe] [ 5] = hresul ["mail"] hresul.MoveNext () Boucle closeConexion () End 
Avec ce que nous avons fait, nous pouvons déjà être clairs sur le processus, maintenant nous allons faire de même avec le formulaire pour les sujets. Le mise en page suggérée est le suivant:

Comme toujours, la première chose que nous allons programmer est le bouton de sortie :

 Public Sub btnExit_Click () Me.Close End 
Nous allons maintenant faire la connexion à la base de données :
 Private hconn As Connection Private Function connectbase () As Boolean If hconn Null Then Return False hconn = New Connection hconn.Host = "/ home / test" hconn.Name = "students" 'nom de la base de données hconn.Type = " sqlite3 "'database type Try hconn.Open () If Error Then hconn = Null Message.Error (" Erreur lors de la connexion à la base de données ") Return True Endif Return False End 
Nous planifions l'événement pour fermer la connexion :
 Public Sub closeConexion () Si hconn = Null Then Return hconn.Close () hconn = Null End 
Maintenant, nous visualisons les données dans le vue de la colonne, dans l'événement ouvert du formulaire.

Le code est le suivant :

 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 = "Nom du sujet ou du cours" hresul = hconn.Exec ("sélectionner * parmi les sujets") Do While hresul.Available key = hresul ["id"] table2.Add (clé, clé) table2 [clé] [1] = hresul ["matter_name"] hresul.MoveNext () Loop closeConnection () End 
Nous créons maintenant le formulaire pour ajouter et/ou modifier les données du tableau, des matières ou des cours. Le nom suggéré est adata. (personnes concernées).

9. Nous programmons le bouton de fermeture

 Public Sub btnCerrar_Click () Me.Close End 
On crée la référence à un objet de type connection, dans notre cas hconn, donc au début de notre formulaire adata on placera le code suivant :
 Hconn privé en tant que connexion 
De plus, nous créons la méthode runnew qui sera appelée depuis le formulaire principal. La syntaxe est la suivante :
 Public Sub runnew (data As Connection) hconn = data Me.ShowModal () End 
Maintenant, nous allons au formulaire pour saisir les données des sujets et dans l'événement de clic btnnuevo, nous plaçons le code suivant :
 Public Sub btnNuevo_Click () If connectbase () Then Return adata.runnew (hconn) closeConexion () Form_Open () End 
Maintenant nous pouvons essayer un nouveau bouton de ladite forme.

En continuant avec le même formulaire, nous codons la méthode de modification des enregistrements comme suit. Nous allons profiter de l'événement activate de notre contrôle colunmview (table) pour ajouter cette fonctionnalité. Cet événement est déclenché en double-cliquant sur n'importe quelle colonne du tableau.

 Public Sub table2_Activate () Dim hresul As Result If table2.Current = Null Then Return If connectbase () Then Return hresul = hconn.Edit ("sujets", "id = & 1", table2.Current.Key) adata.runedit ( hresul ) table2.Current [0] = hresul ["id"] table2.Current [1] = hresul ["matter_name"] closeConnection () End 
N'oubliez pas que cela ne fonctionnera pas tant que nous n'aurons pas créé cet événement dans le formulaire adata. Revenons donc à fdata et plaçons les variables suivantes au début du formulaire afin qu'elles soient accessibles depuis l'ensemble du formulaire.
 PRIVATE hconn AS Connexion PRIVATE hresul AS Résultat Édition PRIVÉE AS Booléen 
On crée la méthode runedit dont le code est le suivant :
 Public Sub runedit (data As Result) hresul = édition de données = True txtAsignaturas.Text = hresul ["subject_name"] Me.ShowModal End 
Pensez à tester pour vérifier que tout se passe bien. À présent nous programmons le bouton accepter de la manière suivante:
 Public Sub btnAceptar_Click () Si édition Then Try hresul ["subject_name"] = txtAsignaturas.Text Try hresul.Update Else Try hconn.Exec ("insérer dans les valeurs subject_name (& 1)", txtAsignaturas.Text) Endif Me.Close () Catch Message.Error ("Impossible de saisir les données envoyées") Fin 
Maintenant, nous programmons la routine de recherche de sujet :
 Public Sub btnBuscar_Click () 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 = "Nom du sujet ou du cours" filter = txtBuscar.Text hresul = hconn.Exec ("sélectionnez * parmi les sujets où subject_name comme '" & filter & "' ") Do While hresul.Available key = hresul [" id "] table2.Add (key, key) table2 [key] [1] = hresul [" Matter_name "] hresul.MoveNext () Loop closeConexion () End 
Nous l'aurons prêt.

Conclusions sur les crevettes
Pour les personnes qui ont fait une application en Visual Basic, et qui s'intéressent à la programmation, c'est l'un des outils qui vous intéressera sans aucun doute et c'est une option claire que vous devriez considérer.

Grâce aux tests que nous pouvons voir dans ce tutoriel, nous pouvons voir qu'il est facile à travailler et vraiment il ne faut pas beaucoup de temps pour faire une autre application simple pour Linux.

Comme nous pouvons le voir, la saisie semi-automatique qui contient des crevettes est limitée à l'objet avec lequel vous travaillez, pas comme dans le cas de Geany, qui peut vous mettre n'importe quoi. Nous devons lui donner des points car il fonctionne comme Java et Netbeans et sans autres complications.

Donc, pour ceux qui veulent apprendre à programmer des applications simples sous Linux et qui sont curieux, nous vous recommandons d'essayer Gambas3.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave