Search this site
Embedded Files
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
  • More
    • Accueil
    • BBC BASIC
    • BBC OS
    • BBC MODULES
    • RUBRIQUES
    • LIENS

⇨ MENU ⇨ BIBLIOTHEQUE ⇨ dlglib.bbc

PROC_listbox()

DESCRIPTION.


La procédure PROC_listbox() crée une liste fixe de sélections, ou liste à choix multiple, et le place dans sa boite de dialogue.




SYNTAXE.


PROC_listbox( boite , "" , identifiant , abscisse , ordonnee , largeur , hauteur , style )




REMARQUES.


boite doit être l'identifiant de la boite de dialogue qui accueillera la liste fixe de sélections. Il s'agit du nom de la variable qui a reçu la valeur retournée par la fonction FN_newdialog() pour la création de boite.


Le deuxième paramètre est obligatoire et doit toujours être une chaine vide "", bien qu'une autre string ne semble pas retourner d'erreur.


identifiant doit être un nombre entier supérieur à 11.  Tous les controles d'une même boîte de dialogue doivent avoir un identifiant unique mais un identifiant peut être utilisé par plusieurs controles dans des boites de controle différentes.identifiant peut être la valeur retournée par la fonction FN_setproc(); en particulier si le programme doit utiliser identifiant pour connaitre le contenu du champs de saisie. Voir la procédure  PROC_button() pour les valeurs spéciales réservées aux boutons cliquables.


abscisse doit être des nombre entier, exprimé en unités de boite de dialogue, indiquant l'abscisse du bord gauche de la liste fixe dans boite, c'est-à-dire par rapport au bord gauche de boite.


ordonnee doit être des nombre entier, exprimé en unités de boite de dialogue, indiquant l'ordonnée du bord haut de la liste fixe dans boite, c'est-à-dire par rapport au bord haut de boite.


largeur doit être un nombre entier, exprimé en unités de boite de dialogue, donnant la largeur disponible pour la représentation de la liste fixe.


hauteur doit être un nombre entier, exprimé en unités de boite de dialogue, donnant la hauteur disponible pour la représentation de la liste fixe.


style précise le style visuel du champ de saisie. style peut valoir : 

- 0, valeur par défaut, pour afficher une liste fixe de sélection standard ;

- 8 (&8), pour une liste autorisant les sélections multiples simples ;

- c'est le mode LBS_MULTIPLESEL où ;

- l’utilisateur peut sélectionner plusieurs éléments ;

- chaque clic sur un élément l’ajoute ou le retire de la sélection ;
- pas besoin de maintenir une touche spéciale ;

- 128 (&80), pour une liste autorisant le caractère de tabulation (\t) pour présenter les choix en colonnes ;

- c'est le mode LBS_USETABSTOPS où ;

- les éléments de la liste sont découpée aux caractères de tabulation (\t)
- chaque partie s'aligne selon des taquets de tabulation (tab stops) ;
- la liste présente plusieurs colonnes, sans utiliser un ListView

- 2048 (&800), pour une liste autorisant les sélections multiples étendues ;

- c'est le mode LBS_EXTENDEDSEL où ;

- l’utilisateur peut sélectionner plusieurs éléments ;

- chaque clic sur un élément l’ajoute ou le retire de la sélection ;
- associé à la touche Shift, le clique de souris sélectionne une plage ;

- associé aux touche Ctrl + Shif , le clique de souris ajoute une plage à la sélection

- 2097152 (&200000), pour associer une barre de défilement à  une liste ;

- 134217728 (&8000000), pour afficher une liste fixe grisé, désactivé ;

- 268435456 (&10000000), pour cacher la liste fixe.


Il est possible de combiner plusieurs style visuels en additionnant les valeurs des style respectif. Par exemple : 2097288 (&200088), pour combiner les style 8 (&8),128 (&80) et 2097152 (&200000) ce qui affichera une liste fixe de sélections autorisant la sélection multiple simple de ses items, en les présentation en colonnes et en lui associant une barre de défilement.



La procédure PROC_listbox() crée une liste fixe de sélection vide. Pour insérer, ou modifier, les éléments de la liste il faudra :

- déclarer un tableau de données avec l'instruction DIM() ;

- affecter les valeurs aux éléments du tableau de données ;

- appeler la procédure PROC_setlistboxarray() pour placer les éléments du tableau de données dans la liste.



Voir la fonction FN_newdialog() qui permet de déclarer et de créer une boite de dialogue. 

Voir la procédure PROC_setlistboxarray() qui permet la gestion des items de la liste.

Voir la procédure PROC_setlistboxselect() qui permet de sélectionner manuellement un élément.

Voir la procédure FN_getdlgitemtext() qui retourne la valeur du premier élément sélectionné.

Voir la procédure FN_getlistboxselectnext() qui permet de parcourir la sous liste des éléments sélectionnés.

Voir la procédure PROC_setlistboxcols() qui permet de formater les colonnes d'une liste fixe.



La procédure PROC_listbox() est importée depuis le module dlglib.bbc. 




EXEMPLE.


REM --- Importation des modules ---

REM --- Module de la bibliothèque BBC BASIC ---

INSTALL @lib$ + "dlglib.bbc"


REM --- Chargement de la police de caracteres par defaut ---

OSCLI "FONT """ + @lib$ + "DejaVuSans"",12" 


REM --- Initialisation des elements de la liste ---

DIM LST_Choix$( 10 ) 

FOR kindex = 0 TO 10 : LST_Choix$( kindex ) = "Element " + CHR$( 65 + kindex ) : NEXT kindex


REM --- Creation d'une boite de dialogue nommee DLG_Test de 160 x 60 unites intitulee Test ---

DLG_Test = FN_newdialog( "Test ..." , 60 , 100 )

kselection = FN_setproc( PROC_Action() )


REM --- Creation des controles de la boite de dialogue ---

PROC_button( DLG_Test , "Fermer." , 8 , 10 , 80 , 40 , 15 , 0 )

PROC_listbox( DLG_Test , "" , kselection , 5 , 5 , 50 , 70 , 0 ) 

PROC_setlistboxarray( DLG_Test , kselection , LST_Choix$() , 7 )


REM --- Affichage de la boite de dialogue et attende des choix de l'utilisateur ---

kcontrole = FN_showdialog( DLG_Test , &FFFFFFFF80000000 , &FFFFFFFF80000000 )  


REM --- Fermeture de la boite de dialogue ---

PROC_closedialog( DLG_Test ) 


REM --- Fin du programme ---

PRINT : PRINT "Au revoir."

END



REM --- DEFINITION DES METHODES PERSONNALISEES ---


REM --- Procedures d'appel de la boite de dialogue DLG_Test ---

DEF PROC_Action( Qboite , Qliste ) : PRINT TAB( 0 , 0 ) FN_getdlgitemtext( Qboite , Qliste ) : ENDPROC


Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de

vos remarques, vos commentaires et de vos suggestions.

Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour

TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER

avec un exemple de résolution à télécharger pour vous inspirer.

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse