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.