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 ⇨ editbox.bbc

PROC_seteditboxarray()

DESCRIPTION.


La procédure PROC_seteditboxarray() associe un tableau de donnée au contenu d'un éditeur de texte multiligne.




SYNTAXE.


PROC_seteditboxarray( boite , editeur , tableau , lignes )




REMARQUES.


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


editeur doit être l'identifiant de l'éditeur de texte multilignes qui sera associé a tableau.


tableau doit être l'identifiant d'un tableau de données, ne contenant que des chaines de caractères (type $) les valeurs numériques donnant des comportements indésirables, contenant les nouvelles valeurs de l'éditeur de texte multilignes à modifiée. tableau ne doit pas forcément être toujours le même tableau de données, un éditeur de texte multilignes n'étant pas liée définitivement au premier tableau de données qui lui est associé.


lignes doit être un nombre entier indiquant le nombre d'éléments, ou items, provenant de tableau qui doivent être insérés dans editeur. Si lignes peut être inférieur au nombre d'items de tableau, il ne doit jamais lui être supérieur, chaque ligne de editeur devant pouvoir faire référence au contenu d'un item de tableau. 


Toutes les modifications apportées dans editeur, par l'utilisateur ou le programme, durant l'affichage de boite, seront préservées dans tableau. Il suffira donc de consulter les éléments de tableau pour connaitre, et si besoin analyser, le contenu de editeur.


Note : avec la distribution BBC BASIC for Raspberry, bien qui soit possible d'afficher le dernier élément de tableau dans editeur, il ne semble pas possible de modifier cette élément dans editeur.


La création d'un nouvel éditeur de texte multiligne nécessite une association avec un tableau de données, de type $, déclaré au préalable avec l'instruction DIM(), pour son bon fonctionnement. En effet, c'est la dimension de ce tableau de données qui définira le nombre maximum de lignes qui pourront être inclusses dans l'éditeur de texte multiligne. Il faudra donc :

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

- affecter les valeurs aux éléments du tableau de données, si l'on souhaite afficher du texte dès l'affichage de boite ;

- appeler la procédure PROC_seteditboxarray() pour placer les éléments du tableau de données dans l'éditeur de texte.


Note : Si aucun tableau de données valide n'est associé à un éditeur de texte multiligne lors l'affichage de sa boite de dialogue, une erreur Bad use of array sera retournée.


Rappel : Les éditeurs de texte multiligne, créer avec le module editbox.bbc, devant être accueillis dans une boite de dialogue, il faut impérativement installer le module dlglib.bbc avant le module module editbox.bbc.



La procédure PROC_seteditboxarray() est importée depuis la module editbox.bbc. 




EXEMPLE.


REM --- Importation des modules ---

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

INSTALL @lib$ + "dlglib.bbc"

INSTALL @lib$ + "editbox.bbc"



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

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


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

DIM LST_Editeur$( 100 )

LST_Editeur$( 0 ) = "Vous pouvez entrer du texte a partir d'ici ..."

LST_Editeur$( 50 ) = "Vous etes maintenant a la ligne 50."

LST_Editeur$( 100 ) = "C'est ici que ce termine l'editeur de texte."


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

DLG_Test = FN_newdialog( "Test ..." , 170 , 150 )


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

PROC_button( DLG_Test , "Fermer." , 8 , 115 , 130 , 40 , 15 , 0 )

PROC_editbox( DLG_Test , "" , 101 , 5 , 5 , 160 , 120 , &300000 ) 

PROC_seteditboxarray( DLG_Test , 101 , LST_Editeur$() , 100 )


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 --- Consultation des 20 premieres lignes et de leur taille en caractères ---

FOR kligne = 0 TO 20 : PRINT LST_Editeur$( kligne ) , LEN(  LST_Editeur$( kligne ) ) : NEXT kligne


REM --- Fin du programme ---

PRINT : PRINT "Au revoir."

END


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