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_editbox()

DESCRIPTION.


La procédure PROC_editbox() crée un éditeur de texte multilignes, et le place dans sa boite de dialogue.




SYNTAXE.


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




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.


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() du module dlglib.bbc; en particulier si le programme doit utiliser identifiant pour connaitre le contenu du champs de saisie. Voir la procédure  PROC_button() du module dlglib.bbc 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 du champs de saisie 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 du champs de saisie 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 du champs de saisie.


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


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

- 0, valeur par défaut, pour afficher un éditeur de texte multiligne standard ;

- 2048 (&800), pour interdire les modification du contenu par l'utilisateur (lecture seule) ;

- 1048576 (&100000), pour associer une barre de défilement horizontale à l'éditeur de texte ;

- 2097152 (&200000),  pour associer une barre de défilement verticale à l'éditeur de texte ;

- 8388608 (&800000), pour cacher la bordure du cadre de l'éditeur de texte ;

- 134217728 (&8000000), pour afficher l'éditeur de texte en grisé, désactivé ;

- 268435456 (&10000000), pour cacher l'éditeur de texte.

          

Il est possible de combiner plusieurs styles visuels en additionnant les valeurs des styles respectifs. Par exemple : 3147776 (&300800), combine les valeurs &800,  &100000 et &8000000, ce qui affichera un éditeur de texte multiligne avec des barres de défilements horizontale et verticale et en lecture seules.



La procédure PROC_editbox() va permettre de saisir, afficher et/ou parfois modifier un texte sur plusieurs lignes pour transmettre un commentaire, une description, des instructions ou un message long.


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.


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


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


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_editbox() 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