gambaslinux

Aides aux utilisateurs de gambas linux

Accueil  /  Archives 2010

demodial.png

Bonjour,
Aujourd 'hui nous allons nous interesser au DIAL.
C 'est un compteur à aiguille pas très esthétique mais bien pratique pour fixer assez rapidement une valeur ou pour avoir une visualisation rapide d 'une valeur.

A) Les propriétés

NAME : Change le nom du dial

Dial1.name = toto 

BACKGROUND : Change la couleur d 'arriere plan du Dial

Dial1.Background = &H9FFF9F&


DROP : Reçoit l 'évènement Glisser/déplacer. 2 états possibles TRUE ou FALSE
Dial1.Drop = TRUE


ENABLED : Active ou desactive le widget.2 etats possibles TRUE ou FALSE
Dial1.Enabled = TRUE


EXPAND : Agrandi à la taille du conteneur le Dial
Dial1.Expand = FALSE


FONT : Ne fonctionne pas car pas d 'écriture.

FOREGROUND : Ne fonctionne pas non plus

HEIGHT : Fixe la hauteur en pixel du Dial
Dial1.Height  = 234


IGNORE : ignore l 'agrandissement du conteneur dnas le contenu
Dial1.Ignore = FALSE


MARK :Affiche les graduations sur le Dial
Dial1.Mark = TRUE


MAXVALUE : Fixe la valeur maximale du Dial
Dial1.MaxValue = 1000


MINVALUE : fixe la valeur minimale du Dial
Dial1.MinValue = 0


MOUSE : Choisi le curseur lors du passage de la souris à l 'interieur du Dial.
Dial1.Mouse = 2


PAGESTEP : fixe l 'echelle des grandes graduations.
Dial1.PageStep = 10 

Informations :Comprendre par pas de 10

STEP : Fixe l 'echelle des petites graduations et le pas unitaire du Dial.
Dial1.Step = 1


TAG : Etiquette qui permet la manipulation d 'un Dial en Tableau.
Dial1.Tag = "Mon tag"


TOOLTIP : Fixe une chaine de caractere sous forme de bulle d 'aide qui s 'affiche lors d 'un passage de souris sur le Dial.
Dial1.Tooltip = "C 'est le Dial "


VISIBLE : Rend ou non visible le Dial dans votre interface.
Dial1.Visible = TRUE


WIDTH = Fixe la taille horizontale en pixels de votre Dial.
Dial1.Width = 345


WRAP : Avec cette propriété activée, le Dial tournera sur 360 degrés.
Dial1.Wrap = TRUE


X : Fixe les coordonnées Horizontale (l 'origine étant en haut à gauche) du Dial sur l 'écran.
Dial1.X = 23


Y : Fixe les coordonnées Verticales (l 'origine étant en haut à gauche) du Dial sur l 'écran.
Dial1.Y = 27


B)LES EVENEMENTS
L 'évènement le plus utile à mon avis est l 'évènement CHANGE qui vous permet comme dans l 'exemple téléchargeable ci dessous de fixer rapidement une valeur.

A bientôt.






LE LCDNUMBER




Le LCDNumber est bien pratique pour afficher des valeurs ayant l 'apparence d 'un afficheur 7 segments.
Voici comment utiliser ce widget :

A) Propriétés

NAME : Défini le nom du widget
LCDNumber1.name = toto 


BACKGROUND : defini l 'arriere plan du widget. Personnellement, j 'utilise le noir qui est bien plus visuel.
LCDNumber1.Background = &H000000&


BORDER : Permet de définir une bordure au lcdnumber.5 états possibles:
etched : creusé, plain : A plat, none : aucune bordure, raised :avant plan, Sunken : arriere plan.
LCDNumber1.Border = 1


DIGIT : défini le nombre de chiffre sur le lcd. Par défaut il y a 1
LCDNumber1.Digit = 2


DROP : défini si le lcd recoit un evenement drop (glisser deplacer). 2 etats possibles : TRUE et FALSE
LCDNumber1.Drop = FALSE

ENABLED : active ou desactive le lcd. 2 etats possibles : TRUE et FALSE
LCDNumber1.Enabled = TRUE


EXPAND : Agrandi le LCD  à la taille du conteneur.
LCDNumber1.Expand = TRUE

 
FONT : Cette option ne semble pas marcher sur Gambas 2. Elle n 'a aussi aucun intérêt.

FOREGROUND : Ne marche pas non plus.

HEIGHT : défini la hauteur du LCDnumber. il faut saisir un nombre.
LCDNumber1.Height = 123
IGNORE : définit si le LCDNumber doit être ignoré quand son conteneur réorganise ses contenus.
LCDNumber1.Ignore = FALSE


MODE : peut afficher les valeurs sur le LCD sous trois bases : Hexadécimal, décimal ou binaire. 3 états possibles : Binary, Decimal, Hexadecimal.
LCDNumber1.Mode = 1


MOUSE : défini le type de curseur.
LCDNumber1.Mouse = 2


SMALLDECIMALPOINT : permet de definir la taille de l 'emplacement du séparateur décimal. 2 etats possibles TRUE ou FALSE. Si FALSE, le point prend la place d '1 digit.
LCDNumber1.Smalldecimalpoint = TRUE


STYLE : Défini le type de police de caractère du DIGIT : Outline : en 3D, Filled : simple, Flat : à plat.
LCDNumber1.Style = 0


TAG : Défini un TAG (étiquette) utile pour les groupes ou tableaux.
LCDNumber1.Tag = mytag

TOOLTIP : defini le contenu de la bulle lors d 'un passage de la souris dessus. vous devez saisir une chaine de caractère du style voila la bulle!
LCDNumber1.Tooltip = " Here my tooltip" 


VALUE : defini la valeur à afficher par défaut. Cela doit être un nombre
LCDNumber1.Value = 354


VISIBLE : défini si le LCD doit être visible ou non .2 etats TRUE et FALSE
LCDNumber1.Visible = FALSE


WIDTH : Largeur du LCDnumber. C 'est un nombre correspondant aux pixels.
LCDNumber1.Width = 45


X : position horizontale du widget. Nombre
LCDNumber1.X = 12


Y : position verticale du windget. Nombre.
LCDNumber1.Y = 567

Voilà pour aujourd 'hui.




Installer Gambas3

0
GAMBAS 3 DANS LES DEPOTS NON OFFICIELS

Pour ceux qui désirent tester Gambas 3, il vous est possible via synaptic de le télécharger et l 'installer.
Voici comment procéder :

1) Ajouter ce dépot ci : ppa:ihaywood3/gambas3


gb31.png

2) cliquer sur Recharger


gb32.png
3) Sélectionnez tous les paquets gambas3

4) Cliquez sur Appliquez

pour lancer Gambas 3, il vous suffit maintenant d 'ouvrir un terminal et taper:

gambas3

Merci à riri pour son aide


Icone de notification dans la barre des taches

trayicon.png
Dans votre barre des tâches gnome ou KDE, (si on peut la surnommer comme cela sous linux), nous allons ajouter un icone au moyen de Gambas. Il suffit d 'écrire le code suivant :


PUBLIC MyTray AS NEW TrayIcon AS ( MyTray ) 'declare un trayicon
PUBLIC MyIconPicture AS Picture = Picture[ myicon.png ] 'fixe l 'image du trayicon

PUBLIC SUB Form_Open()
MyTray.Icon = MyIconPicture
MyTray.Show
MyTray.Tooltip = "Ceci est un Icon Tray realise avec Gambas"
END








QUELQUES ASTUCES POUR L 'UTILISATION D 'UN TABSTRIP

mytabstrip.png
Bonsoir,
Dans cette petite application à titre d 'exemple je vous propose de découvrir comment :

1)AJOUTER UN ONGLET
Il suffit d 'utiliser d 'ajouter un onglet de plus au nombre existant en saisissant ceci :

Tabstrip1.Count = Tabstrip1.count + 1

2) RENOMMER L 'ONGLET COURANT
par la commande :

Tabstrip[index de l 'onglet courant].text = nouveau texte
Dans l 'exemple , payons-nous le luxe de le modifier au travers d 'une INPUTBOX comme ceci :

DIM mybox AS String
mybox = InputBox( Entrez le nom de l 'onglet. )
TabStrip1[TabStrip1.Index].Text = mybox

3) CHOISIR L 'EMPLACEMENT DE VOS ONGLETS
par la propriété Orientation

2 radioboutons ont été mis pour l 'application.

Je vous laisse découvrir l 'exemple  :

TELECHARGER L 'EXEMPLE ICI

Pour finir, voici le code source de l 'application :

PUBLIC SUB _new()
END

PUBLIC SUB Form_Open()
ME.Center
END

PUBLIC SUB bquit_Click()
ME.Close
END

PUBLIC SUB radiotop_Click()
TabStrip1.Orientation = 0
END

PUBLIC SUB radiobottom_Click()
TabStrip1.Orientation = 1
END

PUBLIC SUB rentab_Click()
DIM mybox AS String
mybox = InputBox( Entrez le nom de l 'onglet. )
TabStrip1[TabStrip1.Index].Text = mybox
END

PUBLIC SUB addtab_Click()
TabStrip1.Count = TabStrip1.Count + 1
END

wink
);


DEPLACER LE CENTREUR D 'UNE HSPLIT/VSPLIT

myhsplit.png
Bonjour,
Aujourd 'hui nous allons voir comment déplacer la barre centrale d 'un HSPLIT ou VSPLIT.
Par defaut la barre se situe au milieu.

Pour deplacer la barre, soit vous utilisez la souris avec un clic gauche et bouger la souris, soit vous pouvez utiliser la commande

Hsplit.Layout = 123,12

il faut fournir à la commande LAyout une chaine de caractère de 2 nombres séparé par une virgule correspondant à la premiere moitié à gauche et la deuxieme moitié à droite.




Dans ce petit exemple, vous pourrez faire varier le centreur par un Slider.
Voici le code source de l 'application :

PUBLIC SUB _new()

END

PUBLIC SUB Form_Open()
ME.Center
END

PUBLIC SUB bquit_Click()
ME.Close
END

PUBLIC SUB Slider1_Change()
HSplit1.Layout = 100, & Slider1.Value
END




);


TIMER - Le Trigger

0
UTILISATION D 'UN TRIGGER


mytimer.png
Bonjour,
aujourd 'hui nous allons nous intéresser aux différentes actions du timer

Pour démarrer un timer vous avez deux possibilités :

Soit vous utilisez la commande : Timer1.start()
soit vous modifiez la propriété du timer comme ceci : Timer1.enabled = TRUE

Pour Arrêter un timer faite de même avec la commande : Timer1.Stop()
ou utilisez la propriété Timer1.Enabled = FALSE

Lors d 'un démarrage d 'un Timer, le programme exécutera en boucle tout ce qui se trouve dans la fonction :
 
PUBLIC SUB Timer1_Timer()
'contenu de ma fonction
END

Ainsi si vous ajoutez :
mavariable = mavariable + 1
print mavariable

dans la boucle, où verrez votre variable s 'incrémenter d 'un toutes les x temps.

Ce temps x peut être configuré à l 'aide de la propriété DELAY avec comme exemple :

Timer1.Delay = 1000
soit 1000 millisecondes soit 1 seconde.

Une autre fonction intéressante est le TRIGGER, qui vous permet de déclencher la boucle manuellement.
Vous pourrez apprécier le fonctionnement d 'un trigger avec ce petit exemple en GB2.
Bonne semaine à tous

TELECHARGER L 'EXEMPLE ICI


Code source de l 'exemple :
' Gambas class file
PRIVATE numberloop AS Integer = 0

PUBLIC SUB _new()

END

PUBLIC SUB Form_Open()
ME.Center
END

PUBLIC SUB Timer1_Timer()
LCDNumber1.Value = LCDNumber1.Value + 1
numberloop = numberloop + 1
Label1.Text = numberloop
END

PUBLIC SUB Button3_Click()
ME.Close
END


PUBLIC SUB bstart_Click()
Timer1.Start()
END

PUBLIC SUB bstop_Click()
Timer1.Stop()
numberloop = 0
END

PUBLIC SUB Button1_Click() ' bouton trigger
Timer1.Trigger()
END

);


LECTEUR MUSICAL AVEC SKIN

lecteur.png
Taooteblue nous livre ici un petit lecteur multimédia.
Il semble qu 'il y avait un problème lors des déplacements. Depuis mon passage a ubuntu10.10, je n 'ai plus le problème. L 'application fonctionnant bien, vous pourrez apprécier ce lecteur de qualité.
Merci Taotebluewink

TELECHARGER LE FICHIER

);


Manipulation de Bits

bits.png

La manipulation de bits sous gambas est une chose aisée car il existe beaucoup de fonctions dont voici la liste :
BClr     Efface un bit dans un nombre entier.
BSet     Positionne un bit dans un nombre entier.
BTst     Teste un bit dans un nombre entier.
BChg     Inverse un bit dans un nombre entier.
Lsl     Décale un nombre entier vers la gauche.
Lsr     Décale un nombre entier vers la droite.
Shl / Asl     Décale un nombre entier vers la gauche et conserve son signe.
Shr / Asr     Décale un nombre entier vers la gauche et conserve son signe.
Rol     Rotation d’un entier vers la gauche.
Ror     Rotation d’un entier vers la droite.

Par l 'intermédiaire de ce petit exemple, vous pourrez suivre l 'evolution de votre nombre binaire.



);


UTILISER LA ROULETTE DE LA SOURIS

mousedelta.png

pour savoir si vous faite rouler la souris dans un sens ou dans l 'autre, il vous suffit d 'utiliser l 'instruction mouse.delta.
Ainsi en montant vous recuperez un integer de valeur 1 et en descendant un variant de valeur -1.

mousedelta2.png
voici le code de l 'application :



Divers - Maniadrive

0
SKIN POUR VOITURE MANIADRIVE


maniadrive.png

Pour les joueurs du jeu manadrive, il existe maintenant un skin pour votre voiture qui permet de transformer la clio basique en Gambas Car ! et devinez qui est au volant ?
Benoit, le concepteur de gambas.wink
Pour installer le skin, copiez le fichier car00.tga dans le repertoire game de votre application maniadrive et amusez vous bien !

TELECHARGER LE SKIN
);


LES TYPES ET COULEURS DE GB.CHART


Aujourd 'hui, nous allons nous intéresser au composant Gb.chart.

1) Les couleurs.
Gb.chart dispose de plusieurs couleurs pour tracer vos courbes. Les voici dans l 'ordre.
La premiere courbe commence par 0
couleurcourbe1.png

Si vous voulez définir la couleur de votre choix ,l 'astuce est de choisir la courbe que vous voulez par la commande :
chart[macourbe]
si par exemple vous voulez la couleur orange il faut ecrire :
chart[0]




2) Les types de courbes
On peut classer en 4 grandes familles les courbes de gb.chart :

-les Aires (Area)

couleurcourbe2.png

-Les colonnes (Columns)

couleurcourbe3.png

-Les Lignes(Lines)

couleurcourbe4.png



-Les camemberts (Pies)


couleurcourbe5.png


pour définir le type de courbes, il vous suffit par exemple de taper cette commande :
Chart.Type = ChartType.Lines

vous pouvez choisir dans cette liste :

couleurcourbe0.png

Pour terminer voici un petit exemple pour vous entrainer à modifier les courbes.

A bientôt



);


Depuis quelques temps , il nous est impossible de se connecter au serveur jabber@ubuntu-fr.org. Nous avons donc muter le tchat sur jabber.fr . Vous devrez vous réinscrire pour aller sur le tchat. Toutes nos excuses pour ce désagrément. En savoir plus...
);


LE COLORBUTTON

colorbutton1.png
Le ColorButton est un bouton bien pratique qui vous permet de choisir une couleur prédéterminée dans une palette de couleurs Basiques. L 'évènement utile pour récuperer le code de la couleur renvoyé est l 'évènement CHANGE.

Ainsi en cliquant sur ce bouton rose j 'ai accès à cette fenêtre ci :

colorbutton2.png

voici la source de cet exemple :



RECUPERER LE CONTENU D 'UNE CELLULE D 'UNE GRIDVIEW

gridviewhelp.png
bonjour,
aujourd 'hui nous allons nous occuper de savoir comment on récupere une donnée dans une cellule d 'une Gridview.

hypothese :
ma gridview est remplie et je double clique sur une cellule. Je veux récuperer :

A)le contenu de la cellule que j 'ai cliqué par la commande :

Gridview.current.text


B) la cellule de la colonne 3 par exemple sur la ligne que j 'ai double cliqué :

gridview1[gridview.Row,3].text

C) La cellule de la ligne 2 par exemple sur la colonne où j 'ai double cliqué :

gridview1[2, gridview1.column].text

il en est de même pour les images en remplacant Text par picture.

voila pour aujourd 'hui.
);


Difference entre label et Texlabel

differencelabel1.png

Dans la boite à outils, vous avez pu constater qu 'il existe deux widgets qui se ressemblent beaucoup : le LABEL et le TEXLABEL. Quel est la difference entre les deux ?

Tout simplement, le LABEL est une etiquette texte simple alors que le TEXTLABEL permet d 'ecrire du texte enrichi à l 'aide de balises HTML.
Pour vous donnez un exemple, voici une petite application.
Dans la propriété TEXT du TEXTLABEL , j 'ai marqué ceci :



differencelabel2.png

Voila pour aujourd 'hui.
TELECHARGEZ L 'EXEMPLE ICI

);


Ameliorations Gbdesk

0
Des nouveautés dans Gbdesk. L 'explorateur de fichiers est maintenant actif et le parent fonctionne. Téléchargez la nouvelle version ici
);


GBMAG Gestion d 'un petit magasin

gbmag.png
GBMag est un logiciel pour les magasiniers. Il permetde gérer un stock d 'un magasin.
Il se veut très simple d 'utilisation et ergonomique.
Logiciel réalisé en aout 2010 par spheris.

TELECHARGER LE FICHIER
);


GBDESK, UN BUREAU POUR LINUX (version alpha)

gbdesk.png
Voici un projet que j 'avais commencé à l 'époque. il est réalisé en gambas v2. il remplacera Gnome ou KDE. il reste énormément de travail à faire. Il utilise comme base de registre une base de données Sqlite. Il faut donc que vous ayez Gb.sqlite d 'installé.

Télécharger LE FICHIER

nouvelle version au 16 aout 2010 ici
nouvelle version au  21.12.2010 ici
);


ENCODEUR/DECODEUR  DE TEXTE


rot13.png
Cette petite application était développée en Gambas 1 en 2004 par Miha Ambroz,un collaborateur slovène actif du projet Gambas dans sa langue.
la voici portée en GB2 et traduite en Français par Sphéris.
Elle vous permet d 'encoder/ décoder du texte à la volée.
L 'exemple du concepteur est : (copiez ce texte et découvrez la phrase en anglais)

Jryy, hagvy gurl qrpvqr gb oevat gur srngher onpx, lbh pna uryc lbhefrys jvgu guvf.


site su concepteur :
http://home.amis.net/mambroz/mstrwrks.htm

TELECHARGER LE FICHIER
);


L 'evenement ENTER

enterevent.png

L 'évènement le plus souvent déclenché par un bouton qui nous interesse ,c 'est le Click dela souris.
Mais il en existe un autre qui est fort interessant pour tous les widgets. C 'est ENTER.
Dans cette petite application (sous forme de farce) vous verrez tout de suite à quoi cet evenement sert.
en effet ENTER signifie que le curseur de la souris entre dans la surface affichée de notre widget. A nous d 'ajouter le code qui convient comme ceci par exemple :



INVERSER UN SLIDER

invertslider.png
Il est utile pour plusieurs raisons dans votre application d 'inverser le Slider. C 'est à dire que par défaut le 0 se trouve en haut au maximum. Je vous propose donc dans cette petite application de voir comment inverser votre Slider. voici le code de l 'application :

' Gambas class file
PUBLIC SUB _new()
END

PUBLIC SUB Form_Open()
ME.Center
Slider2.Value = 100
END

PUBLIC SUB Button1_Click()
ME.Close
END

PUBLIC SUB Slider1_Change()
Label1.Text = Slider1.Value
END

PUBLIC SUB Slider2_Change()
Label2.Text = NOT (Slider2.Value - 100) + 1
END

L 'astuce réside dans la ligne en vert. on enlève la valeur max (100) au slider, on inverse ce nombre pour le rendre positif et on ajoute 1 (sinon le 0 devient -1)
Voila pour aujourd 'hui.

TELECHARGER L 'EXEMPLE ICI
);


Utiliser RETURN pour plusieurs données


bonsoir,

La commande RETURN nous permet de passer un paramètre en retour d 'une fonction.
Mais comment pouvons nous retourner plusieurs paramètres ?
Nous pouvons nous servir d 'une Classe.

Définition :
Je ne rentrerai pas dans des termes techniques compliqués mais vous présenterai une classe comme un ensemble de fonctions, variables et autres...

Prenons par exemple une classe d 'un humain que nous appellerons TPersonne

un humain a un poid, une taille, une tête, un caractère. ce sont des paramètres.

nous pouvons donc creer cette classe comme ceci :

PUBLIC lepoid AS Float
PUBLIC lataille AS Float
PUBLIC limage AS picture
PUBLIC caractere AS Integer
PUBLIC sensibilite AS String

PUBLIC SUB lafonction() AS TPersonne
DIM hPersonne AS NEW TPersonne
WITH hpersonne
.lepoid = 33
.lataille = 125
.limage = Picture[ monimage.png ]
.caratere = 3
.sensibilite = vraiement sensible
END WITH
RETURN hPersonne
END FUNCTION

et pour appeler notre fonction comme ceci:

DIM hPersonne AS TPersonne
hPersonne = lafonction()
PRINT hPersonne.lepoid

ce qui peut se traduire par le schema suivant pour une bonne comprehension.


TELECHARGER LE SCHEMA PDF

C 'est un concept objet dur a assimiler pour des programmeurs proceduraux comme nous les BASIC like men mais entrainez vous cela vient assez vite.
A+cool


);


VARIATION DE VALEURS DANS GB.CHART

gbchart.png

Bonjour,
aujourd 'hui nous allons voir quelques petites astuces du composant GB.chart.


Préparation
Nous allons creer un nouveau projet avec une drawarea et le composant GB.chart coché.
Maintenant nous allons tracer une courbe avec 21 valeurs en X.
Les valeurs en Y sont placées dans un tableau  dans une fonction toute faite genre ceci:



DEUX FACONS DE PROGRAMMER

Bonjour,
aujourd 'hui je vous propose de comparer deux facons de programmer.

Nous allons réaliser une petite application à but pédagogique avec trois images cliquables dans une Form.

Deux facon s 'offrent à vous :

1) Création à partir de l 'IDE Gambas
- Créer 3 picturebox
- pour chaque picturebox, par la propriété PICTURE choisir votre image.
-créer l 'évènement PictureBoxz_click (z étant le numero de la picturebox) pour chaque picturebox (ce qui nous fait trois fonctions identiques)

Cette facon de procéder n 'est pas très astucieuse pour plusieurs raisons :

- Allourdissement du code.
- 3 Fonctions identiques recopiées.
- impossibilité d 'augmenter facilement le nombre de picturebox.

Une autre mérhode bien plus intéressante ci dessous.


2) Création directement dans le code
Cette facon est à mon avis la meilleure facon de faire des programmes simples à comprendre.
Procédons par étape :
-déclarons d 'abord nos PICTUREBOX en dehors de toutes fonction par la commande :
PUBLIC mypict as picturebox

- Maintenant dans notre fonction button_click par exemple, nous allons créer une picturebox par le code :

mypict = NEW picturebox(me) AS boite1

Commentons cette ligne très importante :
mypict = 'nous affectons notre nouvelle picturebox à mypict
NEW je crée une nouvelle picturebox
picturebox(Me) je crée une picturebox dans la fenetre Me(soit le form en cours)
AS boite1 J 'assigne un nom de ma nouvelle picturebox pour tous les évènements associés. C 'est à dire que ma nouvelle picturebox réagira à un clic, un double click, enfin, tous les évènements d 'une picturebox par cette commande par exemple :

PUBLIC SUB boite_click()
END

Ainsi, lors de la création, il vous est facile de gérer les propriétés de votre picturebox comme ceci :

pour changer la couleur de fond par exemple :

mypict.background = &HFFFFFF&
ou je la déplace par exemple :
mypict.X = 234

en résumé voici la fonction complète  :

PUBLIC mypict as picturebox

PUBLIC SUB Button_Click()
mypict = NEW picturebox(me) AS boite1
mypict.background = &HFFFFFF&
mypict.X = 234
mypict.picture = picture[ /home/toto/bobi.jpg ]
END

PUBLIC SUB boite_click()
print j 'ai cliqué sur la picturebox!
END


Avez vous compris ? oui? alors on continu.
Mais dite moi, si je clique 10 fois sur mon bouton, je crée 10 picturebox.
et si je clique sur la boite 8, comment sais-je que c 'est la 8 que j 'ai cliqué puisque je n 'ai qu 'une seule fonction (boite_click)

C 'est là qu 'intervient la propriété TAG. Elle est très très importante dans Gambas.
Il vous suffit de créer une variable compteur genre :
PUBLIC maclef as integer = 1
et de l 'assigner au TAG de ma nouvelle picturebox comme ceci :

PUBLIC SUB Button_Click()
mypict = NEW picturebox(me) AS boite1
mypict.background = &HFFFFFF&
mypict.X = 234
mypict.picture = picture[ /home/toto/bobi.jpg ]
mypict.Tag = maclef
INC maclef 'incrémenter le compteur pour la prochaine picturebox.
END

Ainsi il vous sera facile d 'identifier quelle picturebox vous avez cliqué en la récupérant par cette commande :
LAST.Tag

vous pourrez donc écrire cette ligne :
PUBLIC SUB boite_click()
print j 'ai cliqué sur la picturebox & Last.Tag
END

Voilà. On constate tout de suite la flexibilité de ce code.
-Création de picturebox à loisir
-Simplification du code par une seule fonction

J 'espère que vous m 'aurez compris et que je n 'ai pas été trop fouilli !

wink

);


Bonjour, C 'est presque officiel, GambasForge propose toutes ses pages en anglais et Francais y compris la description du code :)

Si vous voulez découvrir la version anglaise rajouter dans la barre de votre navigateur a la fin de l 'adresse : &lang=en et cela sur n 'importe qu 'elle page .

);