French Liste déroulante (combobox ?)

JPP

Member
Licensed User
Bonjour à tous,

Je débute à peine avec B4A. Mon objectif est d'essayer de faire tourner sur mon smartphone des applications que j'avais écrites en VBA sous Excel.

J'ai réussi à tout installer, à essayer des petits programmes de démonstration, les transférer et le exécuter sur mon Wiko. Cela me semble prometteur...

Mais maintenant, je ne trouve absolument pas comment mettre en place une liste déroulante (ou combobox).
Je pensais pouvoir l'installer avec le "designer" de B4A - comme avec la barre d'outils contrôles sur PC - mais je ne trouve rien ! C'est mentionné dans l'aide de B4A, mais comment l'installer, mystère !

Si quelqu'un l'a déjà fait (c'est un peu du B.A.BA) et peut m'aider, ce serait super.
Avec un petit exemple, même, comme par exemple une liste des jours de la semaine permettant de choisir le jour.

D'avance, merci !
JPP
 

klaus

Expert
Licensed User
Tu peux utiliser un Spinner dans le Designer.
Et le remplir avec:
B4X:
Spinner1.AddAll(Array As String("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"))
 

JPP

Member
Licensed User
Merci Klaus,

effectivement, c'est une solution !
Je sèche encore un peu : j'ai créé un spinner nommé Jours, et le membre :

"Sub Jours_ItemClick (Position As Int, Value As Object)"

Comment récupère-t-on pour utilisation ultérieure le jour choisi ?
Merci !
JPP
 

klaus

Expert
Licensed User
Tu peux définir une variable, par exemple Jour, et attribuer Value à cette variable.
B4X:
Sub Process_Globals
    Dim Jour As String
End Sub

Sub Jours_ItemClick (Position As Int, Value As Object)
    Jour = Value
End Sub
Après tu peux utiliser la variable Jour, qui contient la nom du jour sélectionné, n'importe où dans le programme.
Tu peux l'afficher dans un Label avec Label1.Text = Jour.
 

Laurent95

Active Member
Licensed User
Merci Klaus,

effectivement, c'est une solution !
Je sèche encore un peu : j'ai créé un spinner nommé Jours, et le membre :

"Sub Jours_ItemClick (Position As Int, Value As Object)"

Comment récupère-t-on pour utilisation ultérieure le jour choisi ?
Merci !
JPP
Bonjour,

Comme l'a évoqué Klaus on peut remplir un spinner avec un tableau de chaines :
Spinner1.AddAll(Array As String("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"))
Auquel cas la valeur retournée sera "Value", déclarée comme object pour retourner différents types de valeurs, int, string, image etc., et son index dans la liste sera "Position".
Il suffit de mettre un log pour observer les valeurs retournées. Un exemple d'utilisation avec des noms de polices dans un de mes programmes ci-dessous.
Cela reste un extrait je ne l'ai pas testé ainsi, mais le log suffit au besoin sans charger de fonts ou les affecter à un label.

Bonne prog.

Edit : Oppppsssss, Klaus est rapide aussi :)

B4X:
Sub Globals
  Dim spFont As Spinner
  Dim lblFont As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)
  spFont.Addall(Array As String("Digital","Cutabove","Diskoteq","TouristTrap","Albas", "Gismonda", _
                 "SquaroDynamic","Rounded","DefaultBold"))
End Sub

Sub spFont_ItemClick (Position As Int, Value As Object)
   Log("Position Is : " & Position & ", value is : " & Value)
   lblFont.Typeface=Value
End Sub
 

JPP

Member
Licensed User
Merci à tous les deux !
Cela commence à prendre tournure, mais il faut que je m'habitue, ce n'est plus ou pas exactement le VBA d'avant !
J'aurai bien sûr, ultérieurement, d'autres questions générales à poser -- mais j'éplucherai les forums avant.

Bonne journée,
JPP
 

Laurent95

Active Member
Licensed User
Merci à tous les deux !
Cela commence à prendre tournure, mais il faut que je m'habitue, ce n'est plus ou pas exactement le VBA d'avant !
J'aurai bien sûr, ultérieurement, d'autres questions générales à poser -- mais j'éplucherai les forums avant.

Bonne journée,
JPP
D'autant que le VBA d'Excel est très orienté tableur, il n'y aura donc pas toutes les fonctions accessibles.
En plus sous B4A il faudra absolument ne pas perdre de vue que le support est Android et donc Java, pas un OS comme Windows soit disant multi taches, enfin au moins multi fenêtres. Android gère certains paramètres comme l'occupation mémoire qui amène parfois des surprises. Mais bon cela est un autre sujet.
Donc oui il y aura de l'adaptation à faire pour porter les applis.

Mais bon Java est Open source et souple, et B4A encore plus du fait de la grande communauté autour.
Il y a donc plein de possibilités, par exemple celle de créer des classes et de les surcharger (cf. billet avec les explications culinaires :) )

Bonne prog.
 
Top