⇨ MENU ⇨ BIBLIOTHEQUE ⇨ editbox.bbc
PROC_seteditboxselect()
⇨ MENU ⇨ BIBLIOTHEQUE ⇨ editbox.bbc
PROC_seteditboxselect()
DESCRIPTION.
La procédure PROC_seteditboxselect() permet de modifier la position du curseur textuel et/ou de définir une sélection d'une partie du contenu d'un éditeur de texte multiligne.
SYNTAXE.
PROC_seteditboxselect( boite , editeur , colonne , ligne , fin_colonne , fin_ligne )
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.
colonne doit être un nombre entier indiquant le début de la sélection, ou la nouvelle position horizontale du curseur textuel, par rapport au bord gauche de l'éditeur de texte multiligne.
ligne doit être un nombre entier indiquant le début de la sélection, ou la nouvelle position verticale du curseur textuel, par rapport au bord haut de l'éditeur de texte multiligne.
fin_colonne doit être un nombre entier, indiquant la fin de la sélection, par rapport au bord gauche de l'éditeur de texte multiligne.
fin_ligne doit être un nombre entier indiquant la fin de la sélection, par rapport au bord haut de l'éditeur de texte multiligne.
Pour qu'une sélection soit effective dans editeur, il faut que fin_colonne soit différent de colonne et que fin_ligne soit différent de ligne. Sinon, la procédure PROC_seteditboxselect() ne fera que placer le curseur textuel à la position colonne x ligne. Quand une sélection est effective, les caractères compris entre la position ligne x colonne et la position fin_colonne x fin_ligne sont mis en surbrillance.
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.
Voir la fonction PROC_geteditboxselect() qui retourne les positions de début et de fin d'une sélection.
La procédure PROC_seteditboxselect() 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$( 10 )
LST_Editeur$( 0 ) = "Vous pouvez entrer du texte a partir d'ici ..."
FOR kindex = 1 TO 9 : LST_Editeur$( kindex ) = "Ligne : " + STR$( kindex ) : NEXT kindex
LST_Editeur$( 10 ) = "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_button( DLG_Test , "Selection !" , FN_setproc( PROC_Action() ) , 5 , 130 , 60 , 15 , 0 )
PROC_editbox( DLG_Test , "" , 101 , 5 , 5 , 160 , 120 , &300000 )
PROC_seteditboxarray( DLG_Test , 101 , LST_Editeur$() , 10 )
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 ) :
kdebut_x = RND( 20 ) : kdebut_y = RND( 10 ) : kfin_x = RND( 20 ) : kfin_y = RND( 10 )
kselection$ = "demande de (" + STR$( kdebut_x ) + " , " + STR$( kdebut_y ) + ") a (" + STR$( kfin_y ) + " , " + STR$( kfin_y ) + ") "
LST_Editeur$( 1 ) = kselection$
PROC_seteditboxselect( Qboite , 101 , kdebut_x , kdebut_y , kfin_x , kfin_y )
PROC_geteditboxselect( Qboite , 101 , kcolonne , klligne , kfin_c , kfin_l )
kselection$ = "Selection de (" + STR$( kcolonne ) + " , " + STR$( klligne ) + ") a (" + STR$( kfin_c ) + " , " + STR$( kfin_l ) + ") "
LST_Editeur$( 9 ) = kselection$
PROC_refreshdialog( Qboite )
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.