PROPRIETES DES BOUTONS
Vous pouvez modifier les propriétés de chaque bouton directement dans la
fenetre propriétés mais aussi dans votre programme au moyen de code.
voici donc un résumé des propriétés avec un petit bout de code en exemple :
BackColor (ne fonctionne plus sur gambas 3)
change la couleur d'arrière plan du bouton .Il faut
saisir une valeur RVB correspondant aux couleurs rouge vert bleu en
hexa, binaire ou décimal. |
Exemple : changer la couleur
d'arrière plan en noir :
PUBLIC SUB Form_Open()
Button1.BackColor = color.black
END |
Background
change la couleur d'arrière plan du bouton. Il faut saisir une
valeur RVB correspondant aux couleurs rouge vert bleu en hexa, binaire
ou décimal. |
Exemple : changer la couleur
d'arrière plan en bleu foncé :
PUBLIC SUB Form_Open()
Button1.Background = 100
END |
Border
Affiche ou non des bordures sur le bouton. Cette
propriété prend comme état :
true ou false
|
Exemple : supprimer les bordures
d'un bouton :
PUBLIC SUB Form_Open()
Button1.Border = False
END |
Cancel
Lors de l'appui sur la touche Escape ou echap de votre clavier, cette
propriété defini le bouton à valider.Cette
propriété prend comme état :
true ou false |
Exemple : Lors de l'appui sur
ESC ce bouton doit être appuyé :
PUBLIC SUB Form_Open()
Button1.Cancel = True
END |
Caption(remplacé par TEXT sur gambas 3)
Défini un nom ou plutot un label au bouton.Cette
propriété a besoin d'une chaine de caractère ou
simplement vide par ""
|
Exemple : Donner le label
style="color: rgb(51, 204, 0);">toto au bouton:
PUBLIC SUB Form_Open()
Button1.Caption = "toto"
END |
Default
Défini lors de l'appui sur la touche Entrée le bouton a
appuyer par défaut.Cette propriété prend comme
état :
true ou false |
Exemple : Lors de l'appui sur
ENTREE ce bouton doit être appuyé :
PUBLIC SUB Form_Open()
Button1.Default = True
END
style="color: rgb(51, 51, 255);" |
Drop
Cette propriété doit etre sur TRUE si le bouton
reçoit un évènement DRAG and DROP.Cette
propriété prend comme état :
true ou false |
Exemple : Je glisse le
text1.text par DRAG sur l bouton et je lache le bouton de la souris sur
mon button1 et affiche le texte dans le label de mon button1:
PUBLIC SUB text1.Drag()
style="color: rgb(255, 0, 0);"
END
style="color: rgb(51, 51, 255);"
PUBLIC SUB Button1.Drop()
Button1.Caption = text1.text
END |
Enabled
cette propriété active ou non le bouton .Le bouton est
quand même visible à l'écran. A ne pas confondre
avec la propriété visible.
Cette propriété prend comme état :
true ou false |
Exemple : Désactiver pour
tout clic impossible sur le bouton:
PUBLIC SUB Form_Open()
Button1.Enabled = False
END |
Expand
Je ne vois pas à quoi cela sert, mais je vais regarder la doc :)
|
Permet de remplir tout l'espace du container
|
Font
Modifie la police de caratère du texte sur le bouton |
|
ForeColor
style="font-weight: bold;">
Foreground
Modifie la couleur avant plan du bouton (soit le texte)
|
Exemple : changer la couleur
d'avant plan en bleu foncé :
PUBLIC SUB Form_Open()
Button1.Foreground = 100
END |
Height
Défini la taille horizontale du bouton
|
Exemple : changer la taille du
bouton :
PUBLIC SUB Form_Open()
Button1.Height = 100
END |
Left
Defini la position du bouton en X
|
Exemple : Déplacer le
bouton de 100 par rapport à là ou il est maintenant:
PUBLIC SUB Form_Open()
Button1.left = Button1.left +
style="color: rgb(255, 0, 0);">100
END |
Name
Defini le nom du bouton appelé par la programmation
par défaut il s'agit de Button1, à vous de mettre un nom
parlant |
Pas de code. Il vaut mieux
définir le nom dans la boite propriété |
Picture
insère une image sur le bouton en plus du texte. |
Défini une image à l'intérieur du bouton |
nous allons utiliser aujourd'hui la fonction EXEC qui consiste à lancer une commande au terminal et à en récuperer la sortie texte du terminal.
Notre application d'aujourd'hui demandera au terminal de lancer la commande df -h qui a pour role de voir l'espace disque des disques de votre ordinateur.
creez un projet et inserez un bouton, un textarea1 avec comme propriete "enabled = false"
et double cliquez sur le formulaire.
Entrez le code suivant :
PUBLIC SUB _new() END PUBLIC SUB form_OPEN() ' get the contents of a directory into a String DIM sOUTPUT AS String exec ["df", "-h"] TO textarea1.text END PUBLIC SUB button1_click() me.CLOSE END |
lancez votre application, ca marche ! vous pouvez voir de combien d'espace vous disposez !
Le drag and drop ou glisser deplacer
Aujourd'hui nous allons comprendre le fonctionnement du drag and drop.
Nous allons creer une fenetre Form avec un label1 et une textbox1.
Lorsque
l'utilisateur selectionnera le texte dans la textbox et la fera glisser
avec la souris, le label changera et dira que le texte se deplace.Puis
lorsqu'il arrivera sur le label1 on dira que l'action est finie.
Commencons par la creation de la fenetre : rien de bien compliqué.
N'oubliez pas que le widget label1 doit avoir sa propriété DROP a la valeur TRUE .*voici la capture d'écran :
puis passons au code :
créons une METHODE drag sur la textbox1 pour autoriser un deplacement :
PUBLIC SUB TextBox1_Drag()
label1.text = "Je suis entrain de deplacer le texte..."
END
Créons une méthode DROP pour la réception de l'évènement drag :
PUBLIC SUB Label1_Drop()
Label1.text = "Ca y est j'ai fini!"
END
voila c'est fini !
Lancer
l'application, sélectionnez le texte dans la textbox1 et déplacez le en
maintenant le clic gauche enfoncé, le label1 change, étonnant non ? et
bien non, C'est ca gambas, simple et intuitif !
Bonne journée à tous
Voici un petit editeur video.
il en est au stage du proto alors soyez indulgents.
Les sources ici
http://www.gambaslinux.fr/file/mediavideo-0.0.3.tar.gz
Voici un petit exemple qui n 'a plus vraiment d 'interet maintenant (2008) mais qui est formateur pour gambas.
Je ne vous aide pas :
creer cette interface puis entrez le code ci dessous.
aucun commentaire tellement le code est simple non?
*
Le Timer
Je vous propose d 'utiliser le Timer pour écrire une petite application , un chronometre.
Alons y vous verrez c 'est très simple :
Tout d 'abord, creez un projet et nommez le chronometer.
Placez dans le Form principal trois boutons respectivement Button1 pour START, Button2 pour RESET et Button3 pour STOP.
placez aussi un label1 pour le mot seconds et un LCDtimer1. comme ceci :
Maintenant que l 'interface simple est créée, interssont nous aux évènements:
lors d 'un clic sur START, les actions à réaliser sont :
demarrer le timer
incrementer le timer
ce qui donne le code suivant:
PUBLIC SUB Button1_Click()
timer1.enabled = TRUE
LCDNumber1.value = LCDNumber1.value + 1
-----------------------------------------
lors d 'un clic sur STOP, les actions à réaliser sont :
arreter le timer
d 'ou le code suivant :
PUBLIC SUB Button3_Click()
timer1.enabled = FALSE
END
-----------------------------------------
lors d 'un clic sur RESET, les actions à réaliser sont :
arreter le timer
remetre le LCDtimer a 0
voici le code:
PUBLIC SUB Button2_Click()
LCDNumber1.value = 0
timer1.enabled = FALSE
END
-------------------------------------
Si nous lancons le programme, il ne se passe rien , pourquoi ?
Et bien nous avons oublié une partie importante.
La fonction Timer
Cette dans cette fonction que nous allons dire au programme quoi faire quand le timer est lancé.
Ajouton cette fonction dans le code :
PUBLIC SUB Timer1_Timer()
LCDNumber1.value = LCDNumber1.value + 1
END
---------------------------------------------
maintenant notre programme marche à merveille, simple non? A vous de jouer..
TELECHARGER LES SOURCES
);
PETITE CALCULATRICE
bonjour, aujourd'hui pour notre exemple, nous allons réaliser une petite calculatrice.
Ouvrez gambas et definissez un nouveau projet.
Nommez le calculatrice.
creer un formulaire vierge (clic droit sur formulaire puis nouveau)
Voila procedons par etapes.
A) creation de l'interface. creons 6 boutons et une valuebox et utilisant les boutons ci joints :
Modifions la proprieté TEXT de notre fenetre en lui donnat le titre "calculatrice" :
modifions les proprietes TEXT de chaque bouton pour leur affecter respectivements les valeurs " 1","2 ","3 "," 4 "," 5 "," 6 "," 7 "," 8 "," 9 "," 0 "," , "," X"," -","+ ","/ "," =".
Voila notre interface est realisée.
B) Redaction du code.
inseronr le code par un double clic sur le bouton 1 :
de meme pour le bouton 2 :
faisons de meme pour tous les boutons , sauf pour le bouton "EGAL".
LE SLIDER
Le
slider est bien pratique pour ajuster une valeur rapidement.
Creons une application qui fera varier un nombre dans une textbox :
Creons une fenetre Form1, un slider Slider1 et une textbox
Textbox1 :
Ajoutons maintenant la ligne de code en double cliquant sur le slider dans l 'evenement change.
Le texte de la textbox changera a chaque deplacement unitaire de la slider en prenant comme valeur la valeur du slider :
Executons notre application, et deplacons le slider vous verrez changer le texte en temps reel, chouette non ?
LA COMBO BOX
La combobox permet d'ajouter une selection de plusieurs parametres a passer a votre application. Voyont comment l'utiliser :
creon une fenetre form1 avec un bouton Button1 et une combo1
Le
but de ce petit exemple est que lorsque nous cliquerons sur le bouton
nous alons ajouter un texte dans la combobox. Autant de fois nous
appuierons, autant de fois le texte sera ajouté :
La fonction Add ajoute du texte dans la combo.
La fonction Text modifie le texte courant de la combo
La fonction insert insere du texte a la fin du texte courant
Executons notre application et voial ce que cela donne :
CQFD !
UTILISER LA CHECKBOX
La checkbox vous permet de donner un état d'une variable sous forme de case à cocher.
La plupart du temps vous n'aurez qu'à modifier ou lire la valeur checkox.value .
Creons maintenant une fenetre form1.
Mettons y un bouton Button1 et une checkbox1 comme ceci :
Maintenant double cliquez sur le bouton et dans la partie code ajouter ce code :
Lors d'un appui sur notre bouton la checkbox changera d'etat et passera a l'etat coché.
Executons notre application :
CA MARCHE !
Have you ever wanted to use Visual Basic on Linux? Why? Well, you could be like me and have spent many years programming in VB, but want to move to Linux without having to learn a new language. It could be that you 're brand new to programming and need something you can learn quickly and easilyand still be able to produce a good quality application.
Well, now you canalmost.
Gambas is short for Gambas isalmostBasic, and it has been designed to look at the good things VB can do for Windows and then does them for Linux. Above all, Gambas is easy to useas this article shows. I explain how to build a useful application in Gambasa bug-tracking system that stores its information in a MySQL database.
Installation is as simple. First go to the Gambas Web site, and check the Distributions & OS pagethis is just to make sure there are no known peculiarities with your flavour of Linux. Then, go to the Download page and get the most current, stable version (1.09 at the time of this writing). If you 've done this type of thing before, simply carry on and get yourself ready to use Gambas if not, don 't worrywe 're nearly there.
Open a terminal and move to the directory where you 've saved the bz2 file. If you 're going to use 1.09, it will be called gambas-1.0.9.tar.bz2. Now bunzip2 the file, and follow the installation instructions (unless the distribution page has given you some additional parameters for your distribution).
With that, you 're ready to use Gambas. Type gambas on the command line, and the welcome screen appears (Figure 1).
Figure 1. The Gambas Welcome Screen
The Gambas screen gives you access to example applicationsyou 'll find these very useful if you are new to programming. In this case, click on New Project. Gambas now displays its project creation wizard, so follow the instructions to create your first project. When asked create a graphical project, set the name to bugTracker (note that underscores are not allowed), and then set the title to Bug Tracker. You also will be asked where to store your project. I suggest you create a new directory called Gambas in your home directory and then use it for all future projects as well.
Next, we jump straight in to the creation of a new form. Right-click in the project window, select New and then Form. Gambas puts you into its form creation wizard. All you need to do now is give the form a namecall it frmBugTracker. (Don 't leave it as Form1. That 's very bad practice).
Now, you can start adding the elements to the formand, the first one to add is a Close button. Why do this first? Quite simply, you always want to be able to close a form, or an application, for that matter, cleanly and easily, so get into this habit as quickly as possible. To create the button, click on its icon in the toolbox (the icon is a box with OK on it), and then use the left-mouse button to draw it onto the form. By default, the button is called Button1, but exactly like the form, we rename it. Click on the button, and press F4 to display the Properties box. Change its name to btnClose and its text to Close.
The button won 't do anything yetwe have to add some code to it, which is really, really easy. If you double-click on the button, Gambas takes you to the code window, and you 'll find an empty btnClose_Click subroutine. Modify it so that it says:
PUBLIC SUB btnClose_Click()
ME.Close
END
Figure 2. Designing a New Gambas Form
You should notice something as you type in the codeas soon as you put in the period, a drop-down menu appears, giving you all of the methods and parameters associated with the ME objectin this case, ME refers to the form, so ME.Close means close this form.
Suppose you want to see the results of your hard work now. Go to the Project window and click on the little green run button. And there you areyour first Gambas application. You even can close the form with your brand-new button.
Before building the application itself, we need to think about what we want the bug tracker to do. Then, we need to have a look at the datahow it is to be arranged, and what is going to be stored.
The bug tracker will have to do the following:
*
Have the details of new bugs entered.
*
Record who raised the bug.
*
Have a bug assigned to a programmer.
*
Update the status of the bug.
*
Record when the bug was raised.
*
Record the release for the bug fix.
*
Provide the ability to view new, working and complete bugs.
The data required is therefore:
*
Who raised the bug.
*
Who is fixing the bug.
*
Bug details.
*
Developer details: ID, first name, surname and user name.
*
Bug Details: ID, description, date created, ID of raiser, ID of developer, status, release number and application details.
From this, we can start building a database schema. Start by creating a file (such as database_schema.sql) that we will use to create the database:
/*
First you must create the database. The listing
table includes only the user ids for raised by
and coder .
*/
create database bugtracker
create table bugtracker.listing (
id int auto_increment primary key,
details longtext,
application_id int,
release float,
raised_by_id int,
coder_id int,
status_id int,
created datetime,
priority int,
status int);
Un exemple d'accès séqueltiel aux fichiers
Afin de faire un tour plus en pratique de Gambas, voyons comment créer une petite application. Faisons simple : le programme ouvrira un fichier, comptera les occurences de chacun des mots trouvés et les affichera dans un tableau, trié par nombre d’occurence décroissante.
Pour cela, je crée un formulaire qui contient un menu et une ListBox (fenêtre pouvait contenir une liste). L’éditeur de menus est très simple d’utilisation.
Dans le même temps, Gambas a créé une classe de même nom que mon formulaire (FMain). Cette classe contient initialement ce qui a été demandé lors de la création du formulaire. Dans mon cas, j’ai un constructeur et un destructeur.
L’éditeur de menu est très simple, il suffit d’ajouter les entrées sous forme hiérarchique.
De même, ajouter la réponse à un évènement se fait aisément : un clic droit sur la widget concernée, selection de l’évènement dans le sous-menu approprié. Une méthode apparait alors dans le source. Ici, j’ai ajouté le traitement de l’évènement Enter
sur la liste. La métode créée est PUBLIC SUB ListBox1_Enter()
. J’y ajoute pour tester une commande ListBox1.ADD("Un")
, qui ajoutera à la liste un élément contenant la chaîne "Un".
Pour tester, le raccourci F5
correspond au menu Projet->Démarrer. C’est bon, à chaque fois que le curseur de la souris entre dans la zone de la liste, une ligne contenant le mot "Un" est ajoutée.
Revenons au test. Dans le menu, j’ai ajouté une entrée Fichier
qui contient Ouvrir...
et Quitter
. Un clic sur Quitter
fait sortir de l’application. Un clic sur Ouvrir
va demander un fichier.
Voici ce que cela donne :
PRIVATE SUB Lire(sChemin AS String)
PRINT sChemin
END
PUBLIC SUB Ouvrir_Click()
Dialog.Filter = [ "All files (*.*)" ]
IF Dialog.OpenFile() THEN RETURN
Lire(Dialog.Path)
END
La méthode Ouvrir_Click()
a été générée automatiquement en cliquant sur Ouvrir
du menu. Il a resté à la remplir. Dialog
est un objet qui permet d’ouvrir des boites de dialogues commune, ouvrir un fichier, sauver un fichier ou encore choisir une couleur. On lui donne avant une liste de filtres, ici tous les fichiers, puis on provoque son ouverture. Si aucun fichier n’a été sélectionné, la fonction renvoie vraie (étrange non ?) et l’on sort de la méthode. Sinon, on appelle une fonction chargée de lire le chemin.
On remarquera que l’éditeur possède une aide à la frappe. À peine appuyé entrée à la fin de la déclaration de la méthode qu’il ajoute automatiquement le END
correspondant.
On remarque aussi que Gambas possède un typage des variables, qu’il faut d’ailleurs déclarer. Ainsi, le paramètre sChemin
est déclaré comme étant une chaîne de caractères (String
).
La méthode Lire()
est privée, car "interne" à FMain
. Pour le moment, dedans, on ne fait qu’un PRINT
, pour voir. Effectivement, en démarrant le programme, si on choisi un fichier, il sera affiché dans la console de debug. Parfait.
Le reste des commentaires se trouve dans le fichier source, disponible dans l’archive liée à cet article. Voici un appercu du résultat sur un texte assez long. On remarquera au passage les limites de ce petit programme de texte, qui fait la différence entre "suis" et "suis,".
Résumé
- Type : langage orienté objet
- Famille : Basic
- Environnement : Intégré avec développement graphique d’interfaces
- Compilation : byte code exécuté par une machine virtuelle fournie
Un langage qui peut s’avérer utile pour le développement des petites applications rapidement. Pour ceux qui utilisent déjà un Basic, cela permettra de ne pas être perdu par une syntaxe étrange, même si chaque Basic a ses particularités.
Il manque encore cependant beaucoup d’exemples de code, ce qui fait que l’on se perd rapidement en cherchant dans la documentation en long et en large.
Gambas
Gambas est un langage de programmation et un environnement de développement graphique sous Linux. Le langage est un dialecte du Basic.
Installation
Gambas est un outil complet. Pour programmer en Gambas, il faut Gambas. Chargez le nécessaire sur la page officielle. Faites attention aux prérequis, Gambas en demande quelques-uns (à la date de rédaction, X11, QT3, KDE3, PostgreSQL et MySQL, les composants bases de données et KDE pouvant être désactivés).
La version utilisée ici est la version 0.80.
Premiers pas
Une fois lancé, Gambas propose d’ouvrir un projet ou d’en créer un. Un certain nombre d’applications exemples est disponible. Il est intéressant d’en ouvrir une pour voir à quoi ressemble la programmation Gambas.
Immédiatement, si votre système est correctement configuré, vous remarquerez que les textes ne concernant pas le langage sont affichés en français.
Différentes fenêtres sont affichées :
- Projet : la fenêtre principale, qui contient le menu et l’arborescence des composants de l’application.
- Propriétés : cette fenêtre, classique des environnements de développement d’interfaces, regroupe les propriétés d’un composant graphique sélectionné.
- Boîte à outils : cette fenêtre contient les différents composants qui peuvent être ajoutés à une interface.
Si vous double-cliquez sur un composant de code source dans la fenêtre projet, celui-ci apparaîtra. De façon similaire, la fenêtre de construction d’interface apparaîtra en double-cliquant sur un composant de type formulaire.
Langage objet
Gambas est donc un langage orienté objet reprenant la syntaxe du Basic. Un projet est composé de classes, de formulaires, de modules et de données.
Les classes, comme dans les autres langages orientés objets, sont les modèles qui permettent d’instancier des objets. Comme certains autres langages, comme Java ou C#, une classe et une seule de l’application doit posséder une méthode statique comme point d’entrée du programme. Avec Gambas, cela se spécifie dans la boite de dialogue de création de la classe, ce qui aura pour effet de créer dans le code de la casse une méthode STATIC PUBLIC SUB Main()
automatiquement.
Les formulaires sont les différents éléments d’interfaces qui peuvent être affichés et traités par l’application. Créer un formulaire crée automatiquement une classe correspondante, chargée du traitement de ce formulaire.
Les modules sont des fichiers qui contiennent des utilitaires pour l’application. Des fonctions par exemple. D’après la documentation, les modules sont présents pour faciliter la migration de programmes venant d’autres Basic du même style. L’auteur recommande de ne pas utiliser les modules.
Les données sont tous les autres fichiers.
Gambas n’utilise que quelques éléments "objets". Il n’y a entre autre pas de concept d’héritage, sauf dans les composants utilisé. Il existe cependant un type "Object" qui désigne un objet de type quelconque. L’orientation objet de Gambas permet cependant quelques protections : une méthode peut-être publique ou privée. Une méthode peut aussi être une méthode de classe. Même chose pour les variables membres.
Le but du langage est clair : crée rapidement des applications, très probablement en fournissant une interface graphique, avec des concepts simples et un minimum de réutilisabilité.
Instructions
Gambas est un Basic, et les mots clés d’un Basic moderne sont utilisés. Ainsi, en plus du classique FOR
existe FOR EACH
, à appliquer sur une Collection
.
Un sytème de gestion d’erreur est offert avec les instructions CATCH
ou bien TRY
. La gestion des fichiers n’est pas oubliée, ainsi que les entrées consoles de données.
Dans les fonctions de base, on trouve aussi une gestion des types, des conversions entre les types de base, des opérations bit à bit, la gestion du temps, des fonctions mathématiques, une gestion de chaînes de caractères,…
Composants
À un programme Gambas peuvent être associés des composants. Cette association se fait dans les propriétés du projet (menu Projet -> Propriétés). Ces composants apportent au langage des classes traitant un domaine précis. Par exemple gb.db
traite les bases de données et gb.qt
gère les interactions de l’interface graphiques.
Toutes les fonctions et objets offertent par ces composants sont documentées dans l’aide que l’on peut ouvrir avecn le menu ?->Navigateur d'aide
ce Widget affiche une image dans votre fenetre.
pour le creer, cliquer sur le symbole picture (image du Gambas) dans la boite Widget.
Dessiner les contours de l'image dsans la fenetre Form
Maintenant cliquer sur la propriete PICTURE dans la boite proprietes pour aller chercher votre image a afficher.
Un explorateur de fichier s'ouvre. Parcourez l'arborescence a la recherche de votre image puis validez par OK.
L'image du Gambas change par votre image.
Pour créer un bouton,cliquez sur le symbole bouton dans la boite widget :
Dessinez la taille du bouton sur votre feuille FORM.
Modifiez la propriete TEXT du bouton avec la boite propriete (F4) pour changer le texte du bouton en "NAME OF THE BUTTON":
EVENEMENT
Notre bouton ne sert a rien si nous ne lui affectons pas un evenement.
Lorsque nous cliquons dessus, nous voulons modifier le label1 en lui affichant HELLO WORLD !
Double cliquez sur le bouton et la fenetre de code s'affiche dans la fonction button1_clic :
taper ce code :
label1.text = "hello world" |
Essayons notre programme en cliquant sur PLAY
deroulement : lors d'un clic sur le bouton BUTTON1, la propriete TEXT de LABEL1 sera changee.Notre programme marche a merveille !
Le Label permet d'ajouter des textes a votre fenetre.
Vous pouvez le modifier dynamiquement pendant l'execution de votre application.
Pour creer un label cliquez sur le bouton LABEL ( symbolise par le A) sur la boite Widget
Dans la boite proprietes modifiez le texte ecrit dans le label
La fenêtre est a la base de toutes applications graphiques.
pour la creer, voici la procedure :
Dans la fenetre projet (ci dessous) faites un clic droit sur formulaire puis cliquer sur NOUVEAU -> FORMULAIRE
Une fenêtre apparait donc sur le bureau. Saisir le nom de la classe Fmain par exemple.