⇨ MENU ⇨ BIBLIOTHEQUE ⇨ dlglib.bbc
FN_getlistboxselectnext()
⇨ MENU ⇨ BIBLIOTHEQUE ⇨ dlglib.bbc
FN_getlistboxselectnext()
DESCRIPTION.
La fonction FN_getlistboxselectnext() retourne l'index de la sélection suivante d'une liste fixe à sélections multiples.
SYNTAXE.
kindex% = FN_getlistboxselectnext( boite , controle , depart )
REMARQUES.
boite doit être l'identifiant de la boite de dialogue qui acceuille 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.
controle doit être l'identifiant de la liste fixe de sélections.
depart doit être nombre entier à partir du quel on recherchera l'index de la sélection suivante.
La fonction FN_getlistboxselectnext() va descendre dans la liste fixe à partir de l'index depart et retourné l'index de la sélection suivante. Si la rechedhe de la fonction FN_getlistboxselectnext() atteint la fin des éléments de la liste fixe sans rencontrer d'élément séléctionné, la recherche repartira depuis le haut de la liste, à index 1. Si aucun élément de la liste fixe n'est sélectionnée, l'appel de la fonction FN_getlistboxselectnext() peut donc générer une boucle infini, si aucun test ne vérifie qu'un élément a déjà été parcouru par la recherche.
Voir la fonction FN_newdialog() qui permet de déclarer et de créer une boite de dialogue.
Voir la procédure PROC_combobox() qui crée une liste déroulante de choix dans une boite de dialogue.
Voir la procédure FN_getlistboxselect() qui retourne l'index de la première sélection d'une liste fixe de choix.
La procédure FN_getlistboxselect() est importée depuis la 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$( 59 )
FOR kindex = 0 TO 59 : LST_Choix$( kindex ) = "Element " + CHR$( 64 + 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 , 180 )
kselection = FN_setproc( PROC_Action() )
REM --- Creation des controles de la boite de dialogue ---
PROC_button( DLG_Test , "Fermer." , 8 , 10 , 160 , 40 , 15 , 0 )
PROC_button( DLG_Test , "Selections." , kselection , 10 , 140 , 40 , 15 , 0 )
PROC_listbox( DLG_Test , "" , 101 , 5 , 5 , 50 , 130 , &200008 )
PROC_setlistboxarray( DLG_Test , 101 , LST_Choix$() , 58 )
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 , Qbouton ) :
PRINT TAB( 0 , 0 ) STRING$( 60 , " " )
kindex = 0
PRINT TAB( 0 , 0 ) "Index de la selection : " ;
REPEAT
kactuel = kindex
kindex = FN_getlistboxselectnext( Qboite , 101 , kactuel )
PRINT STR$( kindex ) ; " " ;
UNTIL kindex <= kactuel
PRINT TAB( 0 , 1 ) "Valeur de la selection : " , FN_getdlgitemtext( Qboite , 101 ) , " "
ENDPROC
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
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.