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

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

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