Table des matières

Notes Gambas

Voir :

Voir aussi :

Différences avec Visual Basic : http://gambaswiki.org/wiki/doc/diffvb?l=fr

Tutos

Demo rapide :

Visual Programming using Gambas in Linux

CURSO GAMBAS LINUX :

Gambas report short demo / tutorial

Notions

Configuration

Tools - Preferences - Highlighting theme :

Pour forcer une lib graphique particulière

#GB_GUI=gb.gtk3 gambas3
GB_GUI=gb.qt5 gambas3

Compilation et autres

Execution

Pour pouvoir exécuter le code Gambas, seul le Runtime (et quelques autres composants) sont nécessaires. Le Runtime est ici :
/usr/bin/gbx3 (paquet gambas3-runtime)

Pour lancer un programme Gambas il suffit de lancer gbx3 en étant à la racine du projet

Compilation et création d'un fichier exécutable

Pour compiler en ligne de commande un projet Gambas vous pouvez utiliser gbc3

Exemple

gbc3 -a

Une archive correspond à un exe presque autonome (le Runtine est tout de même nécessaire)
Pour créer une archive Gambas il suffit de lancer la commande gba3 en étant à la racine du projet. Un fichier .gambas est crée. C'est du bytecode avec le shebang /usr/bin/gbr3 (lien symbolique vers gbx3)

Scripting

Voir :

Il est possible de scripter en langage Gambas

Exemple

hello.gbs

#!/usr/bin/env gbs3
Public Sub Main()
  Print "Hello Wolrd"
End
chmod +x hello.gbs
gbs3 -c -S -w hello_world.gbs

Le langage Gambas

Voir :

Les commentaires et autres

Pour commenter il suffit de procéder le commentaire du caractère apostrophe “'”

Le multiligne s'effectue grâce au caractère “_” (blanc souligné)

Les class

Startup class Each project must have a startup class. This startup class must define a static public method named Main with no arguments.

Creating a class

From the Integrated Development Environment file, create a class file rhubarbstructure.class as follows:

PUBLIC foo AS STRING PUBLIC bar AS INTEGER 

It is now possible to define a variable utilizing that class, by creating an appropriate definition in the code module as follows:

DIM rhubarb AS rhubarbstructure

Les variables

Voir :

In Gambas it is necessary to declare every variable. To dimension a variable, the code is:

Dim variablename as type

You can just skip the word Dim , so the following is also correct:

variablename as type

Remplacer Dim par Static pour que la variable ne soit pas détruite à la sortie de la procédure / fonction mais seulement à la fermeture de l'application.

Gambas also supports the += and -= shorthand

Pour le type Variant voir l'instruction VarType

Les tableaux

Les tableaux peuvent avoir plusieurs dimension (60 !?)

Dim Tab(15,5)
Tab(1,2) = 10

Création de structure (Struct)

PUBLIC STRUCT Article
  Ref AS STRING
  Designation AS STRING
  Prix AS INTEGER
  Poids AS INTEGER
END STRUCT

Utilisation

Dim ArticleAchete As Article
Dim ArticleVendu As Article
 
Articlechete.Poids = 10
ArticleVendu = ArticleAchete

? Existe t-il un ORM pour faire le mapping entre l'objet créé et la base de données ?

Variables glocales

Il n'y a pas de variables globales en Gambas

Un contournement et de les mettre dans le module Main et de les déclarer comme Public

Si vous n'avez pas de module Main dans votre projet mais un Main form, vous pouvez les déclarer as Static Public.

Pour accèder à ces variables vous devez utiliser le nom du module ou du formulaire Main.

MyMainModule.MyGlobalVariable or MyMainForm.MyGlobalVariable

Les boucles

Exemple

Sub Option1_Click ()
  Dim i
  For i = 1 To 10
    Beep
  Next
End Sub

Les chaînes de caractères

String concatenation operator : “&

Path concatenation with “&/” operator
This operator deals with trailing slashes

Examples

Print "/home/gambas" &/ ".bashrc"
Print "/home/gambas" &/ "/tmp" &/ "foo.bar"

Les fichiers

Voir :

Ouvrir un fichier

Dim handle As File
handle = Open "myfile" For Read

Traduction

Translate

Print ("Tranlate me")
Print "But do not translate me!"

Substitution

Substitution avec Subst

Print Subst(("Substitution of &1, &2 and &3"), "first", "second", "third")

Les procédures / fonctions

Voir :

Exemple de syntaxe d'une fonction qui additionne deux nombres

Fonction

Function Fonc1(Param1 As Float, Param2 As Float) As Float
  Dim Ret As Float
  Ret = Param1 + Param2
  Return Ret
End Function

Appel de la fonction

Print (Fonc1(2, 3))

Autres

Dépendances du projet

$ dpkg -S $(strace --trace=%file -f ./testg.gambas 2>&1 |egrep -v "ENOENT|exited|^strace:" |sed -e 's/^.*"\//\//g' |sed -e 's/",.*$//g' |sort -u |grep gambas3)
gambas3-runtime: /usr/lib/gambas3/gb.draw.so
gambas3-gb-form: /usr/lib/gambas3/gb.form.gambas
gambas3-runtime: /usr/lib/gambas3/gb.geom.so
gambas3-gb-gtk3: /usr/lib/gambas3/gb.gtk3.so
gambas3-gb-gtk3-x11: /usr/lib/gambas3/gb.gtk3.x11.so
gambas3-runtime: /usr/lib/gambas3/gb.gui.base.gambas
gambas3-gb-gui: /usr/lib/gambas3/gb.gui.so
gambas3-gb-image: /usr/lib/gambas3/gb.image.so

Questions / Réflexions

Comment faire pour :

Questions :

Limitation :

Notes marketing :