Gestbase Programme de gestion de base SQLITE

Rédigé par spheris Aucun commentaire
Classé dans : Logiciels, base de donnees, gambas 3 Mots clés : aucun

gestbase.jpg

 
Bonjour,
Philippe nous livre ici un excellent programme pour apprendre à manipuler les bases de données sqlite en Gambas.

Ce logiciel vous permettra de comprendre:
- Comment créer une base de données
- Comment ajouter, supprimer, modifier une occurence.
- Comment faire une copie d 'écran
- Comment imprimer l 'intégralité de la base.
- Comment gérer une interface multilangue.

Merci à philippe pour son excellent travail.
Télécharger le fichier source ICI
(renommez le fichier en gestbase.tar.gz pour l 'ouvrir)
 

Compiler un projet gambas en ligne de commande

Rédigé par spheris Aucun commentaire
Classé dans : Tutoriels, IDE, gambas 3, terminal Mots clés : aucun
Bonjour,

Une petite astuce aujourd 'hui qui consiste à compiler un projet en gambas 3 en ligne de commande.
Il vous suffit d 'ouvrir un terminal et de taper la commande suivante:

gba3 ledossierprojetgambas

Ainsi dans votre dossier de l 'application, l 'exécutable sera généré.

Merci pour votre attention.

Utiliser le composant gb.scanner

Rédigé par spheris Aucun commentaire
Classé dans : Tutoriels, Composants, picturebox, gambas 3, scanner Mots clés : aucun
 
gbocr.jpg
 

bonjour,
Aujourd'hui je vous propose un exemple du composant gb.scanner pour scanner un document.
Le resultat sera chargé dans une picturebox.

A)detection de votre scanner
Pour les possesseurs d'un scanner ouvrez un terminal et tapez en ligne de commande :


scanimage -L

vous devriez lire le nom de votre scanner comme ceci (pour mon appareil connecté) :
device 'brother4:bus3;dev3'

B) créer un nouveau projet
créez maintenant un nouveau projet graphique Gambas 3 ou ouvrez les sources présentes en bas de page.
Je choisi gtk2 par souci de compatibilité.

C) Voici le code de mon application:

Private monscan As Scanner
Public Sub Button1_Click()
Dim myimg As Image
myimg = monscan.Scan()
PictureBox1.Image = myimg
End

Public Sub Form_Open()
Me.Center()
monscan = New Scanner("brother4:bus3;dev3")
End

Public Sub binfo_Click()
If monscan.IsAvailable() Then 'Test if scanner is online and available return one boolean
Label1.Text = "scanner connected"
Else
Label1.Text = "Scanner not connected"
Endif
lname.Text = monscan.Name 'return our brother4:bus3;dev3 text
lmodel.Text = monscan.Model 'return string model of your scanner
lvendor.Text = monscan.Vendor 'return string vendor of your scanner
ltype.Text = monscan.Type 'return string connection type of your scanner
End

Public Sub CheckBox1_Click()
PictureBox1.Stretch = CheckBox1.Value
End




une petite remarque cependant:
pour créer un nouveau scanner "monscan" dans Form_open, je dois dire quel DEVICE (matériel) je possède entre les parenthèses.

C'est pour cette raison que je dois d'abord lancer le terminal pour le détecter.
le déclenchement d'un scan est tout simplement déclenché par la commande monscan.scan()
l'image est ensuite affichée dans la picturebox1.


Merci pour votre attention.
Telechargez les sources de cet exemple

capture d 'ecran avec gb3

Rédigé par spheris Aucun commentaire
Classé dans : Tutoriels, Composants, gambas 3 Mots clés : aucun
Bonjour,
Une petite astuce aujourd'hui pour capturer votre écran et le sauvegarder dans un fichier PNG ou jpg.

Il vous suffit d'écrire :

Desktop.Screenshot(votrewidget.ScreenX, votrewidget.ScreenY, votrewidget.Width, votrewidget.Height).Save(System.User.Home & "/maphoto.png", 500)


500 est la qualité de compression pour votre format PNG
Bien sur dans les composants cochez gb.desktop.

Merci pour votre attention

La commande ENUM

Rédigé par spheris Aucun commentaire
Classé dans : Tutoriels, Instructions, apprentisssage, gambas 3 Mots clés : aucun

Bonjour, aujourd 'hui nous allons voir une petite astuce bien sympa, l 'instruction ENUM.

Vous pouvez donner des noms à vos variables de type integer avec la commande ENUM comme ceci:

Private ENUM bleu, jaune,vert,rouge,gris

qui seront respectivement égal à bleu = 0, jaune=1,vert=2, rouge=3 et gris = 4.

Cette instruction est très pratique lorsque vous manipulez les tableaux, ou tout composant à base de tableau (gridview, tableview, etc...)
Le code s 'en trouve plus facilement compréhensible.
Pour reprendre l 'exemple précédent nous pourrions écrire :

montableau[gris] = Hello
ou
Dim macouleur As integer
macouleur = vert 'macouleur prendra la valeur 2

Ainsi, il vous sera plus facile de comprendre le code.

Merci à valaquarus pour cette astuce.

Consulter la documentation hors ligne

Rédigé par spheris Aucun commentaire
Classé dans : Tutoriels, apprentisssage, gambas 3 Mots clés : aucun

Documentation Hors ligne


 

dochorsligne.jpg
 
Bonjour,
Vous êtes à la campagne, pas de réseau mobile, et vous vous sentez l'inspiration du programmeur.
Vous démarrez votre ordinateur et exécutez Gambas.
Seulement, vous ne vous rappelez plus comment utiliser telle ou telle instruction/fonction.
Et....catastrophe! la documentation de gambas n'est pas consultable. Comment faire?

Prenez les devants. Téléchargez la avant de partir.
dans le menu OUTILS, PREFERENCES, une fenêtre s'ouvre et procédez de cette façon:

A) Cochez Documentation Hors ligne
B) téléchargez la documentation et patientez une ou deux minutes.
Aucun message ne vous le dira, mais votre documentation est maintenant sur votre ordinateur.
Essayez de poser un bouton sur une form et dans le code écrivez ceci :

Button1.T

et la doc s'affichera dans un popup vous proposant les propriétés du Bouton.

Merci pour votre attention.

Form derriere couche Xwindow

Rédigé par spheris Aucun commentaire
Classé dans : Tutoriels, Composants, gambas 3, divers Mots clés : aucun
x.jpg



Bonjour,
J'ai trouvé en glanant dans le code source d'une application bien connue un moyen d'afficher une form derriere toutes les fenetres dans la  surcouche Xwindow.
C'est très pratique si vous voulez afficher votre application sur l'ecran principal  si vous utilisez openbox, fluxbox, ou icewm.

Pour cela, dans votre projet gambas graphique,  il vous suffit de créer une classe nommée Atom et y ajouter le code ci dessous:

Static Private $cAtom As New Collection

Static Public Sub _get(sAtom As String) As Integer
  Dim iAtom As Integer
  Try iAtom = $cAtom[sAtom]
  If Error Then
    iAtom = X11.InternAtom(sAtom, True)
    $cAtom[sAtom] = iAtom
  Endif
  Return iAtom
End


ensuite, vous appelez simplement cette classe dans le Form_open() de votre fenêtre principale comme ceci :

X11.SetWindowProperty(Fmain.Id, Atom["_NET_WM_WINDOW_TYPE"], Atom["ATOM"], Atom["_NET_WM_WINDOW_TYPE_DESKTOP"])

De cette façon, vous pouvez créer une application type Bureau à la lxde,xfce ou autre.

Merci pour votre attention.

Envoyer des donnees par le port serie

Rédigé par spheris Aucun commentaire
Classé dans : Tutoriels, port serie, gambas 3 Mots clés : aucun
Bonjour,


pour envoyer des données ASCII au port série en gambas 3, rien de plus simple.
Il vous suffit de définir les propriétés du port, de l'ouvrir pour lancer la communication et envoyer les données comme ceci :

'propriétés du port

If scmd.Status = Net.Inactive Then scmd.portname = "/dev/ttyUSB0"

scmd.Speed = 4800

scmd.Parity = 0

scmd.StopBits = 1

scmd.DataBits = 8

scmd.FlowControl = 0

scmd.Open() 'ouverture du port

Endif


l'envoi des données se fait par la commande :

If scmd.Status = Net.active Then

Print #scmd, mytext;

EndIf

avec mytext une chaine de caractères.
Mais si vous voulez envoyer autre chose que du texte, une variable de type byte, integer, short, long ou autre, il vous suffit d'utiliser la commande WRITE comme ceci en spécifiant le type de données envoyées :

Write #scmd,myvariable as byte

merci pour votre attention.

Convertir des secondes en jours mois heures secondes

Rédigé par spheris Aucun commentaire
Classé dans : Tutoriels, apprentisssage, gambas 3 Mots clés : aucun
Bonjour,
Aujourd'hui nous allons voir une petite routine pour convertir des secondes en jour, heure minutes et secondes au format :

1j50h30m20s.

Il suffit d'utiliser l'instruction WHILE WEND.

Voici le code :

Private Sub cvjhms(mysecond As Integer) As String ' conversion en jour heure mlinute secondes des secondes
Dim myresult As String
Dim myday As Integer
Dim myhour As Integer
Dim myminutes As Integer
While mysecond >= 86400
Inc myday
mysecond = mysecond - 86400
Wend
While mysecond >= 3600
Inc myhour
mysecond = mysecond - 3600
Wend
While mysecond >= 60
Inc myminutes
mysecond = mysecond - 60
Wend
myresult = Str(myday) & "j" & Str(myhour) & "h" & Str(myminutes) & "m" & Str(mysecond) & "s"
Return myresult
End


Appelez simplement cette méthode comme ceci :

dim monresultat as string
monresultat = cvjhms(456789)


merci pour votre attention.


Commentaires dans l'IDE

Rédigé par spheris Aucun commentaire
Classé dans : Tutoriels, IDE, gambas 3 Mots clés : aucun

task.png


Bonsoir,
Une astuce super pratique dans gambas 3.xx

Si vous codez un gros projet, vous avez une liste de méthodes à réaliser,
vous pouvez écrire des commentaires .
Commencez vos ligne de commentaire par une apostrophe puis par les 3 mots clefs :
TODO:
FIXME:
NOTE:

tous vos commentaires seront regroupés dans une liste de tâche à faire en bas à coté de la console. Génial non?
Merci à Benoit pour cette superbe option.

Problème interface décalée

Rédigé par spheris Aucun commentaire
Classé dans : Tutoriels, IDE, gambas 3 Mots clés : aucun

Décalage de l'interface, erreur de compilation, que faire?




Bonjour,
Aujourd'hui nous allons évoquer un problème qui revient assez souvent avec notre gambas version 3.x.
Certains projets gambas téléchargés en code source sur internet ne sont pas conformes à ce que le codeur principal a fait.
Des polices de cractère beaucoup trop grandes ou trop petites, des widgets (éléments de l'interface) complètement décalés, ou pire une erreur lors de la compilation en indiquant que des composants ne sont pas installés.


A) Problème de polices de caractères.

1- Solution sans toucher au code : Si votre application gambas se compile mais a une police qui est trop grande ou trop petite, essayez de changer la taille de la police par défaut dans les paramètres de votre bureau.
En effet, lorsque on code en gambas, par défaut les éléments de l'interface ont une police dite 'proportionnelle' (checkbox nommée 'relatif' dans les propriétés Font de chaque widget) ce qui ajuste automatiquement la taille en fonction de votre environnement linux.
2- Solution en touchant le code : Modifiez la propriété FONT de tous les éléments dans toutes les form et décochez 'RELATIF'

B) Problème de widget décalés.

Si vous vous retrouvez avec plein de widgets décalés par rapport au programme original, c'est surement que le codeur de l'application n'a pas le même environnement linux que le votre. Les form s'adaptent avec votre environnement à la manière de vecteurs proportionnels. Cette option est cochée par défaut dans toutes vos form, c'est la propriété SCALED =True.
Dans toutes les form passez la à False et vos form seront à la même dimension quelque soit le bureau.
Petite remarque : Cette propriété est par défaut car il semble judicieux d'adapter la taille du programme gambas en fonction de la résolution de votre écran pour le meilleur confort d'utilisation.


C) Du code source qui ne se compile pas avec des erreurs de composants non installés.

gb.qt4 non installé, ou autres erreurs de ce type?
1- La solution la plus simple est d'installer le composant manquant par votre gestionnaire de paquet habituel.
2- Dans le répertoire de votre application gambas, il y a un fichier caché nommé '.Project'.
Ce fichier rassemble diverses informations comme les composants utilisés, si le projet est traduisible ou autre...
Vous voyez la liste des composants de cette manière :

# Gambas Project File 3.0
Title=Myproject
Startup=FMain
Version=0.0.83
Component=gb.image
Component=gb.qt4
Component=gb.form
Component=gb.db
Component=gb.db.form
Component=gb.db.sqlite3
Component=gb.desktop
Component=gb.desktop.x11
Component=gb.settings
Component=gb.net
Component=gb.net.curl
Component=gb.net.smtp
Component=gb.web
TabSize=2
Translate=1
Language=po
KeepDebugInfo=0
Packager=1


Pour mon exemple, il me suffit simplement de changer gb.qt4 par gb.gtk, sauvegarder, et relancer gambas et ouvrir le projet.
Mais des erreurs peuvent apparaitre pour des widgets qui n'existent pas (LCDNumber par exemple en gtk).
Il suffit dans le fichier FORM où se situe le LCDNumber de remplacer ce fameux widget par un autre qui hérite des mêmes propriétés. Un exemple :
Remplacer un LCDNumber par une ValueBox :

  { mylcd LCDNumber
    MoveScaled(66,84,24,10)
    Background = &H000000&
  }
 
  Modifié par :
 
    { lcdco2 ValueBox
    MoveScaled(66,84,24,10)
    Background = &H000000&
  }

 
 
  Je vous renvoi sur ce tuto pour plus de détail pour les fenêtres proportionnelles et les polices :
 
  http://gambaslinux.fr/articles.php?lng=fr&pg=2220
 
  Merci de votre attention

 
 
 
 
 

Un clone du GEM DESKTOP

Rédigé par spheris Aucun commentaire
Classé dans : Logiciels, gambas 3 Mots clés : aucun
gbdesk.jpg

Pour les nostalgiques ou pour ceux qui ont découvert le PC1512 d 'amstrad, l 'amiga, avec l 'interface de digital research à l 'époque, ce logiciel leur plaira.
Voici le bureau du GEM reconstitué en Gambas 3.

Ce projet est en développement et je vous poste la première version béta. D 'autre suivront ces prochains jours.
 
Téléchargez les sources ici.


GBentrepreneur

Rédigé par spheris Aucun commentaire
Classé dans : Logiciels, entreprise, gambas 3 Mots clés : aucun
gbentrepreuneur.jpg


GBentrepreneur est un logiciel pour gérer sa micro-entreprise en temps qu 'auto-entrepreneur.
Il remplace le fameux cahier achats/recettes et vous donne en temps réel la taxe à payer, le chiffre d 'affaire et la TVA non récupérable.
A l 'origine ce logiciel était en GB2, maintenant il est porté sous GB3 avec quelques améliorations.
Si vous souhaitez l 'utiliser, apporter des modifications, ou autre, vous pouvez télécharger les sources ICI:

TELECHARGER LE FICHIER ICI