Professional Documents
Culture Documents
1 B4x ............................................................................................................................................... 5
2 B4A Premiers pas ......................................................................................................................... 6
2.1 B4A Version dessai ............................................................................................................ 7
2.2 Installation de B4A et Android SDK ................................................................................... 8
2.2.1 Installation de Java JDK................................................................................................... 8
2.2.2 Installation de Android SDK ............................................................................................ 9
2.2.3 Installation de B4A ........................................................................................................ 10
2.3 B4A Choix de la langue ..................................................................................................... 11
2.4 B4A Configuration des dossiers dans lEDI ...................................................................... 12
2.5 B4A Connecter un dispositif rel ....................................................................................... 14
2.5.1 Connexion via USB ....................................................................................................... 14
2.5.2 Connexion via B4A-Bridge............................................................................................ 15
2.5.2.1 Premiers pas avec B4A-Bridge .............................................................................. 15
2.5.2.2 Excuter B4A-Bridge sur votre dispositif .............................................................. 16
2.5.2.3 Connexion sans fil .................................................................................................. 17
2.6 Mon premier programme B4A (MonPremierProgramme.b4a) ......................................... 19
2.7 Second programme B4A (SecondProgramme.b4a) .......................................................... 43
3 B4i Premiers pas ....................................................................................................................... 59
3.1 Installation de B4i .............................................................................................................. 60
3.1.1 Installation de Java JDK................................................................................................. 60
3.1.2 Installation de B4i .......................................................................................................... 61
3.1.3 Installation du Mac Builder ............................................................................................ 62
3.1.4 Mac builder hberg (Hosted Mac builder) (optionnel) ................................................ 63
3.2 B4i Configuration des dossiers dans lEDI ....................................................................... 64
3.3 Cration dun certificat et profil de provisionnement ........................................................ 65
3.3.1 UDID .............................................................................................................................. 65
3.3.2 Certificat et profil de provisionnement .......................................................................... 66
3.4 Installation de B4i-Bridge .................................................................................................. 67
3.5 Installation du certificat B4I............................................................................................... 67
3.6 Dfinition du nom de Paquet.............................................................................................. 67
3.7 Installation de Build B4i-Bridge ........................................................................................ 68
3.7.1 Chargez B4i-Bridge ....................................................................................................... 68
3.7.2 Installation de B4i-Bridge et dmarrage ........................................................................ 69
3.8 Mon premier programme B4i (MonPremierProgramme.b4i) ............................................ 70
3.9 Second programme B4i (SecondProgram.b4i) .................................................................. 93
4 B4J Premiers pas ..................................................................................................................... 110
4.1 Installation de B4J ............................................................................................................ 110
4.1.1 Installation de Java JDK............................................................................................... 110
4.1.2 Installation de B4J ........................................................................................................ 111
4.2 Configuration des dossiers dans lEDI............................................................................. 111
4.3 Mon premier programme B4J (MonPremierProgramme.b4j) ......................................... 112
4.4 Second programme B4J (SecondProgramme.b4j) .......................................................... 134
5 Premiers pas avec B4R............................................................................................................. 150
5.1 Installation de lEDI Arduino .......................................................................................... 150
5.2 Installation de Microsoft .Net Framework ....................................................................... 150
5.3 Installation et configuration de B4R ................................................................................ 151
5.4 Connection dun circuit .................................................................................................... 152
5.5 Slection dun circuit ....................................................................................................... 152
5.6 Le circuit Arduino UNO .................................................................................................. 154
5.6.1 Alimentation en courant ............................................................................................... 155
5.6.2 Broches ......................................................................................................................... 155
5.6.3 Broches dalimentation ................................................................................................ 155
5.6.3.1 Broches dentre / sortie digitales (Digital Input / Output pins) ......................... 156
Table des matires 3 B4x Premier pas
Pour chercher un mot ou une phrase particulire veuillez utiliser la fonction Rechercher dans
le menu Edition.
Les codes source avec tous les fichiers ncessaires (layouts, images etc.) de tous les projets exemple
dans ce guide figurant dans le dossier CodesSource.
Pour chaque programme il y a trois dossiers.
CodesSource
MonPremierProgramme
B4A
MonPremierProgramme.b4a
B4i
MonPremierProgramme.b4i
B4J
MonPremierProgramme.b4j
Les deux programmes MonPremierProgramme et SecondProgramme sont pratiquement les mmes
pour les trois produits B4A, B4i et B4J.
1 B4x
B4x est une suite de langages de programmation BASIC pour diffrentes plateformes.
B4R, B4A, B4J et B4i ensemble, constituent la meilleure solution de dveloppement pour lInternet
des Objets (en anglais Internet of Things IoT).
B4A Android
B4A inclut toutes les fonctionnalits pour dvelopper rapidement nimporte quel type
dapplication pour Android.
B4i iOS
B4i est un outil de dveloppement pour des applications natives pour iOS.
B4i suit les mmes concepts que B4A, et vous permet de rutiliser la plupart du code et
produire des applications pour les deux systmes dexploitation Android et iOS.
B4J est un outil de dveloppement, 100% gratuit, pour des applications desktop, serveurs
et IoT.
Avec B4J vous pouvez facilement crer des applications desktop avec interface utilisateur,
des applications de console (sans interface utilisateur) et des solutions serveur.
Les applications compiles peuvent fonctionner sur Windows, Mac, Linux et des cartes
ARM (comme Raspberry Pi).
B4R est un outil de dveloppement, 100% gratuit, pour des applications natives pour des
microcontrleurs Arduino et ESP8266.
B4R suit les mmes concepts que les autres produits B4x, fournissant un outil de
dveloppement simple et puissant.
2 B4A Premiers pas 6 B4x Premier pas
Consultez dette page pour des instruction comment utiliser la version dessai :
https://www.b4x.com/b4a.html
2.2 Installation de B4A et Android SDK 8 B4x Premiers pas
Instructions dinstallation :
La premire tape est dinstaller le Java JDK, car Android SDK lexige aussi.
Notez que vous pouvez, sans problme, installer plusieurs versions de Java sur un mme ordinateur.
- Installation du SDK . Le SDK ne fonctionner correctement que sil est install dans un dossier
dont le nom ne comprend pas des espaces comme (Program Files).
Il est recommand de linstaller dans un dossier particulier similaire C:\Android.
- Vous devez maintenant installer les outils de la plateforme et au minimum une image de
plateforme. Utilisez la dernire version mais au moins API 8.
Il est conseill dinstaller aussi Google USB Driver pour pouvoir connecter physiquement un
dispositif avec USB. Une liste dautres pilotes se trouve ici.
Notez que vous pouvez aussi connecter un dispositif Android par un rseau local avec loutil B4A-
Bridge.
Si vous voulez connecter votre dispositif avec USB vous devez aussi tlcharger Google USB
driver.
Dans le menu Tools / IDE Options / Language slectionnez la langue de votre choix, French
(franais) dans lexemple.
Ou, si lditeur est dj en franais vous pouvez choisir une autre langue.
2.4 B4A Configuration des dossiers 12 B4x Premiers pas
- Lancez B4A.
- Cliquez sur dans le
menu .
Modules partags : Des fichiers Module peuvent tre partags entre diffrents projets et ils doivent
tre enregistrs dans un dossier spcifique.
Les bibliothques et modules sont expliqus dans le livret B4x Langage Basic.
2.5 B4A Connecter un dispositif rel 14 B4x Premiers pas
Vous devez tlcharger le pilote Google USB Driver dans Android SDK Manager.
Si ce pilote ne fonctionne pas, vous devez chercher un pilote spcifique pour votre dispositif.
Pour pouvoir connecter un dispositif via USB vous devez activer Dbogage USB.
Cest aussi ncessaire si vous utilisez un mulateur.
Activez-le.
Dans ce cas, sur certains anciens dispositifs, il ntait pas possible daccder la carte SD depuis le
PC. Si vous voulez accder carte SD vous devez dsactiver Dbogage USB.
2.5 B4A Connecter un dispositif rel 15 B4x Premiers pas
Il est toujours recommand dutiliser un dispositif rel au lieu dmulateurs Android qui sont plus
lents compares des dispositifs rels (spcialement lors de linstallation dapplications).
Une fois connect, B4A-Bridge supporte toutes les fonctionnalits de lEDI incluant :
Linstallation dapplications, affichage des Logs et le Concepteur Visuel.
Android nautorise pas une application dinstaller dautres applications sans lautorisation de
lutilisateur, cest la raison pour laquelle lorsque vous compilez votre application, B4A-Bridge
affiche un cran demandant votre autorisation.
B4A-Bridge est aussi disponible sur Play Store. Chercher pour : B4A Bridge.
Notez que vous devez autoriser linstallation dapplications de Sources inconnues.
B4A-Bridge requiert une carte de stockage en criture. Sinon, il est impossible dinstaller des
applications.
2.5 B4A Connecter un dispositif rel 16 B4x Premiers pas
Status sera :
Entrez ladresse IP de votre dispositif qui se trouve sur le haut de lcran de B4A-Bridge.
B4A-Bridge sexcute en tant que service jusqu ce que vous pressiez le bouton Stop.
Notez que la permission Internet sera automatiquement ajoute dans le mode dbogage
2.5 B4A Connecter un dispositif rel 18 B4x Premiers pas
Nous allons crire notre premier programme B4A. Cest un programme dentranement de calcul
pour enfants.
Le projet est disponible dans le dossier des codes sources fourni avec le livret :
CodesSource\MonPremierProgramme\ B4A\ MonPremierProgramme.b4a
Laspect de l'cran est diffrent selon la version Android des dispositifs, galement avec les
mulateurs.
Sony xperia z1 Emulateur Android version 4.2 Emulateur Android version 2.2
Dans Android :
- Label est un objet pour afficher du texte.
- EditText est un objet permettant lutilisateur dditer du texte.
- Button est un objet permettant lutilisateur des actions, un click.
Nous allons dfinir le layout (mise en page) de linterface utilisateur avec le Concepteur visuel du
Designer et passerons pas pas au travers de tout le processus.
Le Designer gre les diffrents objets de linterface.
Le Concepteur visuel montre les positions et dimensions des diffrents objets et permet de les
dplacer ou de les redimensionner sur lcran.
Sur un dispositif nous voyons laspect rel
2.5 Mon premier programme B4A 20 B4x Premiers pas
Excutez B4A
Lorsque vous excutez B4A vous verrez sur le haut gauche deux onglets Main et Starter.
Est le module principal pour B4A qui est normalement le
module de dpart. Son nom ne peut pas tre chang.
Est un service, qui est excut au lancement du programme.
Pour notre premier programme nous navons pas besoin du module Starter, nous le supprimons.
Dans le menu
cliquez sur .
Enregistrez le projet.
Dfinissez lApplicationLabel.
LApplicationLabel est le nom qui sera affich sur le dispositif sous licne du projet.
Sur le haut de la zone code, vous voyez les deux lignes ci-dessous montrant deux 'Rgions'.
Le nom par dfaut est B4A Example, mais nous le changeons en MonPremierProgramme.
Les autres lignes sont expliques dans le chapitre Project Attributes attributs projet dans le livret
B4x EDI.
2.5 Mon premier programme B4A 23 B4x Premiers pas
Connectez un dispositif
Il est aussi possible de connecter un mulateur, mais cest dconseill cause de la lenteur.
Cliquez sur .
Il y a diffrentes fentres :
Fichiers affiche tous les fichiers ajouts au projet.
Proprits affiche toutes les proprits de la view slectionne.
Concepteur visuel affiche les views sur lcran.
Script - General permet de fignoler des layouts (mises en page).
Dans le premier projet nous nous intressons seulement aux fentres ci-dessous :
Liste des views
Proprits
Concepteur visuel
Cliquez sur .
Attendez jusqu ce que le dispositif et le Designer soient connects. Ceci peut prendre du temps,
soyez patient.
Vous verrez, dans le coin infrieur gauche, ltat de la connexion ainsi que les paramtres du
dispositif connect :
2.5 Mon premier programme B4A 25 B4x Premiers pas
Nous voyons le Label avec son nom par dfaut Label1 dans les fentres suivantes :
Les nouvelles proprits Left, Top, Width et Height sont directement mises jour dans la fentre
Proprits.
Vous pouvez aussi modifier ces proprits directement dans la fentre Proprits.
Nous allons changer les proprits de ce premier Label pour nos besoins.
Le nom par dfaut des Labels est Label suivi dun nombre, dans notre cas Label1.
Nous changeons son nom en lblNombre1.
Les trois lettres au dbut lbl correspondent 'Label', et 'Nombre1' correspond au premier nombre.
Il est recommand de donner des noms significatifs aux views, de cette manire nous savons
directement le type de la view et sa fonction.
Pressez la touche Entre ou cliquez quelque part ailleurs pour mettre jour le nom dans les autres
fentres et changer la proprit Nom gnrique des vnements.
Pour mieux voir les autres proprits nous largissons la fentre Proprits.
Nous avons besoin dun deuxime Label similaire au premier pour le deuxime nombre. Au lieu
dajouter une nouvelle view, nous copions le premier Label avec les mmes proprits. Seules les
proprits Nom et Left seront modifies.
Maintenant, nous ajoutons un troisime Label pour le signe mathmatique. Nous dupliquons
lblNombre1. Une manire plus simple de copier une view.
Dans le Concepteur visuel, cliquez avec le bouton droit sur lblNumber1 et cliquez sur .
Size en 30
Nom en btnAction
Size en 24
2.5 Mon premier programme B4A 32 B4x Premiers pas
et Height
Left, Top Width
comme gauche.
Cliquez sur .
Pour crire le code du projet nous avons besoin de rfrences aux views dfinies dans le layout.
Ceci se fait avec loutil Gnrer membres dans le Designer.
2.5 Mon premier programme B4A 35 B4x Premiers pas
Loutil Gnrer membres permet de gnrer automatiquement des rfrences aux diffrentes views
et de gnrer les cadres de routine dvnement.
Dans le menu
cliquez sur
pour ouvrir le gnrateur.
Dans cette fentre nous trouvons toutes les views du layout actuel.
Nous cochons toutes les views ainsi que lvnement Click pour le Button btnAction.
Cocher une view dans la liste, comme , gnre une rfrence cette view dans la
routine Sub Globals.
Ces dclarations sont ncessaires pour que le compilateur reconnaisse les views et galement pour
la fonction dautocompltion.
Sub btnAction_Click
End Sub
- Entrez 'A, ds que vous commencez entrer du code, la fonction dautocompltion affiche les
mots cl commenant par a, et le mot le plus appropri est prslectionn.
- Pressez la flche du clavier vers le bas jusqu ce que LoadLayout est en surimpression avec son
laide en ligne donnant une explication sur la proprit ou mthode.
Remarquez que la ligne est souligne en rouge indiquant une erreur, car la ligne est incomplte, il
manque des paramtres.
- crivez '(', laide en ligne affiche les paramtres requis pour cette mthode.
2.5 Mon premier programme B4A 38 B4x Premiers pas
- crivez "Main")
NouveauProbleme est en rouge indiquant une erreur Variable non dclare car le compilateur
ne connait pas encore ce mot.
Gnrer un nouveau problme daddition consiste gnrer alatoirement deux nouveaux nombres
entre 1 et 9 (inclus) pour Nombre1 et Nombre2, et afficher leur valeur dans les Labels en utilisant la
proprit Text de lblNombre1 et lblNombre2.
Cette fonction, Rnd(1, 10), gnre un nombre alatoire entre '1' (inclusif) et '10' (exclusif), donc
entre 1 et 9.
Sub btnAction_Click
If btnAction.Text = "O K" Then
If edtResult.Text = "" Then
Msgbox("Il ny a pas de rsultat","E R R E U R")
Else
CheckResult
End If
Else
New
btnAction.Text = "O K"
End If
End Sub
If btnAction.Text = "O K" Then vrifie que le texte du bouton est gal "O K".
Si oui, nous vrifions si EditText est vide (pas de rsultat).
Si oui, nous affichons un message indiquant quil ny a pas de rsultat dans EditText.
Si non, nous vrifions si le rsultat est juste ou faux.
Si non, nous gnrons un nouveau problme, modifions le texte du bouton en "O K" et vidons
EditText.
2.5 Mon premier programme B4A 40 B4x Premiers pas
Sub TestResultat
If edtResultat.Text = Nombre1 + Nombre2 Then
lblCommentaire.Text = "B O N rsultat" & CRLF & "Cliquez sur Nouveau"
btnAction.Text = "Nouveau"
Else
lblCommentaire.Text = "M A U V A I S rsultat" & CRLF & "Entrez un nouveau
rsultat" & CRLF & "et cliquez sur O K"
End If
End Sub
Avec If edtResultat.Text = Nombre1 + Nombre2 Then nous vrifions si le rsultat est juste.
Dans la partie gauche de lditeur nous voyons une ligne jaune verticale, qui signifie que le code a
t modifi.
Si nous cliquons sur pour enregistrer le projet, la ligne passe en vert indiquant que le code a t
modifi mais dj enregistr. Vous pouvez aussi presser Ctrl + S pour enregistrer le projet.
Lorsque nous quittons lEDI et chargeons le projet nouveau la ligne verte disparait.
2.5 Mon premier programme B4A 41 B4x Premiers pas
Sur le dispositif vous obtenez un cran similaire celui-ci-dessus, qui peut avoir une apparence
diffrente selon la version dAndroid, avec des nombres diffrents.
Nous pouvons videmment faire des amliorations esthtiques dans la mise en page, mais a ntait
pas le but principal du premier projet et fait lobjet du chapitre suivant.
Sur certains dispositifs il se peut que les commentaires soient cachs par le clavier virtuel.
Cet inconvnient sera amlior dans le chapitre suivant Second programme B4A, o nous
crerons notre propre clavier.
2.6 Second programme B4A 43 B4x Premiers pas
Cliquez sur .
Cliquez sur .
2.6 Second programme B4A 44 B4x Premiers pas
Dans le Concepteur visuel cliquez quelque part en dehors dune view pour activer lActivity.
Nom en lblResultat
Modifiez
Color en #8C8C8C
Niveau Alpha en 255
Rayoin des coins en 0
2.6 Second programme B4A 48 B4x Premiers pas
Nom en btn0
Left en 0
Top en 120
Width en 55
Height en 55
Tag en 0
Text en 0
2.6 Second programme B4A 50 B4x Premiers pas
Size to 24
Text Color en Black #000000
Cliquez sur .
Orientation en TOP_BOTTOM
Premire couleur en #FFFFC7C7
Deuxime couleur en #FFFF4F4F
Orientation en TOP_BOTTOM
Premire couleur en #FFFF4F4F
Deuxime couleur en #FFFFC7C7
Nom en btn1
Tag en 1
Text en 1
Et le rsultat.
Une autre amlioration consiste centrer les diffrents objets horizontalement sur lcran.
Pour cela, nous ajoutons le code ci-dessous dans le Designer, dans la fentre Script-Gnral.
Les deux premires lignes existent par dfaut, nous les laissons.
'All variants script
AutoScaleAll ' adapte l'chelle la taille de l'cran
lblSigneMath.HorizontalCenter = 50%x
HorizontalCenter centre une view horizontalement la valeur dfinie, 50%x dans notre cas donc le
milieu de lcran.
lblNombre1.Right = lblSigneMath.Left
Aligne le bord droit de lblNombre1 au bord gauche de lblSigneMath, positionne lblNombre1 juste
ct de lblSigneMath gauche.
lblNombre2.Left = lblSigneMath.Right
Aligne le bord gauche de lblNombre2 au bord droit de lblSigneMath, positionne lblNombre2 juste
ct de lblSigneMath droite.
2.6 Second programme B4A 54 B4x Premiers pas
Cliquez sur .
Nous crivons maintenant la routine qui gre les vnements Click des boutons.
Le nom gnrique des vnements de tous les boutons est "btnEvent", sauf le bouton btnAction
La routine associe aux vnement Click sera btnEvent_Click.
crivez le code suivant :
End Sub
Nous devons dfinir quel bouton a gnr lvnement. Pour cela, nous utilisons lobjet Sender qui
est un objet spcial contenant la rfrence lobjet qui a gnre lvnement.
Private Sub btnEvent_Click Pour avoir accs aux proprits de la view qui a gnr
Private btnSender As Button lvnement nous dclarons une variable locale.
Private btnSender As Button.
btnSender = Sender Et attribuons btnSender = Sender.
Select btnSender.Tag
Case "BS"
Case Else
lblResultat.Text = lblResultat.Text & btnSender.Text
End Select
End Sub
Le caractre "&" signifie concatnation, donc nous ajoutons simplement au texte dj existant le
contenu de la proprit Text du bouton qui a gnr lvnement.
Lorsquon presse le bouton BS nous devons supprimer le dernier caractre du texte dans lblResult.
Cependant, ceci est seulement valable si la longueur du texte est plus grande que 0.
Ce qui est vrifi avec :
If lblResultat.Text.Length > 0 Then
Sub btnEvent_Click
Private btnSender As Button
btnSender = Sender
Select btnSender.Tag
Case "BS"
If lblResultat.Text.Length > 0 Then
lblResultat.Text = lblResultat.Text.SubString2(0, lblResultat.Text.Length - 1)
End If
Case Else
lblResultat.Text = lblResultat.Text & btnSender.Text
End Select
End Sub
2.6 Second programme B4A 57 B4x Premiers pas
Nous pouvons amliorer linterface utilisateur par ladjonction de couleurs de fond du Label
lblCommentaire :
- Jaune pour un nouveau problme
- Vert clair pour un rsultat JUSTE
- Rouge clair pour un rsultat FAUX.
Dans la routine TestResultat nous ajoutons les deux lignes pour les couleurs.
Une autre amlioration consiste ne pas afficher la touche 0 pour viter des rsultats commenant
par un 0.
Pour cela, nous la cachons dans la routine NouveauProbleme avec btn0.Visible = False.
Dans la routine btnEvent_Click, nous cachons la touche 0 si la longueur du texte dans lblResult
est gale zro et laffichons si la longueur est plus grande que zro.
Sub btnEvent_Click
Private btnSender As Button
btnSender = Sender
Select btnSender.Tag
Case "BS"
If lblResultat.Text.Length > 0 Then
lblResultat.Text = lblResultat.Text.SubString2(0,lblResultat.Text.Length - 1)
End If
Case Else
lblResultat.Text = lblResultat.Text & btnSender.Tag
End Select
If lblResultat.Text.Length = 0 Then
btn0.Visible = False
Else
btn0.Visible = True
End If
End Sub
Comme nous utilisons la rfrence btn0 dans le code nous devons la dclarer dans la routine
Globals.
Instructions dinstallation :
- Slectionnez "Windows x86" ou "Windows x64" (pour des machines 64 bit) dans la liste des
plateformes.
- Tlchargez le fichier et installez-le.
3.1 Installation de B4i 61 B4x Premiers pas
Copiez le fichier de licence b4i-license.txt dans le dossier B4i et dans un autre endroit sr pour
sauvegarde. Notez que ce nest pas un fichier texte, ne cherchez pas louvrir avec un diteur de
texte.
Lorsque vous excutez B4i pour la premire fois, le programme vous demande dintroduire votre
adresse e-mail, celle que vous avez utilis lors de lachat de B4i.
Vous la trouvez aussi dans le mail que vous avez reu avec le fichier B4i.
Les instructions ci-dessous expliquent comment installer le Mac Builder sur une machine locale.
- Par dfaut, les ports 51041 (http) et 51042 (https) sont utiliss.
- Le pare-feu doit tre dsactiv ou autoriser des connexions dentre sur les deux ports.
- Pour vrifier que le serveur fonctionne allez vers ce lien : http://<server ip>:51041/test
- Vous pouvez le serveur avec : http://<server ip>:51041/kill
- Il est recommand de dfinir ladresse ip serveur du Mac comme adresse statique. Ceci peut tre
fait dans les rglages du routeur ou dans le Mac sous Rglages rseau.
- Un unique Mac builder peut tre utilis par plusieurs dveloppeurs pour autant quils soient tous
connects au mme rseau local. Notez que vous ntes pas autoris dhberger des builders pour
des dveloppeurs en dehors de votre organisation.
Multiple IPs.
Lors de son dmarrage, le serveur prend la premire adresse IP fourni par le systme et lutilise
pour sa propre adresse IP. Vous pouvez la voir dans les messages du serveur.
Dans la plupart des cas, cest la bonne adresse. Nanmoins, si ce nest pas le cas, alors le serveur est
inutilisable.
Dans ce cas, vous devez dfinir explicitement ladresse correcte :
- Ouvrez le dossier key et effacez tous les fichiers.
- Editez key.txt et changez-le en : manual :<adresse ip correcte>
Par exemple :
manual :192.168.0.199
3.1 Installation de B4i 63 B4x Premiers pas
Si vous avez achet le service Mac builder hberg vous avez reu un mail avec votre user ID
(identifiant utilisateur).
Entrez le ID.
Excutez lEDI.
Dans le menu
cliquez sur
.
javac.exe :
Entrez le dossier dans lequel se trouve le fichier javac.exe.
Keys folder :
Crez un dossier spcifique pour les cls (Keys), par exemple C:\B4i\Keys.
Bibliothques additionnelles :
Crez un dossier spcifique pour les bibliothques additionnelles, par exemple
C:\B4i\AdditionalLibraries.
Modules partags :
Crez un dossier spcifique pour les modules partags, par exemple C:\B4i\SharedModules.
3.3 Creation dun certificat et profil 65 B4x Premiers pas
Ne paniquez pas.
Alors que ce processus peut paratre un peu ennuyeux, il n'est pas trop compliqu et vous pouvez
toujours supprimer les cls et recommencer partir de zro (ce qui nest pas toujours le cas dans
Android)
Notez que vous devez dabord vous enregistrer auprs dApple en tant que dveloppeur iOS (cot
99$ par an). Le processus est entirement effectu sur un ordinateur Windows.
Pour pouvoir installer une application sur un dispositif iOS, vous devez crer un certificat et un
profil de provisionnement.
Le certificat est utilis pour signer les applications. Le profil de provisionnement, li un certificat
spcifique, comprend une liste des dispositifs sur lesquels cette application peut tre installe.
La vido montre les diffrentes tapes pour crer et tlcharger un certificat et un profil de
provisionnement.
Il y a deux tapes qui ne sont pas montres dans la vido mais sont aussi ncessaires avant que vous
ne puissiez crer un profil de provisionnement :
- Crez un App ID. Cette tape est simple. Assurez-vous de crer in id wildcard.
- Ajoutez un ou plusieurs dispositifs. Pour cela, vous devez chercher les UDID des dispositifs.
Lien pour le tutoriel dans le forum : Creating a certificate and provisioning profile.
3.3.1 UDID
Les dispositifs sont reconnus par leur UDIDs. Il y a deux moyens pour obtenir ces UDID :
1. Si vous avez iTunes install, vous pouvez les trouver dans iTunes.
La premire fois, connectez votre dispositif avec un cble USB votre ordinateur.
Excutez iTunes, vous devriez voir cette icne sur le haut. a peut prendre un moment
avant que vous ne le voyiez.
3.3 Creation dun certificat et profil 66 B4x Premiers pas
tapes principales :
B4i-Bridge est une application que vous devez installer sur votre dispositif.
Elle a trois fonctions :
1. Lancer la procdure dinstallation en cas de besoin.
2. Excuter lapplication (si une installation nest pas ncessaire).
3. B4i-Bridge est aussi le Constructeur visuel WYSIWYG.
Lien vers le tutoriel dans le forum : Installing B4i-Bridge and debugging first app.
Excutez B4i, chargez un projet ou utilisez le projet par dfaut et dfinissez le nom du Paquet bas
sur le provision app ID.
Vous obtenez la fentre ci-dessous dans laquelle vous trouvez le code pour Safari (chapitre suivant).
Entrez le code obtenu dans le chapitre prcdent dans la case sur le haut de lcran.
3.4 Installation de B4i-Bridge 69 B4x Premiers pas
Cliquez sur.
Fermez Safari.
Cliquez sur licne B4i-Bridge sur le dispositif, vous verrez lanimation dinstallation et
Conseils :
- Il nest pas ncessaire dattendre que lanimation dinstallation soit termine. Ds que lanimation
a commence vous pouvez presser licne.
- Si linstallation reste bloque en attente plus longtemps que 10 15 secondes, dsinstallez et
rinstallez lapplication.
- B4i-Bridge doit tre en avant-plan pour pouvoir dmarrer une installation ou dmarrer
lapplication. Dans la majorit des cas il est automatiquement en avant-plan. Si a nest pas le cas,
vous devez presser licne pour lamener en avant-plan.
3.7 Mon premier programme B4i 70 B4x Premiers pas
Nous allons crire notre premier programme B4i. Cest un programme dentranement de calcul
pour enfants.
Le projet est disponible dans le dossier CodesSource qui est fourni avec ce livret :
CodesSource\MonPremierProgramme\B4i\ MonPremierProgramme.b4i
Dans iOS :
- Label est un objet pour afficher du texte.
- TextField est un objet permettant lutilisateur dditer du texte.
- Button est un objet permettant lutilisateur des actions, un clic.
Nous allons dfinir le layout (mise en page) de linterface utilisateur avec le Concepteur visuel du
Designer et passerons pas pas au travers de tout le processus.
Le Designer gre les diffrents objets de linterface.
Le Concepteur visuel montre les positions et dimensions des diffrents objets et permet de les
dplacer ou de les redimensionner sur lcran.
Sur un dispositif nous voyons laspect rel.
3.7 Mon premier programme B4i 71 B4x Premiers pas
Excutez B4i
Enregistrez le projet.
Lattribut Application label est le nom du programme qui sera affich sur le dispositif sous licne.
Les autres attributs sont expliqus dans le chapitre Enttes de code Project Attributes / Activity
Attributes dans le livret B4x EDI.
3.7 Mon premier programme B4i 73 B4x Premiers pas
Entrez ladresse IP :
Cliquez sur .
Vous verrez cet cran sur le dispositif (seule la partie suprieure est affiche).
Dans le Designer il y aussi le Constructeur visuel qui affiche graphiquement le layout, pas
exactement WYSIWYG, mais montre les positions et dimensions des diffrents objets.
Seul le haut de la fentre est montr ci-dessous.
Le Label apparait dans le Concepteur visuel, dans la fentre Liste des views et les proprits par
dfaut du Label sont affiches dans la fentre Proprits.
Text mis 5
Nous avons besoin dun deuxime Label similaire au premier. Au lieu den ajouter un nouveau,
nous copions le premier avec les mmes proprits. Seule les proprits Nom and Left seront
modifies.
Sur la gauche, dans la fentre Liste des Views, vous voyez les
diffrentes views.
Le nouveau Label Label1 est ajout.
Ajoutons un 3me Label pour le signe mathmatique. Nous dupliquons lblNombre1 encore une fois.
Cliquez avec le bouton droit sur lblNombre1 puis cliquez sur dans le menu contextuel.
Positionnez-le entre les deux autres Labels et modifiez son nom en lblSigneMath et sa proprit Text
en '+'.
Positionnez le juste au-dessous des trois Labels et modifiez son nom en txfResultat.
'txf' signifie TextField et 'Resultat' sa fonction.
3.7 Mon premier programme B4i 81 B4x Premiers pas
paisseur du cadre en 1
Size en 30
Nom en btnAction
paisseur cadre en 1
Taille en 24
Epaisseur du cadre en 1
Taille en 20
Cliquez sur .
3.7 Mon premier programme B4i 85 B4x Premiers pas
Pour le code du projet nous avons besoin de rfrences pour les diffrentes views.
Nous gnrons ces rfrences au moyen de la fonction Gnrer Membres du Designer.
Dans cette fentre nous trouvons une liste de toutes les views dfinies dans le layout courant.
Nous cochons toutes les views et lvnement Click pour le bouton btnAction.
Le fait de cocher une view gnre sa rfrence dans la routine Process_Globals.
Ces rfrences sont ncessaires au compilateur et pour la fonction dautocompltion.
Sub btnAction_Click
End Sub
Cliquez sur pour gnrer les rfrences et le cadre des routines dvnement, puis
fermez la fentre .
3.7 Mon premier programme B4i 86 B4x Premiers pas
Sub Process_Globals
'These global variables will be declared once when the application starts.
'Public variables can be accessed from all modules.
Public App As Application
Public NavControl As NavigationController
Private Page1 As Page
iOS ncessite au minimum ces objets : une Application, un NavigationControl et une Page, les
dtails sont expliqus dans le chapitre Flux du Programme / Cycle de vis dans le livret B4x Langage
Basic.
Au-dessous nous trouvons la routine Application_Start qui est la premire routine tre excute
lors du dmarrage du programme.
Le code ci-dessous est aussi gnr automatiquement dans chaque nouveau projet.
En premier, notre programme doit charger le fichier layout que nous avons dfini dans les pages
prcdentes.
Le fichier doit tre charg sur RootPanel (panel racine) de Page1, nous le chargeons juste avant
NavControl.ShowPage(Page1)
Nous profitons de la fonction dautocompletion et de laide intgre de B4i.
Nous voyons RootPanel mis en vidence, et ct de la liste laide en ligne avec la syntaxe pour les
paramtres et une explication.
3.7 Mon premier programme B4i 88 B4x Premiers pas
Ajoutez un point .
crivez (.
Nous voulons gnrer un nouveau problme lors du dmarrage. Pour cela, nous ajoutons un appel
la routine NouveauProbleme dans Application_Start.
NouveauProbleme
End Sub
La fonction ci-dessous gnre un nombre alatoire entre '1' (inclusif) et '10' (exclusif) :
Rnd(1, 10)
Dans cette ligne Nombre1 = Rnd(1, 10) ' Gnre un nombre alatoire entre 1 et 9
Le texte aprs lapostrophe, ' Gnre..., est considr comme un commentaire.
Il est conseill dajouter des commentaires expliquant la fonctionnalit du code.
Sub btnAction_Click
If btnAction.Text = "O K" Then
If txfResultat.Text = "" Then
lblCommentaire.Text = "Pas de rsultat!" & CRLF & "Entrez le rsultat" & CRLF &
"et cliquez sur OK."
Else
TestResultat
End If
Else
NouveauProbleme
btnAction.Text = "O K"
End If
End Sub
If btnAction.Text = "O K" Then Vrifie si le texte du bouton est gal "O K".
Si oui, nous vrifions si txfResultat est vide, pas de rsultat entr par lutilisateur.
Si oui nous affichons un message dans lblCommentaire indiquant quil ny a pas de rsultat
dans txfResultat.
Si non, nous vrifions si le rsultat est juste ou faux.
Si non, nous gnrons un bouveau problme, modifions le texte de btnAction en "O K" et vidons
txfResultat.
Avec If txfResultat.Text = Nombre1 + Nombre2 Then nous vrifions si le rsultat est juste.
Touchez .
Crez un nouveau dossier et nommez-le SecondProgramme. Copiez tous les fichiers du projet
MonPremierProgramme dans ce nouveau dossier et renommez les fichiers
MonPremierProgramme.b4i en SecondProgramme.b4i et MonPremierProgramme.b4i.meta en
SecondProgramme.b4i.meta.
Excutez le Designer.
Cliquez avec le bouton droit sur txfResultat Cliquez avec le bouton droit sur lblNombre1
et cliquez sur . et cliquez sur .
Nom en lblResultat
paisseur de cadre en 1
Modifiez
Rayon des coins en 0
3.8 Second programme B4i 97 B4x Premiers pas
pnlClavier Left = 15
pnlClavier Top = 240
pnlClavier Width = 290
pnlClavier Height = 170
pnlClavier paisseur de cadre = 0
Cliquez sur
Nom en btn0
Nom gnrique de lvnement en btnEvent
Left en 0
Top en 120
Width en 50
Height en 50
Tag en 0
Background Color to #B7FA7EA9
3.8 Second programme B4i 99 B4x Premiers pas
paisseur du cadre en 1
Rayon des coins en 5
Text en 0
Taille en 28
Tag en 1
Text en 1
Et le rsultat.
Table des matires 100 B4x Premier pas
Une autre amlioration consiste centrer les diffrents objets horizontalement sur lcran.
Pour cela, nous ajoutons le code ci-dessous dans le Designer, dans la fentre Script-Gnral.
Les deux premires lignes existent par dfaut, nous les laissons.
'All variants script
AutoScaleAll ' adapte l'chelle la taille de l'cran
lblSigneMath.HorizontalCenter = 50%x
HorizontalCenter centre une view horizontalement la valeur dfinie, 50%x dans notre cas donc le
milieu de lcran.
lblNombre1.Right = lblSigneMath.Left
Aligne le bord droit de lblNombre1 au bord gauche de lblSigneMath, positionne lblNombre1
gauche juste ct de lblSigneMath.
lblNombre2.Left = lblSigneMath.Right
Aligne le bord gauche de lblNombre2 au bord droit de lblSigneMath, positionne lblNombre2 droite
juste ct de lblSigneMath.
Cliquez sur
Maintenant, nous crivons la routine qui gre les vnements Click des boutons.
La proprit Nom gnrique des vnements (Event Name) est "btnEvent" pour tous les boutons,
sauf pour btnAction.
Le nom de la routine associe au vnements Click est btnEvent_Click.
End Sub
Nous avons besoin de savoir quel bouton a gnr lvnement. Pour a, nous utilisons un objet
spcifique Sender qui contient la rfrence de la view qui a gnr lvnement.
Private Sub btnEvent_Click Pour pouvoir accder aux proprits de la view qui a gnr
Dim btnSender As Button lvnement, nous dclarions une variable locale.
Dim btnSender As Button
btnSender = Sender Et dfinissons btnSender = Sender.
Select btnSender.Tag Puis, pour diffrencier entre le bouton Retour Arrire (BS) et
Case "BS" les boutons numriques nous utilisons une structure
Select / Case / End Select et utilisons la proprit Tag des
Else boutons.
End Select Rappelez-vous, lorsque nous avons ajout les diffrents
End Sub boutons, nous avions dfini leur proprit Tag BS, 0, 1, 2 etc.
Select btnSender.Tag
Case "BS"
Case Else
lblResultat.Text = lblResultat.Text & btnSender.Text
End Select
End Sub
Le caractre "&" signifie concatnation, nous ajoutons simplement la valeur de la proprit Text du
bouton qui a gnr lvnement au texte dj contenu dans la proprit Text du Label lblResultat.
3.8 Second programme B4i 106 B4x Premiers pas
Lorsquon presse le bouton BS nous devons effacer le dernier caractre du texte contenu dans la
proprit Text de lblResultat. Nanmoins, ceci nest valable que si la longueur du texte est plus
grande que 0. Ceci est vrifi avec :
If lblResult.Text.Length > 0 Then
btnSender = Sender
Select btnSender.Tag
Case "BS"
If lblResultat.Text.Length > 0 Then
lblResultat.Text = lblResultat.Text.SubString2(0, lblResult.Text.Length - 1)
End If
Case Else
lblResultat.Text = lblResultat.Text & btnSender.Text
End Select
End Sub
Dans la routine Sub btnAction_Click nous ajoutons, la fin, lblResult.Text = "" pour vider le
contenu.
Else
New
btnAction.Text = "O K"
lblResult.Text = ""
End If
End Sub
3.8 Second programme B4i 107 B4x Premiers pas
Nous pouvons amliorer linterface utilisateur en ajoutant des couleurs de fond dans
lblCommentaire pour les commentaires.
Dfinissons :
- Jaune pour nouveau problme
- Vert clair pour rsultat JUSTE
- Rouge clair pour rsultat FAUX.
Et nous ajoutons les deux lignes dans la routine TestResultat avec lblComments.Color =...
NouveauProbleme
End Sub
3.8 Second programme B4i 108 B4x Premiers pas
Autre amlioration, nous voulons cacher le bouton '0' pour viter dentrer des '0' comme premier
caractre.
Pour a, nous ajoutons cette ligne btn0.Visible = False. Dans la routine NouveauProjet.
Nous voyons que btn0 est en rouge, ce qui signifie quil y a une erreur.
btn0.Visible = False
Regardons dans longlet Logs sur le haut de quelle erreur il sagit.
Variable non dclare, elle nest donc pas reconnue par le systme.
Pour que btn0 soit reconnu nous, le dclarons dans la routine Process_Globals.
Private btnAction, btn0 As Button
En plus, dans la routine btnEvent_Click, nous cachons le bouton btn0 si le texte dans la proprit
Text dans lblResultat est gale zro et affichons le bouton lorsque la longueur du texte est plus
grande que zro.
btnSender = Sender
Select btnSender.Tag
Case "BS"
If lblResult.Text.Length >0 Then
lblResult.Text = lblResult.Text.SubString2(0,lblResult.Text.Length - 1)
End If
Case Else
lblResult.Text = lblResult.Text & Send.Tag
End Select
If lblResult.Text.Length = 0 Then
btn0.Visible = False
Else
btn0.Visible = True
End If
End Sub
3.8 Second programme B4i 109 B4x Premiers pas
Dernier point, pour rendre le programme indpendant du Dbogueur ou le diffuser sur AppStore
vous devez le compiler en mode Release :
Les applications compiles peuvent tre excuts sur des plateformes Windows, Mac, Linux et
ARM (tel que Raspberry Pi).
B4J inclut un Concepteur visuel puissant permettant de crer des interfaces utilisateur avec
support pour des crans et orientations multiples.
Vu que B4J est gratuit, il ny a donc pas de fichier de license comme pour B4A et B4i.
Excutez lEDI.
Dans le menu
cliquez sur
javac.exe :
Entrez le chemin pour le fichier javac.exe file.
Bibliothques Additionnelles :
Crez un dossier spcifique pour les bibliothques additionnelles (Additional libraries), par exemple
C:\B4J\AdditionalLibraries.
Modules partags :
Crez un dossier spcifique pour les Modules partags (Shared Modules), par exemple
C:\B4J\SharedModules.
4.3 Mon premier programme B4J 112 B4x Premiers pas
Nous allons crire notre premier programme B4J. Cest un programme dentranement de calcul
pour enfants.
Le projet est disponible dans le dossier des codes sources fourni avec le livret :
CodesSource\MonPremierProgramme\ B4J\ MonPremierProgramme.b4j
Dans B4J :
- Node est un objet dinterface homme machine.
- Label est un objet (Node) pour afficher du texte.
- TextField est un objet (Node) permettant lutilisateur dditer du texte, similaire EditText
dans B4A.
- Button est un objet (Node) permettant des actions de lutilisateur.
Nous allons dfinir le layout (mise en page) de linterface utilisateur avec le Concepteur visuel du
Designer et passerons pas pas au travers de tout le processus.
Le Designer gre les diffrents objets de linterface.
Le Concepteur visuel montre les positions et dimensions des diffrents objets et permet de les
dplacer ou de les redimensionner sur lcran.
Dans la fentre WYSIWYG nous voyons laspect rel.
4.3 Mon premier programme B4J 113 B4x Premiers pas
Excutez B4J
Enregistrez le projet.
Les dimensions de la Form (fentre) correspondent la fentre principale affiche sur lcran.
Ici, nous pouvons dfinir les dimensions de la fentre principale appele Form.
Les valeurs par dfaut sont MainFormWidth (largeur) = 600 et MainFormHeight (hauteur) = 600.
Notez que dans le coin infrieur droit du Designer vous voyez ltat de la connexion avec la fentre
WYSIWYG :
Dans le Designer, nous avons aussi le Concepteur visuel qui affiche le layout pas exactement
WYSIWYG mais les positions et dimensions des diffrents objets.
Seul le haut du Concepteur visuel est montr.
La partie en gris fonc correspond la surface de la fentre connecte, qui est la Form WYSIWYG.
Les dimensions par dfaut de la fentre sont 600 * 600, nous les modifions en 400 * 600, comme
dans les Project Attributes.
Cliquez sur .
Le Label est affich dans le Concepteur visuel, dans la fentre Liste des
Views et ses proprits par dfaut sont listes dans la fentre Proprits.
Et dans la Form
WYSIWYG.
4.3 Mon premier programme B4J 119 B4x Premiers pas
Redimensionnez et dplacez le Label au moyen des petits carrs rouges comme sur limage.
Text en 5
Alignment en CENTER.
Taille en 36.
Nous avons besoin dun deuxime Label, similaire au premier. Au lieu dajouter un nouveau, nous
dupliquons le premier avec les mmes proprits. Seuls les proprits Nom et Left seront modifies.
Et Left en 220.
Ajoutons maintenant un troisime Label pour le signe mathmatique. Nous dupliquons encore une
fois lblNombre1.
Cliquez avec le bouton droit sur lblNumber1 puis, cliquez sur dans le menu contextuel.
Positionnez-le entre les deux premiers Labels, modifiez son nom en lblSigneMath et sa proprit Text
en '+'.
paisseur du cadre en 1
Prompt en Rsultat
Prompt reprsente le texte affich lorsquaucun texte nest
entr.
Taille en 30
Nom en btnAction
Color en #FFBDBBBB
paisseur du cadre en 1
Text vide
Taille en 20
4.3 Mon premier programme B4J 126 B4x Premiers pas
Et le rsultat.
Cliquez sur .
4.3 Mon premier programme B4J 127 B4x Premiers pas
Pour crire les routines pour le projet, nous devons rfrencer les objets dans le code.
Nous le faisons avec loutil Gnrer membres du Designer.
Loutil Gnrer membres gnre automatiquement les rfrences des objets ainsi que des cadres
pour les routines dvnement.
Cliquez sur
Dans cette fentre nous trouvons tous les objets ajouts dans le layout.
Nous cochons tous les objets ainsi que lvnement Action pour btnAction.
4.3 Mon premier programme B4J 128 B4x Premiers pas
Sub btnAction_Action
End Sub
Cliquez sur pour gnrer les rfrences at les cadres des routines dvnement, puis
fermez le fentre .
4.3 Mon premier programme B4J 129 B4x Premiers pas
Sub Process_Globals
Private fx As JFX
Private MainForm As Form
Private btnAction As Button
Private lblCommentaire As Label
Private lblNombre1 As Label
Private lblNombre2 As Label
Private lblSigneMath As Label
Private txfResultat As TextField
End Sub
Les deux lignes ci-dessous sont ncessaire et figurent systmatiquement dans le code dun projet.
Private fx As JFX
Private MainForm As Form
B4J ncessite un objet MainForm, ainsi que la bibliothque JFX pour les objets (nodes), dtails
dans le chapitre Flux du programme / cycle de vie dans livret B4x Langage Basic.
En dessous nous trouvons la routine AppStart qui est la premire routine tre excute au
dmarrage de programme.
Le contenu ci-dessous est aussi systmatiquement ajout dans chaque projet.
En premier, nous devons charger le fichier layout que nous avons dfini dans les pages prcdentes.
Le fichier doit tre charg dans MainForm.RootPane, pour a, nous dcommentons cette ligne
'MainForm.RootPane.LoadLayout("Layout1")
et modifions le nom du fichier.
NouveauProbleme
End Sub
NouveauProbleme est affich en rouge car la routine NouveauProbleme nexiste pas encore.
Gnrer un nouveau problme consiste gnrer alatoirement deux nombres de 1 9 (inclusif)
pour les variables Nombre1 et Nombre2 et afficher ces valeurs dans les proprits Text des deux
Labels lblNombre1 et lblNombre2.
Et la routine 'NouveauProbleme' :
La fonction ci-dessous gnre un nombre entier alatoire de '1' (inclusif) '10' (exclusif) :
Rnd(1, 10)
Dans cette ligne Nombre1 = Rnd(1, 10) ' Gnre un nombre alatoire entre 1 et 9
Le texte aprs lapostrophe, ' Gnre..., est considr comme un commentaire.
Il est recommand d'ajouter des commentaires expliquant le but du code.
If btnAction.Text = "O K" Then vrifie si le texte du bouton est gal "O K".
Si oui, nous vrifions si la proprit Text du TextField txfResultat est vide.
Si oui, nous affichons un message indiquant lutilisateur quil na pas entr de rsultat.
Si non, nous vrifions si le rsultat est juste ou faux.
Si non, nous gnrons un nouveau problme, modifions le texte du bouton "O K" et vidons la
proprit Text de lobjet TextField.
Sub TestResultat
If txfResultat.Text = Nombre1 + Nombre2 Then
lblCommentaire.Text = "Rsultat J U S T E" & CRLF & "Cliquez sur Nouveau"
btnAction.Text = "Nouveau"
Else
lblCommentaire.Text = "Rsultat F A U X" & CRLF & "Entrez un nouveau rsultat" & CRLF &
"et cliquez sur O K"
End If
End Sub
Avec If txfResultat.Text = Nombre1 + Nombre2 Then nous vrifions si le rsultat fourni par
lutilisateur est juste.
Entrez 9.
Bien sr, lesthtique nest pas la meilleure, mais a ntait pas le but du premier programme.
Des amliorations font lobjet du second programme.
4.4 Second programme B4J 134 B4x Premiers pas
Crez un nouveau dossier avec le nom SecondProgramme. Copiez tous les fichiers et sous-
dossiers de MonPremierProgramme vers SecondProgramme et renommez le fichier
MonPremierProgramme.b4j en SecondProgramme.b4j et MonPremierProgramme.b4j.meta en
SecondProgramme.b4j.meta.
4.4 Second programme B4J 135 B4x Premiers pas
Excutez le Designer.
Nom en lblResultat
paisseur du cadre en 1
Modifiez
Rayon des coins en 0
4.4 Second programme B4J 139 B4x Premiers pas
pnlClavier Left = 50
pnlClavier Top = 350
pnlClavier Width = 290
pnlClavier Height = 170
pnlClavier paisseur de cadre = 0
Cliquez sur
Nom en btn0
Nom gnrique en btnEvent
Left en 0
Top en 120
Width en 50
Height en 50
Tag en 0
Color en #B7FA7EA9
4.4 Second programme B4J 141 B4x Premiers pas
paisseur du cadre en 1
Rayon des coins en 5
Text en 0
Taille en 22
Dupliquez btn0.
Tag en 1
Text en 1
Et le rsultat.
Dans le menu .
Cliquez sur .
4.4 Second programme B4J 145 B4x Premiers pas
Maintenant nous crivons la routine qui gre les vnements Click des boutons.
Le nom gnrique des vnements pour tous les boutons est "btnEvent", sauf pour btnAction.
Le nom de la routine associe lvnement Click sera donc btnEvent_Click.
crivez le code ci-dessous :
End Sub
Nous devons connaitre le bouton qui a gnr lvnement. Pour a, nous utilisons lobjet spcial
Sender qui contient, dans la routine dvnement, la rfrence de lobjet qui a gnr lvnement.
Private Sub btnEvent_Action Pour avoir accs aux proprits de lobjet qui a gnr
Private btnSender As Button lvnement, nous dclarons une variable locale
Private btnSender As Button.
btnSender = Sender et attribuons btnSender = Sender.
Ajoutons le code pour les boutons numriques. Nous ajoutons le contenu de la proprit Text du
bouton au texte dans la proprit Text du Label lblResultat dans la ligne :
lblResultat.Text = lblResultat.Text & btnSender.Text
Select btnSender.Tag
Case "BS"
Case Else
lblResultat.Text = lblResultat.Text & btnSender.Text
End Select
End Sub
Le caractre "&" signifie concatnation, nous ajoutons donc au texte existant le texte du bouton qui
a gnr lvnement.
Lorsquon presse le bouton Retour arrire nous voulons supprimer le dernier caractre du texte dans
lblResultat. Ceci nest possible que si la longueur du texte est > 0. Ceci est vrifi avec :
If lblResultat.Text.Length > 0 Then
SubString2(BeginIndex, EndIndex) extrait un nouvel objet String commenant lindex dfini dans
BeginIndex (inclusif) jusqu lindex dfini dans EndIndex (exclusif).
btnSender = Sender
Select btnSender.Tag
Case "BS"
If lblResultat.Text.Length >0 Then
lblResultat.Text = lblResultat.Text.SubString2(0,lblResultat.Text.Length - 1)
End If
Case Else
lblResultat.Text = lblResultat.Text & btnSender.Text
End Select
End Sub
Dans la routine Sub btnAction_Action nous ajoutons la fin, lblResult.Text = "" pour vider le
texte.
Else
New
btnAction.Text = "O K"
lblResultat.Text = ""
End If
End Sub
Table des matires 147 B4x Premier pas
Et le rsultat.
La bibliothque CSSUtils est ajoute au
projet.
Lutilisation de bibliothques est explique dans le chapitre Bibliothques dans le livret B4x
Langage Basic.
4.4 Second programme B4J 149 B4x Premiers pas
Une autre amlioration est de rendre le bouton 0 invisible lorsque lutilisateur doit entrer le
premier chiffre.
Pour a, nous cachons le bouton dans la routine NouveauProbleme avec btn0.Visible = False.
Nous voyons que btn0 est affich en rouge, ce qui signifie une erreur, et dans ce cas que lobjet
nest pas reconnu par lEDI.
Pour y remdier, nous ajoutons btn0 dans la routine Globals dans la ligne ci-dessous :
Private btnAction, btn0 As Button
En plus, dans la routine btnEvent_Action, nous cachons le bouton si la longueur du texte dans
lblResultat est gale zro et laffichons si la longueur est plus grande que zro.
btnSender = Sender
Select btnSender.Tag
Case "BS"
If lblResultat.Text.Length > 0 Then
lblResultat.Text = lblResultat.Text.SubString2(0,lblResultat.Text.Length - 1)
End If
Case Else
lblResultat.Text = lblResultat.Text & Send.Tag
End Select
If lblResultat.Text.Length = 0 Then
btn0.Visible = False
Else
btn0.Visible = True
End If
End Sub
5 Premiers pas avec B4R 150 B4x Premiers pas
B4R suit les mmes concepts que les autres outils B4X (B4A, B4i, B4J), fournissant un outil de
dveloppement simple et puissant.
Vous devriez aussi crer un dossier spcifique pour les modules partags (Shared Modules).
Un mme module code peut tre utilise par diffrents projets sans avoir lenregistrer dans le
dossier du projet.
5.4 Connection dun circuit 152 B4x Premiers pas
Lorsque vous connectez un circuit au PC avec un cble USB, Windows charge le pilote et affiche le
port srie utilis.
Lancez B4R.
Dans ce chapitre vous trouvez des explications sur quelques fonctions de base de Arduino UNO qui
peuvent tre utiles aux dbutants.
Le circuit Arduino UNO est le circuit de base de la famille Arduino.
Des circuits additionnels, appels Shields peuvent tre clips sur les circuits Arduino.
Arduino Wi-Fi Shield 101
Arduino Ethernet Shield
etc.
LArduino UNO :
DC Power
plug
Le circuit peut tre aliment en courant soit par le connecteur DC power (7 - 12V), le connecteur
USB (5V), ou la broche VIN du circuit (7-12V).
Une alimentation par les broches 5V ou 3.3V by-passe le rgulateur, et peut endommager
votre circuit (voir Broches ci-dessous). A dconseiller.
5.6.2 Broches
Chacune des broches digitales de lUNO peut tre utilise comme entre ou sortie, en spcifiant son
mode pinMode, avec DigitalRead ou DigitalWrite. Elles oprent avec 5 volts. Chaque broche peut
fournir ou recevoir un courant de 20 mA comme conditions de fonctionnement recommandes et
comprend une rsistance pull-up interne (dconnecte par dfaut) de 20-50 kohm. Une valeur de
courant maximale de 40mA ne doit pas tre dpasse sur aucune des broches pour viter un
endommagement permanent du microcontrleur.
LArduino UNO contient 6 broches dente analogiques (Analog input pins) A0 A5 avec un
convertisseur analogique vers numrique de 10 bit, donc une rsolution de 0 1023.
La tension de rfrence est de 5 Volt donnant une rsolution de 4.9 mV par unit.
Alors que la fonction principale des broches analogiques pour la plupart des utilisateurs d'Arduino
est de lire des capteurs analogiques, les broches analogiques ont aussi toutes les fonctionnalits des
broches numriques 0 - 13.
5.6 Le circuit Arduino UNO 157 B4x Premiers pas
Si vous avez configur une broche avec le mode INPUT, et que vous lisez ltat dun interrupteur,
ltat de la broche sera "flottant" lorsque linterrupteur est ouvert, donnant des rsultats
imprvisibles. Pour assurer une lecture correcte lorsque linterrupteur est ouvert, une rsistance de
rappel (pull-up) doit tre ajoute. La fonction de cette rsistance est de mettre la broche dans un
tat connu lorsque linterrupteur est ouvert. Une rsistance de 10 K ohm est gnralement utilise,
cest une valeur suffisamment basse pour viter un point flottant et en mme temps une valeur
suffisamment haute pour ne pas soutirer un courant trop lev lorsque linterrupteur est ferm.
Le mode INPUT_PULLUP ajoute une rsistance de rappel (pull up) interne pour viter de devoir
en ajouter une en externe.
Avec une rsistance de rappel, la broche renvoie False lorsque linterrupteur est ferm car elle est
mise 0 Volt.
Source Wikipedia
5.6 Le circuit Arduino UNO 158 B4x Premiers pas
5.6.5.1 Initialize
Exemple2 : Initialisation de la broche digitale 3 en entre avec une rsistance pull up.
Private pinTest2 As Pin
pinTest2.Initialize(3, pinTest2.MODE_INPUT_PULLUP)
Les broches analogiques, sur lArduino UNO, peuvent aussi tre rfrences par des numros,
comme ci-dessous :
pinTest4.Initialize(18, pinTest4.MODE_INPUT)
Pin.A0 = 14
Pin.A1 = 15
Pin.A2 = 16
Pin.A3 = 17
Pin.A4 = 18
Pin.A5 = 19
Linitialisation dune broche analogique en sortie fonctionne comme une broche digitale en sortie.
5.6 Le circuit Arduino UNO 159 B4x Premiers pas
5.6.5.2 DigitalRead
Exemple :
5.6.5.3 DigitalWrite
Exemple:
5.6.5.4 AnalogRead
Exemple :
Private pinPot As Pin
pinPot.Initialize(pinPot.A4, pinPot.MODE_INPUT)
5.6.5.5 AnalogWrite
AnalogWrite attribue un octet (Byte) la broche dfinie pour une modulation de largeur
d'impulsions.
AnalogWrite na rien faire avec les broches analogiques ni avec AnalogRead.
AnalogWrite peut tre utilise seulement avec les broches numriques ~3, ~5, ~6, ~9, ~10, et ~11 sur
le circuit Arduino UNO, les broches avec le prfixe ~.
Lorsque nous excutons B4R nous obtenons le code par dfaut ci-dessous.
La #Region Project Attributes est normalement rduite; ces attributs sont expliqus dans le
chapitre Enttes de code Project Attributes / Activity Attributes dans le livret B4x EDI.
Sub Process_Globals
'These global variables will be declared once when the application starts.
'Public variables can be accessed from all modules.
Public Serial1 As Serial
End Sub
#AutoFlushLogs: AutoFlushLogs: True assure que les Logs sont renvoys sans problmes.
AutoFlushLogs: False peut provoquer des problmes.
#CheckArrayBounds: Vrifie les limites des tableaux (arrays) ou pas.
#StackBufferSize: Dfinit la dimension par dfaut du tampon de la pile (Stack buffer size).
5.7.1 Bouton.b4r
Il est similaire lexemple Button dErel dans le forum. Nous utilisons un commutateur bouton
poussoir et la LED 13 se trouvant sur la carte de lArduino UNO.
Lancez B4R.
crivez le code.
Excutez le programme.
5.7.1.1 Schma
Matriel :
1 commutateur bouton poussoir
5.7.1.2 Code
Sub Process_Globals
Public Serial1 As Serial
Private pinBouton As Pin 'broche (pin) pour le bouton
Private pinLED13 As Pin 'broche (pin) pour la LED 13 de lArduino
End Sub
pinBouton.Initialize(pinBouton.A5, pinBouton.MODE_INPUT_PULLUP)
'Utilisation d'une rsistance pull up pour viter que la broche soit flottante.
pinBouton.AddListener("pinBouton_StateChanged")
pinLED13.Initialize(13, pinLED13.MODE_OUTPUT)
End Sub
Nous initialisons pinBouton, comme broche analogique A5, avec pinBouton.A5 et dfinissons le
mode dentre pinBouton.MODE_INPUT_PULLUP. Nous avons besoin dune rsistance pull up pour
viter que la broche ne soit flottante, MODE_INPUT_PULLUP connecte une rsistance pull up interne.
Nous initialisons pinLED13, comme broche digitale 13, la LED 13 interne de lArduino, et
dfinissons son mode de sortie pinLED13.MODE_OUTPUT.
Nous crivons Not(State) car State sera False lorsque le bouton poussoir est press cause du
mode PULLUP.
Lorsque nous pressons le bouton poussoir, la LED 13 de lArduino UNO sallume et lorsque nous
relchons le bouton poussoir la LED steint.
5.7.2 LedVerte.b4r 164 B4x Premiers pas
5.7.2 LedVerte.b4r
Nous ajoutons une LED verte notre circuit qui peut tre allume ou teinte avec le commutateur
bouton poussoir du premier projet.
5.7.2.1 Schma
Matriel :
1 commutateur bouton poussoir
1 LED verte
1 rsistance 220
Et, nous
- Ajoutons une LED verte sur le breadboard.
- Relions la cathode (-) via une rsistance de 220
la ligne GND du breadboard.
- Relions lanode (+) la broche digitale 7.
5.7.2 LedVerte.b4r 165 B4x Premiers pas
5.7.2.2 Code
Sub Process_Globals
Public Serial1 As Serial
Private pinBoutton As Pin 'broche (pin) pour le bouton
Private pinLEDVerte As Pin 'broche (pin) pour la Led verte
Private Allum = False As Boolean
End Sub
Nous ajoutons une variable boolenne globale Allum qui est True quand la LED est allume.
pinBouton.Initialize(pinButton.A5, pinBouton.MODE_INPUT_PULLUP)
'Utilisation d'une rsistance pull up pour viter que la broche soit flottante.
pinBouton.AddListener("pinBouton_StateChanged")
pinLEDVerte.Initialize(7, pinLEDVerte.MODE_OUTPUT)
End Sub
Chaque fois que la variable State est False, bouton poussoir press, nous changeons la variable
Allum et lattribuons la broche pinLEDVerte.
5.7.3 LedVerteSansRebond.b4r 166 B4x Premiers pas
5.7.3 LedVerteSansRebond.b4r
Pour ce projet nous utilisons exactement le mme circuit que pour le projet LedVerte.b4r.
Le commutateur rebondit plusieurs fois gnrant plusieurs changements dtat avant de rester dans
un tat stable.
Pour rsoudre ce problme, nous ne ragissons pas, dans la routine pinButton_StateChanged, des
changements dtat pendant un temps donn (10 millisecondes).
5.7.3 LedVerteSansRebond.b4r 167 B4x Premiers pas
5.7.3.1 Schma
Matriel:
1 commutateur bouton poussoir
1 LED verte
1 rsistance 220
Et nous
- ajoutons une LED verte sur le circuit.
- relions la cathode (-) la ligne GND du circuit
via une rsistance de 220 .
- relions lanode (+) to digital pin 7.
5.7.3 LedVerteSansRebond.b4r 168 B4x Premiers pas
5.7.3.2 Code
Sub Process_Globals
Public Serial1 As Serial
Private pinBouton As Pin 'broche (pin) pour le bouton
Private pinLEDVerte As Pin 'broche (pin) pour la Led verte
Private Allum = False As Boolean
Private RebondTemps As ULong
Private RebondRetard = 10 As ULong
End Sub
pinBouton.Initialize(pinBouton.A5, pinBouton.MODE_INPUT_PULLUP)
'Utilisation d'une rsistance pull up pour viter que la broche soit flottante.
pinBouton.AddListener("pinBouton_StateChanged")
pinLEDVerte.Initialize(7, pinLEDVerte.MODE_OUTPUT)
End Sub
5.7.4 FeuxSignalisation.b4r
Ce projet est une evolution du projet LedVerteSansRebond et simule des feux de signalisation.
Les feux peuvent tre actives ou dsactivs avec le commutateur bouton poussoir comme dans les
projets prcdents.
Le cycle rouge vert et vert rouge est gr par un Timer (minuteur) et le cycle jaune est rgi par
une routine appellee avec un retard correspondant la dur de cycle jaune.
5.7.4.1 Sketch
Matriel:
1 commutateur bouton poussoir
1 LED verte
1 LED jaune
1 LED rouge
3 rsistances de 220
Nous
- ajoutons une LED jaune et une rouge similaire la
verte.
- relions le (+) de la LED jaune la broche digitale 8.
- relions le (+) de la LED rouge la broche digitale 9.
5.7.4 FeuxSignalisation.b4r 170 B4x Premiers pas
5.7.4.2 Code
Sub Process_Globals
Public Serial1 As Serial
Nous dclarons le commutateur, les trois broches pour les LEDs, le Timer et qutre variables
globales LightOn, LightGreen, RebondTemps et RebondRetard.
TimerVertRouge.Initialize("TimerVertRouge_Tick", 2000)
pinLEDVert.Initialize(7, pinLEDVert.MODE_OUTPUT)
pinLEDJaune.Initialize(8, pinLEDJaune.MODE_OUTPUT)
pinLEDRouge.Initialize(9, pinLEDRouge.MODE_OUTPUT)
End Sub
Nous utilisons la routine FinJaune pour passer du feu jaune au feu rouge.
Cette routine est appellee avec le mot cl CallSubPlus qui permet dappeler la routine dfinie avec
un retard donn.
CallSubPlus("FinJaune", 500, 0)
FinJaune = Nom de le routine
500 = retard, 0.5 seconde (500 milli-secondes)
0= Tag, pas utilize dans notre cas.
5.8 Glossaire
Pulse Width Modulation, ou PWM (modulation de largeur d'impulsions), est une technique pour
obtenir des rsultats analogiques avec des moyens numriques. Un contrle numrique est utilis
pour crer un signal rectangulaire, un signal qui est commute entre ON et OFF. Ce genre de
commutations peut simuler des tensions entre 5 Volt (toujours ON) et 0 Volt (toujours OFF) en
modifiant la dure pendant laquelle la tension est 5 V par rapport la dure pendant laquelle la
tension est 0 V, appel le rapport cyclique. La dure pendant laquelle le signal est 5 V est
appele largeur d'impulsion (pulse width). Pour obtenir des valeurs analogiques variables, on
modifie ou module cette largeur d'impulsion. Si on rpte ce schma de commutations
suffisamment rapidement, avec une LED par exemple, le rsultat est comme si on avait une tension
stable entre 0 et 5V modulant la luminosit de la LED.
Dans le graphique ci-dessous, les lignes vertes reprsentent une priodicit rgulire dans le temps.
Cette dure ou priode est linverse de la frquence de modulation. En dautres termes, avec une
frquence de modulation denviron 500Hz, (celle des cartes Arduino), les lignes vertes auraient un
espacement de 2 millisecondes. La fonction analogWrite() est base sur 0 - 255, donc
analogWrite(255) fournit un rapport cyclique de 100% (toujours ON), analogWrite(127) est 50%
de rapport cyclique (moiti du temps) et analogWrite(0) 0% donc toujours OFF.
0% de rapport cyclique
6 Outils daide
Les outils suivants sont utiles pour trouver des rponses beaucoup de vos questions.
Et le rsultat :
Sur le haut vous trouvez des boutons permettant un filtrage selon diffrents critres.
Ce programme affiche les fichiers daide xml. Il tait crit lorigine par Andrew Graham
(agraham) pour B4A. Je lai modifi, avec lagrment dAndrew, pour afficher les fichier xml de
toutes les plateformes B4A, B4J, B4i et B4R.
A ct de la liste des
objets vous trouvez une
autre liste droulante avec
mthodes(M)
vnements(E)
proprits(P)
champs(F)
pour lobjet slectionn.
Moteur de recherche pour trouver des objets avec des mots cl.
Ferme B4AHelp
Bibliothques standard.
Une fois slectionn, le nom du dossier est mmoris pour les dmarrages suivants du programme.
6 Outils daide 178 B4x Premiers pas
Ceci est aussi un programme autonome Windows affichant les fichiers daide des bibliothques.
6.4.1 B4A
6.4.2 B4i
iOS developers :
https://developer.apple.com/ios/human-interface-guidelines/overview/themes/
Cest le site de Apple avec toutes les informations sur iOS, en anglais.
6 Outils daide 181 B4x Premiers pas
6.4.3 B4J
http://docs.oracle.com/javase/8/javafx/api/toc.htm
6 Outils daide 182 B4x Premiers pas
6.4.4 B4R
https://www.arduino.cc/en/Guide/HomePage
6 Outils daide 183 B4x Premiers pas
6.5 Livres
http://pennypress.co.uk/b4a-book/
http://www.magbooks.com/product/build-your-own-android-app/
7 Dictionnaire 184 B4x Premiers pas
7 Dictionnaire
WYSIWYG What You See Is What You Get (ce que vous voyez est ce que vous obtenez)
Lutilisateur voit directement quoi ressemblera le rsultat final.