L’utilisateur exigeant de B4A se rend vite compte de ses limites, et il est fortement conseillé de se diriger très rapidement vers le compilateur MultiPlateformes B4X beaucoup plus puissant (mais aussi un chouillat plus compliqué)
Sommaire
Créer un programme
- Fichier
- Nouveau
- B4XPages
- Nouveau
Ajouter une Page
- C’est l’intérêt du programme
- PROJET
- Ajouter un nouveau Module
- Module de Classe
- B4XPage
- Il est d’usage de préfixer ce module par “B4X” pour montrer qu’il s’agit de code et non de design
- B4XPage1
- Le CODE de la page B4XPage1 est inclus dans le fichier B4A du projet en temps que nouvelle CLASSE “B4XPage1”
- Le Layout (présentation) de la page correspondante dans le Designer est sauvegardé sous la forme d’un fichier .BAL dans le Gestionnaire de fichier
- Il faudra donc penser à lier les 2 avant toute utilisation
- Module de Classe
- Ajouter un Nouveau LAYOUT
- DESIGNER
- Ouvrir
- Nouveau
- Ouvrir
- On le nommera par exemple Page1
- DESIGNER
- Ajouter un nouveau Module
- A ce stade notre projet XPAGES comporte 5 “parties”
- Module Main = sanctuaire intouchable
- Module B4XMainpage (code de la page principale)
- Module B4XPage1 (code de la page fille)
- Layout Mainpage (design de la page principale)
- Layout Page1 (design de la page fille)
- Il est conseillé de garder une certaine rigueur dans le nommage des fichiers pour éviter les Spaghettis…
- B4Xpage va avec Page
CODER LA PAGE PRINCIPALE
- La page principale s’affichera en premier
- Elle porte un bouton qui ouvre la page secondaire
Si la page principale (MainPage) est automatiquement créée et affichée au démarrage par la routine “Activity initialisée dans MAIN
MAIN
Sub Activity_Create(FirstTime As Boolean) Dim pm As B4XPagesManager pm.Initialize(Activity) End Sub
Elle est chargée (Load) dans B4XMainPage qui va l’afficher automatiqument
Private Sub B4XPage_Created (Root1 As B4XView) Root = Root1 Root.LoadLayout("MainPage") ... End Sub
La page secondaire (Page1) est déclarée à ce moment
B4XMainPage
- L’Object Page1 est construit à partir de la nouvelle CLASS B4XPage1 ajoutée précédemment (ce qui fait que les 2 vont être liés)
Sub Class_Globals Public Page1 As B4XPage1 End Sub
- Puis on lui affecte une ID pour pouvoir l’ouvrir (Alambisme ésotérique qui surcharge un peu l’écriture pour donner l’impression au développeur qu’il est plus intelligent que les autres)
Private Sub B4XPage_Created (Root1 As B4XView) ... Page1.Initialize B4XPages.AddPage("Page 1", Page1)
Ou “Page 1” est la nouvelle identité de la Page B4XPage1 associée à l’Objet Page1 qui permettra de l’appeler sur le bouton d’ouverture
MainPage => Bouton d’ouverture
Private Sub Button1_Click B4XPages.ShowPage("Page 1") End Sub
Indique au programme qu’il doit effectuer un SHOW (affichage) de la page qui porte l’étiquette “Page 1” dessinée dans B4XPage1.BAL et Codée dans Page1 qui est une instance de B4XPage1.BAS (Si vous n’avez rien compris ce n’est pas grave, l’important c’est que ça marche)
On résume
- Créer autant de Layout que de Classe (en préfixant les CLASSE avec B4X)
- Si la page principale est déclarée à l’ouverture, l’ouverture de la page secondaire doit suivre toutes les étapes de la création et de l’utilisation d’un objet
QUESTIONS
Ou se créent les pages ?
- La page principale dans le Module MAIN
- Les Pages secondaires dans le module Principal MainPage
Ou les pages secondaires sont elles liées à leur LAYOUT
- Dans la section Create de la Page à lier avec l’instruction : Root.LoadLayout(“BAL_PAGE”)
Ou s’ouvrent les pages ?
- Dans le MainPage avec l’instruction : B4XPages.ShowPage(“page Identité”)
- L’identité d’une page secondaire se crée dans le MainPage / Create avec l’instruction : B4XPages.AddPage(“Page identité”, Objet_page)
Ou se construit un objet page ?
- L’OBJET est modelé dans un moule appelé CLASSE avec l’opérateur As
- Si la CLASSE DE PAGE est B4XPage1, l’objet se construit dans Class_Globals par la ligne Public MaPage As B4XPage1