La méthode FUNCTION
Vous savez utiliser les procédures en les définissant comme ceci :
Private Sub myprocedure()
End
Vous savez aussi qu'elles peuvent être PUBLIC (visible par toutes les form de votre projet) ou PRIVATE (visible par votre form seulement).
Par contre les procédures identifiée SUB ne doivent pas renvoyer de valeur par la méthode RETURN
Dans ce cas précis, n'utilisez pas SUB mais plutôt FUNCTION comme ceci :
Private Function myprocedure() as string
dim toto as string
Return toto
End
Ce n'est pas moi qui le dit, c'est la documentation qui le dit ICI
Merci pour votre attention.
Bonsoir a tous,
Une chaine pro sur gambas.
Accrochez vous, c 'est du lourd :
https://www.youtube.com/c/FabienBodard/videos
et merci a Fabien pour son immense travail au sein de l'equipe de developpeur gb.
Haiku est un excellent système d'exploitation, la suite gratuite et légendaire de Be
OS.
Je vous propose de télécharger le live CD officiel.
Vous ne reconnaîtrez plus votre ordinateur tant la vitesse et le multitâche sont impressionants.
De plus, il existe maintenant des dépots (un genre de store) qui vous permet d'installer beaucoup d'applications.
Un must à avoir :
Site officiel ICI
Une discussion est en cours sur un portage de notre crevette sur Haiku, mais les défits techniques sont nombreux, (rien que le fait que Haiku a son propre gestionnaire de fenêtre et n'utilise pas Xorg ou Xwindow).
Alain29200 nous propose sa chaine youtube pour apprendre gambas en français.
Des tutoriels intéressants, qui reprennent des notions essentielles qui s 'adressent particulièrement aux débutant sur l 'IDE gambas.
Le lien ICI.
Bon visionnage à tous.
Bonsoir,
Tous les programmeurs connaissent cet excellent site Github.
Retrouvez plein d 'exemples en gambas3 pour vous aider à programmer :
Le lien ici
Bibliothèque gambas
Voici une liste des livres parus pour gambas 1, 2 et 3.
Ils peuvent servir de base pour vos développements en gambas.
Aperçu |
Description |
Téléchargement |
|
Titre : LINUX ASIA 2006 Langage : Gambas 2 Auteur : Asia conference expo en 2006 Description : Ce livre est un diaporama visuel qui vous présente Gambas dans son ensemble. Langue : Anglaise. pages : 14 |
Télécharger le livre |
|
Titre : PROGRAMMER AVEC L'IDE GAMBAS 2 Langage : Gambas 2 Auteur : spheris Description : Ce petit livret est un tutoriel pour utiliser l'IDE de gambas. Il y décrit de façon claire et simple les actions à mener pour créer votre première application. Langue : Français pages : 8 |
Téléchrger le livret |
|
Titre: DE VISUAL BASIC A GAMBAS Langage : Gambas 2 Auteur : Un passionné de gambas qui se reconnaitra! Description : De visual basic à gambas est un livre de 78 pages qui explique avec clarté comment passer de visual Basic à gambas, avec des retours d'expérience et des astuces. Ce livre est vraiment simple à lire et à comprendre. Langue : Français. pages :78 |
Télécharger le livre |
|
Titre : A BEGINNER'S GUIDE TO GAMBAS Langage : Gambas 1 Auteur : Benoit minisini, Fabien bodard Description : La bible de Gambas en version 1. Pour poser les bonnes bases, je m'en sers encore aujourd'hui pour comprendre certaines fonctions ou commandes. Langue : Anglais pages :364 |
Télécharger le livre |
|
Titre : GAMBAS ALMOST MEANS BASIC! Langage : Gambas 1 Auteur : Benoit minisini et bien d'autres... Description : Un diaporama réalisé dans les débuts de gambas qui vous donne en détail le schéma de conception de gambas, sa philosophie ainsi que ses caractéristiques. Langue : Anglais pages : 15 |
Télécharger le livre |
|
Titre : DEVELOPING APPLICATION WITH GAMBAS Langage : Gambas 1 Auteur : forodejazz Description : Un livre de 16 pages qui donne un aperçu de gambas et de ses possibilités, un tutoriel bien documenté avec des copies d'écran et des exemples de code. A lire sans attendre. Langue : Anglais pages : 16 |
Télécharger le livre |
|
Titre :GETTING STARTED WITH GAMBAS 2 Langage : Gambas 2 Auteur : Timothy MarshalNichols Description : Un excellent livre pour apprendre les rouages de Gambas 2 avec des exmples de code et des copies d'écrans. Langue : Anglais pages : 110 |
Télécharger le livre |
|
Titre :GAMBAS PROGRAMMACION VISUAL CON SOFTWARE LIBRE Langage : Gambas 1.9 Auteur : Daniel Campos Fernández et José Luis Redrejo Description : Un livre professionnel édité par la maison de production EDIT LIN EDITORIAL SL sur gambas en 9 tomes, ici 9 fichiers PDF Langue : Espagnol pages : 297 |
Tome 1 Tome 2 Tome 3 Tome 4 Tome 5 Tome 6 Tome 7 Tome 8 Tome 9 |
|
Titre :COMMANDES SQL AVEC SQLITE3 Langage : Gambas toutes versions Auteur : Taoteblue Description : Un tutoriel vraiement bien fait pour utiliser une base de données Sqlite3 Langue : Français pages : 3 |
Télécharger le livret |
|
Titre :GAMBAS LINUX BANGALORE 2004 Langage : Gambas 2 Auteur : Nalili vasudevan Description : Un livre très technique qui donne en détail l'architecture gambas, les caractéristiques du logiciel et surtout une comparaison avec son homologue sous win$. Un excellent livre à lire. Langue : Anglais pages : 6 |
Télécharger le livre |
Les 5 types de boites messages
Bonjour,
Aujourd'hui nous allons voir les 'boites de messages'
Il s'agit de boites qui vous alertent sur une action à effectuer, simple information, ou une question sur telle ou telle action à effectuer.
Il en existe plusieurs types qui fonctionnent de façons similaires:
1- la boite DELETE
Cette boite sous forme d'alerte vous informe sur une action importante à réaliser.
2- La boite ERREUR ou ERROR
Cette boite vous affiche une erreur.
3- La boite INFORMATION
Cette boite vous affiche une information
4- la boite QUESTION
Cette boite vous pose une question
5- la boite WARNING
Cette boite vous alerte d'un evènement.
Dans ces 5 cas, le fonctionnement est le même et c'est juste le nom de la fenêtre qui change et l'icone de notification.
La valeur renvoyé par la fenêtre est un nombre qui donne la position du bouton entre les virgules.
Un exemple :
dans notre boite QUESTION voici le code :
myanswer = Message.Question("Are you sure?", "i don't know", "yes, why?", "no,i'm very sure!")
message.question(position 0, position 1, position 2,position 3)
la position
0 est le
message la position
1 est le
premier bouton la position
2 est le
deuxième bouton la position
3 est le
3eme bouton Lors d'un clic sur un bouton,
myanswer prendra la valeur du bouton sélectionné.
6 - la boite Option ou optional
Cette boite est un peu particulière et demande d'avoir le composant gb.settings coché.
Cette boite sert si vous utilisez souvent une fonction qui demande à être validé souvent.
Vous pouvez cocher la checkbox, qui vous autorisera par défaut.
La valeur sera ainsi écrite dans votre fichier setting.conf.
Voici le code de cet exemple:
' Gambas class file
Public Sub bdelete_Click()
Dim myanswer As Integer
myanswer = Message.Delete("Delete it?", "no", "yes", "help me mama, i'm scared")
Select Case myanswer
Case 1 'if i clic on NO
Case 2 'if i clic on YES
Case 3 ' if i clic on HELP ME...
End Select
End
Public Sub Form_Open()
Me.Center()
End
Public Sub berror_Click()
Dim myanswer As Integer
Message.Error("An error is occured in module 654F64, do you want to restart windows?", "i can't", "impossible to reboot", "i'm crying")
Select Case myanswer
Case 1 'if i clic on I CAN'T
Case 2 'if i clic on IMPOSSIBLE...
Case 3 ' if i clic on IM CRYING...
End Select
End
Public Sub binfo_Click()
Dim myanswer As Integer
myanswer = Message.Info("Info : ssky is blue", "Sure")
If myanswer = 1 Then Print "clic on sure"
End
Public Sub boption_Click()
Dim myanswer As Integer
Message.Optional("Do you want to do this action every minute", "Why not", "TOTO/TITI", "icon:/32/add", True)
If myanswer = 1 Then Print "clic on WHY NOT"
End
Public Sub bquestion_Click()
Dim myanswer As Integer
myanswer = Message.Question("Are you sure?", "i don't know", "yes, why?", "no,i'm very sure!")
Select Case myanswer
Case 1 'if i clic on I DON'T KNOW
Case 2 'if i clic on YES...
Case 3 ' if i clic on NO,...
End Select
End
Public Sub bwarning_Click()
Dim myanswer As Integer
myanswer = Message.Warning("Warning, your hand is in my...", "excuse me", "was it your..?", "it's not me")
Select Case myanswer
Case 1 'if i clic on EXCUSE ME
Case 2 'if i clic on WAS IT..
Case 3 ' if i clic on ITS NOT...
End Select
End
Public Sub bclose_Click()
Me.Close()
End
Vous pouvez télécharger les sources de ce petit
exemple ICI (si le fichier ne s'ouvre pas, renommez le en
exemple.tar.gz, merci)
Merci pour votre attention
How much combien ça coute?
Ce petit utilitaire est bien pratique pour décomposer une somme que vous saisirez dans la boite texte, en une combinaison de billets et de pièces pour arriver à la somme exacte.
Il utilise les deux commandes principales qui sont MOD et DIV
Voici le code de l'application :
Public Sub bok_Click()
Dim lasomme As Integer
Dim lecombien As Integer
Dim lereste As Integer
Dim lesdecimales As Float
lasomme = vsomme.Value
lecombien = lasomme Div 200
l1.Text = lecombien
lereste = lasomme Mod 200
lasomme = lereste
lesdecimales = vsomme.Value - (lecombien * 200)
lecombien = lasomme Div 100
l2.Text = lecombien
lereste = lasomme Mod 100
lasomme = lereste
lesdecimales = lesdecimales - (lecombien * 100)
lecombien = lasomme Div 50
l3.Text = lecombien
lereste = lasomme Mod 50
lasomme = lereste
lesdecimales = lesdecimales - (lecombien * 50)
lecombien = lasomme Div 20
l4.Text = lecombien
lereste = lasomme Mod 20
lasomme = lereste
lesdecimales = lesdecimales - (lecombien * 20)
lecombien = lasomme Div 10
l5.Text = lecombien
lereste = lasomme Mod 10
lasomme = lereste
lesdecimales = lesdecimales - (lecombien * 10)
lecombien = lasomme Div 5
l6.Text = lecombien
lereste = lasomme Mod 5
lasomme = lereste
lesdecimales = lesdecimales - (lecombien * 5)
lecombien = lasomme Div 2
l7.Text = lecombien
lereste = lasomme Mod 2
lasomme = lereste
lesdecimales = lesdecimales - (lecombien * 2)
lecombien = lasomme Div 1
l8.Text = lecombien
lereste = lasomme Mod 1
lasomme = lereste
lesdecimales = lesdecimales - lecombien
lasomme = lesdecimales * 100
lecombien = lasomme Div 50
l9.Text = lecombien
lereste = lasomme Mod 50
lasomme = lereste
lecombien = lasomme Div 20
l10.Text = lecombien
lereste = lasomme Mod 20
lasomme = lereste
lecombien = lasomme Div 10
l11.Text = lecombien
lereste = lasomme Mod 10
lasomme = lereste
lecombien = lasomme Div 5
l12.Text = lecombien
lereste = lasomme Mod 5
lasomme = lereste
lecombien = lasomme Div 2
l13.Text = lecombien
lereste = lasomme Mod 2
lasomme = lereste
lecombien = lasomme Div 1
l14.Text = lecombien
lereste = lasomme Mod 1
lasomme = lereste
End
Richard l'escargot
Ce jeu s'adresse aux enfant d'école primaire qui apprennent le calcul mental.
Aidez notre ami richard l'escargot à sortir du puit dans lequel il est tombé. mais attention ne vous trompez pas, sinon l'eau est froide...
FreeGMAO en gambas 3 logiciel pour TPME
FreeGMAO est un logiciel pour gérer une petite entreprise.
Ce logiciel a ses propres bases de données sqlite 3 qui vous permet de gérer :
- un fichier contact
- un fichier des Affaires
- un module achat
- un module de gestion de stock
- un module logistique pour gérer les entrées sortie de stock
- Un petit module SAV
- un module devis
Il se veut très simple d'utilisation et facile d'accès. Pas besoin de configurer pendant des heures.
Ouvrez le projet dans gambas, générez l'exécutable et profitez de ce logiciel.
Ce logiciel existait pour gambas 2, il a été porté sous gambas 3.
Si certaines fonctions ne marchent pas, dites moi le.
Voici une première version de cet éditeur de partition.
Pour l 'utiliser, sélectionnez simplement dans la palette une note, puis montez la ou descendez la avec les touches 'M ' ou 'L ' puis validez par ENTREE sa poistion.
Et ainsi de suite.
Si vous vous trompez, sélectionnez la note dans la liste de gauche puis L ou M.
Bonsoir,
Une petite information que vous connaissez peut être déjà mais pour avoir la dernière version de gambas, il vous suffit d 'ajouter les dépots gambas et de réinstaller gambas comme ceci.
Ouvrez un terminal et taper ces 3 commandes :
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Merci pour votre attention
J 'ai découvert une fonction super pratique pour redimensionner n 'importe quelle image.
il vous suffit d 'écrire ce code :
Private Function Iresize($file As String, s As Integer) As Picture
Dim i As Image
i = Picture[$pic & $file].Image.Stretch(s, s)
Return i.Picture
End
et d 'appeler cette fonction simplement comme ceci :
Dim monimage as picture
monimage = iresize(monfichierimage, tailleenpixel)
exemple :
monimage = iresize( icone.png , 32)
Voilà pour aujourd 'hui.
Voici une petite application pour apprendre à dessiner des carrés dans une drawarea.
Ces carrés produisent un code inexploitable par et pour ce que vous savez et n'est là qu'à titre de démonstration.
Il n'y a aucun codage , seulement une génération alléatoire.
Voici le code de l'application :
Private z As Integer = 5
Public Sub Button1_Click()
DrawingArea1.Clear()
DrawingArea1.Refresh
End
Public Sub DrawingArea1_Draw()
qr
corner(1, 1)
corner(58, 1)
corner(1, 58)
mire(30, 5) 'top
mire(30, 30) 'center
mire(30, 56) 'bottom
mire(5, 30) 'left
mire(56, 30) 'right
mire(56, 56) 'right
End
Private Sub corner(mx As Integer, my As Integer)
Draw.LineStyle = 1
Draw.LineWidth = 1
Draw.foreground = Color.White
Draw.FillColor = Color.White
draw.FillStyle = Fill.Solid
Draw.Rect(mx * z - z, my * z - z, 9 * z, 9 * z)
Draw.LineStyle = 1
Draw.LineWidth = 1
Draw.foreground = Color.Black
Draw.FillColor = Color.Black
draw.FillStyle = Fill.Solid
Draw.Rect(mx * z, my * z, 7 * z, 7 * z)
Draw.LineStyle = 1
Draw.LineWidth = 1
Draw.foreground = Color.White
Draw.FillColor = Color.White
draw.FillStyle = Fill.Solid
Draw.Rect(mx * z + z, my * z + z, 5 * z, 5 * z)
Draw.LineStyle = 1
Draw.LineWidth = 1
Draw.foreground = Color.Black
Draw.FillColor = Color.Black
draw.FillStyle = Fill.Solid
Draw.Rect(mx * z + 2 * z, (my * z) + 2 * z, 3 * z, 3 * z)
Draw.LineStyle = 1
Draw.LineWidth = 1
End
Private Sub mire(mx As Integer, my As Integer)
Draw.LineStyle = 1
Draw.LineWidth = 1
Draw.foreground = Color.Black
Draw.FillColor = Color.Black
draw.FillStyle = Fill.Solid
Draw.Rect(mx * z, my * z, 5 * z, 5 * z)
Draw.LineStyle = 1
Draw.LineWidth = 1
Draw.foreground = Color.White
Draw.FillColor = Color.White
draw.FillStyle = Fill.Solid
Draw.Rect(mx * z + z, my * z + z, 3 * z, 3 * z)
Draw.LineStyle = 1
Draw.LineWidth = 1
Draw.foreground = Color.Black
Draw.FillColor = Color.Black
draw.FillStyle = Fill.Solid
Draw.Rect(mx * z + 2 * z, (my * z) + 2 * z, z, z)
Draw.LineStyle = 1
Draw.LineWidth = 1
End
Private Sub qr()
Dim a As Integer
Dim b As Integer
Dim c As Integer
For a = 1 To 64
For b = 1 To 64
c = Rnd(0, 2.1)
If c < 0.5 Then
Pblack(a, b)
Endif
If c > 0.5 Then
Pwhite(a, b)
Endif
Next
Next
End
Private Sub Pblack(mx As Integer, my As Integer)
Draw.LineStyle = 1
Draw.LineWidth = 1
Draw.foreground = Color.Black
Draw.FillColor = Color.Black
draw.FillStyle = Fill.Solid
Draw.Rect(mx * z, my * z, z, z)
Draw.LineStyle = 1
Draw.LineWidth = 1
End
Private Sub Pwhite(mx As Integer, my As Integer)
Draw.LineStyle = 1
Draw.LineWidth = 1
Draw.foreground = Color.white
Draw.FillColor = Color.white
draw.FillStyle = Fill.Solid
Draw.Rect(mx * z, my * z, z, z)
Draw.LineStyle = 1
Draw.LineWidth = 1
End
Public Sub Timer1_Timer()
DrawingArea1.Clear()
DrawingArea1.Refresh
End
Public Sub Button2_Click()
Timer1.Start()
End
Public Sub Button3_Click()
Timer1.Stop()
End
Vous remarquerez que depuis gambas 3.5, le dessin se fait directement dans l'évènement draw de la drawarea.
merci pour votre attention
Bonjour,
Aujourd 'hui je vous propose d 'étudier le composant FILEVIEW, qui vous permet de créer un gestionnaire de fichiers très rapidement, car il gère déjà :
les types mimes de fichiers
la vue le icone ou en liste : propriété ShowDetailed
la vue des fichiers cachés : propriété ShowHidden
la vue des miniatures : propriété Showpreview
la sélection simple ou multiples d 'icones : propriété Mode
Pour insérer une fileview, allez dans l 'onglet View et cliquez sur cet icone :
1- Changer d 'icone par une personnalisée
.Une astuce est celle de pouvoir changer une icone dans la vue.
Il vous suffit d 'utiliser l 'évènement ICON du widget.
vous aurez dans le code ceci:
Public Sub fileView1_Icon(Path As String)End
il vous suffit simplement de comparer le Path (chemin de votre fichier auqule vous voulez changer l 'icone) et de lui attribuer une nouvelle icone comme ceci :
Public Sub fileView1_Icon(Path As String)If path = System.User.Home Then fileView1.Icon = picture[ computer.xpm ]EndIfEnd
Dans cet exemple je change l 'icone de mon répertoire /Home/USER
C 'est aussi simple que cela.
2- réagir au double clic.
Maintenant en double cliquant sur la fileview, je veux pouvoir actualiser le chemin si je clique sur un répertoire, ou exécuter une application si c 'est un exécutable ou tout simplement lancer une application et ouvrir mon document si c 'est un document cliqué.
Test si exécutable : pour tester si un fichier est exécutable :
If Right(Stat(ficon.Current).Perm[System.User.Home], 1) = x Then 'test if executable
Test si c 'est un répertoire :
If IsDir(ficon.Current) Then 'test if folder
Test du type mime du fichier pour connaitre le type de document :
mymime = DesktopMime.FromFile(ficon.Current).Type)
Voilà avec ces astuces, la fileview n 'aura plus de secrets pour vous.
merci pour votre attention
Bonjour,
aujourd 'hui je vous propose d 'étudier le composant gb.form.terminal pour créer un terminal virtuel sous gambas 3.14
Ce terminal utilise le protocole VT100 classique. vous pouvez insérer un terminaview depuis l 'onglet view comme ci dessous :
Il n 'est malheureusement pas possible de saisir directement du texte dans le terminal, ou bien je n 'ai pas tourvé comment faire.
nous passerons donc par une
textbox et à l 'appui de la touche
entrée ou
return, nous enverrons les données au terminal.
Pour le moment, il semble que le terminal ne soit pas fini.
Il n 'est pas possible de taper des commandes classiques. le ls réagit bien mais pas le
cd .. ou
cd home.
Voici le code de l 'application :
Public Sub Form_Open()Me.Center()tview.Background = Color.Whitetview.Foreground = Color.BlackTextBox1.SetFocus()EndPublic Sub Mquit_Click()Me.Close()EndPublic Sub TextBox1_KeyPress()Select Case Key.Code Case Key.Enter send() Case Key.Return send()End SelectEndPrivate Sub send()tview.Shell(TextBox1.Text)TextBox1.Text = NullTextBox1.SetFocus()End
un autre tutoriel qui m 'a aidé à réaliser ce petit tuto :
https://www.bitkistl.com/2020/03/customizing-gbterminal.html