DIAL - Les propriétés
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 : recoit 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 grandfes 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 = "ert"
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.
Voici le code source de l'application exemple :
PUBLIC SUB form_OPEN() me.center button1.setfocus() END PUBLIC SUB button1_click() 'CLOSE button me.CLOSE END PUBLIC SUB dial1_change()'change event FOR dial lcdnumber1.value = dial1.value / 10 END PUBLIC SUB lcdnumber1_dblclick() 'set focus TO button TO remove cube inside dial button1.setfocus() END |
LCDNUMBER - Les propriétés
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
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
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
2) cliquer sur Recharger
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
Icone de notification
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
TABSTRIP - Notions essentielles
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
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 :
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
HSPLIT - Deplacer le centreur
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
Bonjour,
aujourd'hui nous allons nous intéresser aux différentes actions du timer
Pour démarrer un timer vous avez deux possibilités :
Timer1.start()
Timer1.enabled = TRUE
Timer1.Stop()
Timer1.Enabled = FALSE
PUBLIC SUB Timer1_Timer() 'contenu de ma fonction END
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
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
' 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
LOGICIELS GAMBAS 2 - Lecteur musical
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 Taoteblue
' Gambas class file PUBLIC X1 AS Integer PUBLIC Y1 AS Integer PUBLIC action AS Boolean PUBLIC action3 AS Boolean PUBLIC position AS Integer = 0 PUBLIC XR1 AS Integer PUBLIC XR2 AS Integer PUBLIC YR1 AS Integer PUBLIC YR2 AS Integer PUBLIC TRX1 AS Integer PUBLIC TRY1 AS Integer PUBLIC DifX1 AS Integer PUBLIC DifY1 AS Integer PUBLIC SUB Form_open() DIM mypic AS Picture mypic = picture["lecteur.png"] ME.Width = mypic.Width ME.Height = mypic.Height ME.Mask = mypic ME.Center ToolButton2.Move(388, 13) ToolButton4.Move(323, 13) ToolButton5.Move(257, 13) ToolButton1.Move(193, 13) 'ComboBox1.Move(216, 70) 'ToolButton3.Move(192, 70) Label2.Move(40, 225, 400, 12) Label1.Move(200, 100, 200, 60) ToolButton3.Move(20, 223) DrawingArea1.Move(140, 65) XR1 = 0 XR2 = 39 YR1 = 10 YR2 = 26 Music.Volume = 1 - 10 / 145 Dessiner() END PUBLIC SUB Form_MouseDown() X1 = Mouse.X Y1 = Mouse.Y action = TRUE END PUBLIC SUB Form_MouseUp() action = FALSE END PUBLIC SUB Form_MouseMove() IF action = TRUE THEN ME.Move(ME.X - (X1 - Mouse.X), ME.Y - (Y1 - Mouse.Y)) ENDIF END PUBLIC SUB Form_DblClick() Music.Stop ME.Close END PUBLIC SUB ToolButton2_Click() Music.Stop ME.Close END PUBLIC SUB ToolButton5_Click() IF position = 0 THEN IF Label2.Text = "" THEN RETURN Music.Load(label2.Text) ENDIF Music.Play CATCH Message.Error("Une erreur est survenue", "Ok") END PUBLIC SUB ToolButton3_Click() Dialog.Title = "Choisir un fichier musique" Dialog.Filter = ["*.*", "Tous les fichiers", "*.mp3", "Fichiers mp3", "*.wav", "Fichiers wave"] IF Dialog.OpenFile() THEN RETURN Label2.Text = Dialog.Path Label1.Text = File.Name(Dialog.Path) Position = 0 END PUBLIC SUB ToolButton4_Click() Music.Stop Position = 0 ToolButton5.Enabled = TRUE Label1.Text = "" END PUBLIC SUB ToolButton1_Click() ToolButton5.Enabled = TRUE position = Music.Pos Music.Pause END PUBLIC SUB DrawingArea1_MouseMove() IF action3 = TRUE THEN IF Mouse.X > 0 AND Mouse.X < 39 AND Mouse.Y > 10 AND Mouse.Y < 145 THEN Draw.Begin(DrawingArea1) Draw.Tile(picture["barrelecteur.PNG"], 0, 0, 41, 156) Draw.Tile(picture["curseurlecteur.PNG"], 0, Mouse.Y - DifY1, 39, 16) Draw.End XR1 = Mouse.X - DifX1 YR1 = Mouse.Y - DifY1 Music.Volume = 1 - Mouse.Y / 145 XR2 = XR1 + 39 YR2 = YR1 + 16 ELSE action3 = FALSE ENDIF ENDIF END PUBLIC SUB DrawingArea1_MouseDown() IF Mouse.X > XR1 AND Mouse.X < XR2 AND Mouse.Y > YR1 AND Mouse.Y < YR2 THEN TRX1 = Mouse.X TRY1 = Mouse.Y DifX1 = TRX1 - XR1 DifY1 = TRY1 - YR1 action3 = TRUE ENDIF END PUBLIC SUB DrawingArea1_MouseUp() action3 = FALSE END PUBLIC SUB Dessiner() DIM mypic1 AS Picture mypic1 = picture["barrelecteur.PNG"] DrawingArea1.Width = mypic1.Width DrawingArea1.Height = mypic1.Height Draw.Begin(DrawingArea1) Draw.Tile(picture["barrelecteur.PNG"], 0, 0, mypic1.Width, mypic1.Height) Draw.Tile(picture["curseurlecteur.PNG"], 0, 10, 39, 16) Draw.End END
AUTRES CONTROLES - Barre de defilement
Comment réaliser une barre de défilement à la façon d'un Afficheur ?
C'est ce que nous livre Taoteblue.
TELECHARGER L'EXEMPLE ICI
Accessoires - Post It
Voici la version des Post IT en Gambas 3. Merci à Jacques pour sa contribution.
Booleen - Les manipulation de bits
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.
' Gambas class file PUBLIC SUB Form_Open() ME.Center END PUBLIC SUB Button2_Click() ME.Close END PUBLIC SUB Button1_Click() TextArea1.Clear TextArea1.Insert("conversion en binaire de votre nombre : " & Bin$(ValueBox1.Value) & Chr$(10)) TextArea1.Insert("Effacement du bit 2 avec Bclr : " & Bin$(BClr(ValueBox1.Value, 1)) & Chr$(10)) TextArea1.Insert("Positionne le bit grace à Bset : " & Bin$(BSet(ValueBox1.Value, 1)) & Chr$(10)) TextArea1.Insert("Test du bit 2 avec Btst : " & Bin$(BTst(ValueBox1.Value, 2)) & Chr$(10)) TextArea1.Insert("Change le bit 2 avec BChg : " & Bin$(BChg(ValueBox1.Value, 2)) & Chr$(10)) TextArea1.Insert("Decale le nombre entier vers la gauche avec Lsl : " & Bin$(Lsl(ValueBox1.Value, 1)) & Chr$(10)) TextArea1.Insert("Decale le nombre entier vers la droite avec Lsr : " & Bin$(Lsr(ValueBox1.Value, 1)) & Chr$(10)) TextArea1.Insert("Décale un nombre entier vers la gauche et conserve son signe avec Asl : " & Bin$(Asl(ValueBox1.Value, 1)) & Chr$(10)) TextArea1.Insert("Décale un nombre entier vers la gauche et conserve son signe avec Asr : " & Bin$(Asr(ValueBox1.Value, 1)) & Chr$(10)) TextArea1.Insert("Rotation d’un entier vers la gauche avec Rol : " & Bin$(Rol(ValueBox1.Value, 1)) & Chr$(10)) TextArea1.Insert("Rotation d’un entier vers la droite avec Ror : " & Bin$(Ror(ValueBox1.Value, 1)) & Chr$(10)) END
Divers - Maniadrive
Pour installer le skin, copiez le fichier car00.tga dans le repertoire game de votre application maniadrive et amusez vous bien !
Couleur dans 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
2) Les types de courbes
On peut classer en 4 grandes familles les courbes de gb.chart :
-les Aires (Area)
-Les colonnes (Columns)
-Les Lignes(Lines)
-Les camemberts (Pies)
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 :
Pour terminer voici un petit exemple pour vous entrainer à modifier les courbes.
A bientôt
Divers - Zoom gambasbasic.fr
Maintenez la touche CTRL enfoncé puis faite rouler la molette centrale de votre souris. (disponible sous Firefox) et observez le résultat :
Avant :
Après :
Vous pouvez Zoomer pour grossir ou diminuer votre page.
Bonne journée
FENETRE FORM - curseur personnalisé
Il suffit donc d'écrire les lignes suivantes que nous allons commenter :
PUBLIC SUB picturebox1_dblclick() DIM myimg AS cursor myimg = new cursor(picture["main.png"]) fmain.mouse = mouse.custom fmain.cursor = myimg END |
PUBLIC SUB PictureBox1_DblClick()
Je déclenche cet evenement lors d'un double click sur une pictureBox.
DIM myimg AS Cursor
définition d'une variable locale nommé myimg comme curseur
myimg = NEW Cursor(Picture["main.png"])
Creation du nouveau curseur et indication de l'image
FMain.Mouse = Mouse.Custom
Dire à Gambas que la fenetre form va recevoir un curseur personnalisé
FMain.Cursor = myimg
Le curseur de Fmain sera l'image contenue dans myimg
End
fin de la procédure Dblclick
Nous remarquons deux choses importantes :
1) L'image apparait en noir et blanc. Est-ce mon ordinateur ou est-ce pareil chez vous ?
2) lorsque vous saisissez le code, la constante CUSTOM apparait comme un petit rond rouge.
Il s'agit d'une sous-sous-procedure.C'est à dire dans la procédure FMAIN, j'ai la procédure MOUSE dans laquelle j'ai la procédure CUSTOM.
J'ecris donc le code comme ci dessous :
FMain.Mouse = Mouse.Custom
et non Fmain.Mouse.custom = TRUE car ce n'est pas une propriété.(Ce n'est pas un Grand rond Bleu)
A bientot
Voici le code complet de l'exemple
PUBLIC SUB _new() END PUBLIC SUB form_OPEN() me.center END PUBLIC SUB picturebox1_dblclick()'double click sur l'image main DIM myimg AS cursor myimg = new cursor(picture["main.png"]) fmain.mouse = mouse.custom fmain.cursor = myimg END PUBLIC SUB picturebox2_dblclick()'double click sur l'image fleche DIM myimg AS cursor myimg = new cursor(picture["fleche.png"]) fmain.mouse = mouse.custom fmain.cursor = myimg END PUBLIC SUB button1_click()'bouton fermer me.CLOSE END |
Aide sur l 'IDE - Fenetre Selection projet
APPLICATION GRAPHIQUE
Vous allez créer un projet graphique. La bibliotheque graphique ser automatiquement sélectionnée. GTK ou QT
APPLICATION GRAPHIQUE QT
Vous allez créer un projet graphique. La bibliotheque graphique ser automatiquement QT
APPLICATION GRAPHIQUE
Vous allez créer un projet graphique. La bibliotheque graphique ser automatiquement GTK
APPLICATION EN LIGNE DE COMMANDE
Vous allez créer un projet sans interface graphique dont le résultat sera un fichier exécutable en ligne de commande.
APPLICATION SDL
Vous allez créer une application se servant des bibliothèques SDL prévues en général pour les jeux et le multimédias.
APPLICATION WEB CGI
Vous allez créer une application WEB/CGI pour internet sous forme de scripts.
APPLICATION STOCK2E DANS UN REFERENTIEL SUBVERSION
Permet de creer une application gambas et de la maintenir a jour sur un serveur SVN. (exemple de l'IDE Gambas)
LES OPTIONS
Il faut savoir que les cases que vous cocherez ne feront qu'ajouter des liaisons avec les composant gambas.
la case internationalisation
Permet de rendre le projet traduisible en plusieurs langues
La case accès aux bases de données
Donne l'accès aux base de donnée par le composant gb.db
La case Programmation réseau
Donne l'accès aux routines reseaux a travers gb.net et gb.net.smtp
La case gestion de fichiers de configuration
Permet la gestion des fichiers de config à la manière des .ini sous l'autre OS au travers du composant gb.setting
La case Expressions rationnelles
permet la gestion d'expressions rationnelles au travers du composant gb.pcre
La case programmation XML/XSLT
Permet la programmation XML/XSLT au travers de gb.xml et gb.xml.xslt
La case OPENGL
permet d'utiliser les fonctions 3D de Gambas au travers du composant gb.qt.opengl
La case traitement d'images
Permet d'appliquer tous les filtres possibles pour effectuer du traitement d'image dans votre application au travers du composant gb.image
La case Conversion avec Visual Basic
Cette fonctionnalité permet d'utiliser des fonctions visual Basic sous gambas au travers du composant gb.vb . En aucun cas c'est un importateur de projet vb.
LA case programmation d'un composant
Cette case vous permet de définir une structure vierge d'un composant pour ensuite le modifier à votre guise pour créer un nouveau composant.
Merci de votre patience.
A Bientôt
BOUTON - Les évènements
Pour chaque élément de l'interface, il vous est possible de déclencher certains évènements.
Nous allons aujourd'hui détailler leur fonction.
Le code de l'évènement est toujours écrit de cette façon.
PUBLIC SUB nomducontrole_evenement() END |
par exemple si je veux créer l'évènement clic de mon bouton Button1, j'écrirai donc ce code ci :
PUBLIC SUB button1_click() END |
voyons maintenant à quoi servent ces évènements :
L'évènement ARRANGE
Très peu utilisé il sert à renvoyer une info comme quoi votre interface s'est auto-arrangé(mise en page auto).
L'évènement CHANGE
Permet dans une boite de dialogue choix des couleurs de récupérer la couleur choisie
L'évènement DblClick
Celui là est beaucoup utilisé. Il permet de faire réagir votre élément de l'interface au double click de l'utilisateur.
L'évènement DRAG
Permet l'utilisation du Drag and drop (glisser déplacer). cet évènement démarre au clic et début du déplacement de votre widget.
L'évènement DRAGMOVE
cet évènement est actif tout au long du déplacement de vos données TEXT, data,icon
L'évènement Drop
cet évènement sera actif lorsque le widget destinataire aura reçu vos données au relâchement du bouton de votre souris.
L'évènement Enter
cet évènement démarrera quand vous passerez la souris sur votre widget
L'évènement GOTFOCUS
cet évènement permet de récupérer ce qu'on appelle le focus.pour préciser ce qu'est le focus, prenons un exemple.
le focus sera le widget qui réagira a l'appuie de la touche entrer.
Si vous avez 2 boutons OK et Annuler, vous pouvez régler le focus pour qu'en appuyant sur entrée vous déclenchiez OK ou Annuler.
Gotfocus (veut dire on obtient le focus, A contrario de Lostfocus(perdu le focus))
L'évènement INSERT
cet évènement permet d'insérer un élément dans un container.
Par exemple un bouton dans un tabstrip
L'évènement KEYPRESS
cet évènement réagit a l'appuie d'une touche sur le clavier
L'evenement KEYRELEASE
cet évènement réagit au lâché de la touche clavier appuyé
L'évènement LEAVE
cet évènement réagit lorsque vous quitter l'aire de l'élément de l'interface affiché.si le curseur de souris sort de votre widget, alors vous déclenchez cet évènement
L'évènement LOSTFOCUS
inverse de gotfocus, vous faite perdre le focus a votre widget
L'évènement MENU
cet évènement réagit au clic d'un menu (ordinaire ou popup). Le menu popup est traduit en français par "menu contextuel"
L'évènement MOUSEDOWN
cet évènement réagit a l'appui du clic de souris sur votre widget
L'évènement MOUSEDRAG
cet évènement réagit au déplacement de la souris lors d'un DRAG de vos données
L'évènement MOUSEMOUVE
cet évènement réagit au déplacement de votre souris, même s'il n'y a aucun clic
L'évènement MOUSEUP
cet évènement réagît au relâchement du bouton de votre souris
L'évènement MOUSEWHEEL
cet évènement réagit à la roulette de votre souris si il est détecté bien entendu.
Voila pour aujourd'hui.
A Bientôt
BOUTON - le ColorButton
Ainsi en cliquant sur ce bouton rose j'ai accès à cette fenêtre ci :
PUBLIC SUB _new() END PUBLIC SUB form_OPEN() END PUBLIC SUB colorbutton1_change() textbox1.clear textbox1.text = colorbutton1.value END |
Voila pour aujourd'hui
GRIDVIEW - recuperer le contenu de la cellule
Bonjour,
Aujourd'hui nous allons nous occuper de savoir comment on récupere une donnée dans une cellule d'une Gridview.
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
gridview1[2, gridview1.column].text
il en est de même pour les images en remplaçant Text par picture.
voilà pour aujourd'hui.
Débuter en Gambas - Exécutable Gambas
Vous avez compilé votre projet à l'aide de l'interface de développement (IDE) et vous voulez voir votre programme exécuté de façon autonome ?
ouvrir sur GNOME :
Si vous êtes sur gnome, il vous suffit de double cliquer sur votre programme gambas nommé toto.gambas (pour peu que la liaison type mime soit faite) sinon vous faite un clic droit et choisissez le menu OUVRIR AVEC et sélectionnez /usr/bin/xterm
ouvrir sur KDE :
Si vous êtes sou KDE, un double clic sur votre programme gambas nommé toto.gambas (pour peu que la liaison type mime soit faite)sinon vous faite un clic droit et choisissez le menu OUVRIR AVEC et sélectionnez /usr/bin/xterm
ouvrir avec le TERMINAL :
Lancez un terminal, allez dans le dossier de votre exécutable par la commande :
cd /home/endroitdemonexecutable
et saisissez l'une ou l'autre de ces commande à l'invite de commande:
toto.gambas
ou
./toto.gambas
en vérifiant au préalable que votre exécutable a bien..... le drapeau exécutable.
voilà pour aujourd'hui
LABEL - Difference entre label et Textlabel
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 :
Voila pour aujourd'hui.
Lancement unique d'un programme
Taoteblue nous livre aujourd'hui une astuce fort interessante.
En effet cette petite routine sert à tester l'existence de votre application dans les taches lancées.
Ainsi, vous ne pourrez pas lancer deux fois votre application.
Voici le code :
PUBLIC SUB Form_Open() DIM Sortie AS String EXEC ["pgrep", "-f", "-l", "le_nom_de_mon_programme.gambas"] WAIT TO Sortie IF Split(Trim$(Sortie), gb.NewLine).Count > 1 THEN Message.Info("Programme déjà ouvert", "Fermer") ME.Close ELSE 'la suite du programme ENDIF END
A bientôt
LOGICIELS GAMBAS 2 - GBmag
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
GB2-convertisseur BIN/CUE en ISO
TELECHARGER LE FICHIER
' Gambas class file PUBLIC mybinfile AS String PUBLIC mycuefile AS String PUBLIC myisofile AS String PUBLIC SUB _new() END PUBLIC SUB Form_Open() ME.Center END PUBLIC SUB Menu2_Click() ME.Close END PUBLIC SUB Menu4_Click() fabout.Show END PUBLIC SUB Button2_Click() ME.Close END PUBLIC SUB Button3_Click() Dialog.Path = System.User.Home Dialog.Filter = ["*.bin", "Fichiers image"] Dialog.Title = "Selectionner un fichier image BIN" IF Dialog.OpenFile() THEN RETURN mybinfile = Dialog.Path TextBox1.Text = mybinfile END PUBLIC SUB Button4_Click() Dialog.Path = System.User.Home Dialog.Filter = ["*.cue", "Fichiers entete"] Dialog.Title = "Selectionner un fichier d'entete d'image CUE" IF Dialog.OpenFile() THEN RETURN mycuefile = Dialog.Path TextBox2.Text = mycuefile END PUBLIC SUB Button1_Click() TextArea1.Text = "" EXEC ["bchunk", TextBox1.Text, TextBox2.Text, TextBox3.Text] TO TextArea1.Text END PUBLIC SUB CheckBox1_Click() SELECT CASE CheckBox1.Value CASE FALSE ME.Height = 511 CASE TRUE ME.Height = 315 END SELECT END PUBLIC SUB Button5_Click() Dialog.Path = System.User.Home Dialog.Filter = ["*.iso", "Fichiers image ISO"] Dialog.Title = "Donner un nom a votre fichier Image" IF Dialog.SaveFile() THEN RETURN myisofile = Dialog.Path TextBox3.Text = myisofile & ".iso" END
LOGICIELS GAMBAS 2 - Bureau GBdesk
Télécharger LE FICHIER
nouvelle version au 16 aout 2010 ici
nouvelle version au 21.12.2010 ici
Aide sur l 'IDE - Aide locale
Il est possible d'accéder à l'aide d'un élément de l'interface (widgets) (photo ci dessus) tout simplement en cliquant droit sur l'élément de l'interface qui vous interesse. L'aide sera lancé dans votre navigateur par défaut.
Aide sur l 'IDE - retrouver le form associé au code
Bonjour,
aujourd'hui une astuce bien pratique pour retrouver le code de votre Form.
Vous avez réalisé un projet qui a plusieurs FORM ouvertes dans votre IDE et vous vous perdez dans les fenetres de code et vos Form ? vous voulez retrouver rapidement le code associé à votre Form ? Cliquez sur le Troisième icône dans la barre d'outil comme ceci :
Cette astuce vous fera gagner un temps précieux comme moi.
Au passage, une autre astuce qui vous permettra de fermer tous les onglets FORM et CODE d'un seul coup.
Cliquez sur les onglets avec le bouton droit de la souris, et un menu popup s'affiche. Cliquez ensuite sur tout fermer.
GB2-Encodeur de texte
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 :
TELECHARGER LE FICHIER
Aide sur l 'IDE - acces rapide aux propriétés
Lorsque je voulais par exemple changer la propriété EXPAND à la valeur TRUE, vous faisiez peut être comme moi à savoir cliquer dans la colonne B puis sélectionner la valeur TRUE au lieu de FALSE
Et bien un simple double click sur la colonne A va bien plus vite et produit le même résultat.
AVANT | APRES |
voir la video | voir la video |
Tout simplement.
A bientôt.
GB2-Interface pour mpg123
GB2-Mise à jour Formulaires
GB2-Rechercher-Remplacer
Il arrive en écrivant votre programme ,que vous vouliez remplacer un élément de votre interface par un autre. Il vous faut faire appel à la commande de l'IDE "Rechercher/remplacer" plutôt que de réécrire ligne par ligne.
Dans cette petite démonstration vidéo, je vais simplement vous montrer qu'il est possible de Pré charger le texte dans Rechercher/remplacer en le sélectionnant par avance.
pour le petit exemple, nous allons remplacer la chaine de caractères "Gridview1" par "columnview1".
voici comment procéder :
Aide sur l 'IDE - Hierarchie de vos elements d 'interface
Problematique :
Vous avez créé une belle inteface pour votre application .
vous deplacez vos Widgets(bouton,textedit, etc...) et vous vous apercevez que le widget du dessus passe dessous.
Comment le faire revenir en avant plan ?
Tout simplement en cliquant sur l'onglet Hiérarchie (petit A) puis sélectionnez le widget a mettre dessus (petit B) et cliquez sur la flèche vers le haut(petit C).
Ou alors une méthode encore beaucoup plus simple.
Sélectionnez l'élément à mettre dessus ou dessous puis cliquez sur les carré vert fonce ou clair. comme ceci :
voila.
GB2-Les aides visuelles
lorsque vous tapez du code dans l'éditeur de code, vous avez pu remarqué que Gambas vous propose une sélection de methodes, propriétés, etc... sous forme de cercle (il n'est peut être pas le cas suivant les distributions linux).
Aujourd'hui nous allons voir à quoi cela correspond.
A)Le Grand cercle Bleu.
Il s'agit d'une propriété à définir. Gambas attend ce type d'ecriture :
lewidget.propriété = valeur
par exemple :
button1.text = "toto"
hsplit2.enabled = TRUE
Label1.visible = FALSER
picturebox1.picture = picture["/home/toto/monimage.png"]
B) le grand cercle vert
Il s'agit d'une classe.
Gambas attend donc ce type d'ecriture :
lewidget.commande() les parentheses sont optionnelles
par exemple :
picturebox1.delete()
hbox3.grab()
C) le petit cercle bleu
Il s'agit d'un etat de la fonction.
Il est en lecture seule uniquement. Vous ne pourrez donc que lire et interpreter les donnes.
Par exemple :
print button1.id
Avec cet exemple, on affichera le numero de processus de notre bouton Button1.
Voila pour aujourd'hui.
BOUTON - Evenement ENTER
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 :
PUBLIC SUB button1_enter() button1.x = rnd(me.width - 10) button1.y = rnd(me.height - 10) END |
A bientôt
SLIDER - Inverser un Slider
' 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.
GB3-RETURN avec plusieurs donnees
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.
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+
DRAWAREA - variation de gbchart
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:
PUBLIC SUB initcourbech() tableaucourbe[0] = 0 tableaucourbe[1] = 0 tableaucourbe[2] = 0 tableaucourbe[3] = 0 tableaucourbe[4] = 0 tableaucourbe[5] = 0 tableaucourbe[7] = 0 tableaucourbe[7] = 0 tableaucourbe[8] = 0 tableaucourbe[9] = 0 tableaucourbe[10] = 0 tableaucourbe[11] = 0 tableaucourbe[12] = 0 tableaucourbe[13] = 0 tableaucourbe[14] = 0 tableaucourbe[15] = 0 tableaucourbe[17] = 0 tableaucourbe[17] = 0 tableaucourbe[18] = 0 tableaucourbe[19] = 0 tableaucourbe[20] = 0 END |
n'oubliez pas de declarer d'abord votre tableau par :
tableaucourbe[21] AS Float |
chart.countdatasets = 1 chart[1].color = &hffff00& chart.headers.values = ["0", "1", "2", "3", "4", "5", "7", "7", "8", "9", "10", "11", "12", "13", "14", "15", "17", "17", "18", "19", "20"] |
vous pouvez modifier la valeur de l'axe des Y de cette facon :
chart[0].values = [0.01] |
0 est la 1ere courbe
0.01 est la valeur de notre axe Y pour le point 0
Dessinons notre courbe par :
PUBLIC SUB drawingarea1_draw() 'pour tracer le graphique dans la drawingarea chart.width = drawingarea1.width chart.height = drawingarea1.height chart.draw END |
Voila.
Maintenant nous allons nous amuser a faire varier des valeurs de cette courbe
maintenant nous allons creer un dial,une valuebox et un slider sur notre form.
Le slider nous permet de choisir la valeur en X de notre courbe et le dial la valeur Y.
PUBLIC SUB dial1_change() valuebox1.value = dial1.value / 10 majcourbe(slider1.value, valuebox1.value) END PUBLIC SUB slider1_change() label3.text = slider1.value lavaleur = fmain.lamodif(slider1.value) valuebox1.value = lavaleur dial1.value = lavaleur * 10 END 'mise a jour de la courbe modifée PUBLIC SUB majcourbe(lindex AS Integer, donnee AS variant) chart[0].values[lindex] = donnee drawingarea1.clear drawingarea1.refresh END |
vous pouvez modifier la courbe facilement de cette facon.
La ligne en rouge est très importante. Elle vous permet de modifier une valeur de cette courbe. détaillons la :
chart[numero de la courbe] . Values[coordonnées en X] = Coordonnée en Y
voici ce que cela donne en video.
Pas mal non ?
voila pour aujourd'hui.
GB2-Bureautique - Agenda
Compilé avec la version 3 de Gambas, il est bien pratique pour se souvenir de ses contacts.
TELECHARGER LE FICHIER
GB3- Deux facons de programmer
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
GambasForge maintenant en Anglais
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 .
);
LOGICIELS GAMBAS 2 - La roulette
Jacques nous livre ici le jeu de roulette bien connu dans les Casinos.
Merci Jacques pour ta contribution.
TELECHARGER LE JEU ICI
LOGICIELS GAMBAS 2 - ReparAvi
ReparAvi est un front end de FFmpeg qui vous permet de reparer un fichier video endommagé lors d 'un telechargement.
Il necessite les runtimes Gambas 2 et ffmpeg.
TELECHARGER LE PROGRAMME ICI
convertisseur celsius/farhenheit en GB3
);
LOGICIELS GAMBAS 2 - Monsieur patate
Cela faisait un moment que cela me trottait dans la tête. voici le célèbre jeu de Monsieur Patate ou vous pouvez constituer votre personnage et ensuite le sauvegarder dans un fichier image (n 'oubliez pas l 'extention PNG)
TELECHARGER LE FICHIER
boite de dialogue fichier
);
MESSAGEBOX - Boite de dialogue
Bonjour,
Dans votre application, vous pourrez ajouter un bouton Parcourir , pour chercher un fichier présent sur vos disques locaux par une boite de dialogue. Nous allons utiliser une boite de dialogue .
Dans votre code de l 'evenement Click de votre bouton inscrivez ce code :
PUBLIC SUB Button1_Click()
Dialog.Filter = [ *.jpg , Fichiers JPEG , .png , Fichiers PNG , .xpm , Fichiers XPM ] 'defini le filtre d 'extention
Dialog.Title = Ouvrir unfichier 'defini le titre de la boite
Dialog.Path = Application.Path 'defini le chemin par defaut à l 'ouverture
IF Dialog.OpenFile() THEN RETURN 'si on ne peut ouvrir le fichier alors ne rien faire
END
Le plus important à connaitre, c 'est que le fichier que vous aurez sélectionné sera présent dans le DIALOG.PATH. Ainsi il vous sera facile de récupérer le chemin de votre fichier par la commande :
dim monfichier as String
monfichier = dialog.path
Voila ! cet exemple commenté est simple et vous aidera à concevoir vos projets.
Pour aller un peu plus loin, vous pouvez consulter la doc ici :
http://gambasdoc.org/help/comp/gb.form.dialog/dialog/openfile
A bientôt
);
GBidentity
);
LOGICIELS GAMBAS 2 - GBidentity
Gbidentity est un programme qui imprime des planches de photos d 'identité pour vos papiers administratifs.
Ce logiciel gratuit est réalisé par Spheris.
Vous pourrez aussi appliquer quelques effets sommaires comme passage en noir et blanc ou rotation de vos photos.
A essayez sans attendre.
TELECHARGER LE FICHIER