|
| puce sur champ RTF utilisable dans un état windev |
| Iniciado por Julien V, 27,abr. 2020 17:10 - No hay respuesta |
| |
| | | |
|
| |
Miembro registrado 134 mensajes |
|
| Publicado el 27,abril 2020 - 17:10 |
Bonjour,
J'ai pas mal galéré pour permettre l'ajout d'une puce dans un champ de saisie RTF qui puisse être repris dans un champ RTF d'un état Windev, du coup je partage ma solution :
L'idée est d'ajouter en masse des puces sur les lignes sélectionnées complètement (ou non) dans un champ RTF. A priori, le caractère puce U+2022 n'est pas reconnu dans les états Windev, je me suis rabattu sur le point médian U+00B7 que je mets en gras.
Soit - SAI_saisie un champ de saisie RTF - BTN_puce le bouton permettant d'ajouter les puces avec le code suivant au clic :
i, curseur, finCurseur est un entier puce, retourChariot, contenu est une chaîne ajoutPuce est un booléen
puce = " · " // Puce modélisée par un point médian qui sera mis en gras retourChariot = "¶" // Retour chariot modélisé par un pied de mouche pour éviter les calculs pourris sur les positions de RC
// Récupération du contenu du champ RTF sans les balises contenu = Remplace( RTFVersTexte( SAI_saisie ), RC, retourChariot )
// On récupère la position des curseurs curseur = SAI_saisie..Curseur finCurseur = SAI_saisie..FinCurseur
// On se positionne sur le 1er caractère de la ligne en fonction du curseur TANTQUE curseur > 1 SI contenu[ curseur - 1 ] = retourChariot ALORS SORTIR FIN // SI contenu[ curseur - 1 ] = retourChariot ALORS curseur -- FIN // TANTQUE curseur > 1
ajoutPuce = Vrai POUR i = curseur À finCurseur SI ajoutPuce = Faux ALORS SI contenu[ i ] = retourChariot ALORS ajoutPuce = Vrai FIN // SI contenu[ i ] = retourChariot ALORS SINON // Insertion de la puce RTFInsère( SAI_saisie, puce, i ) // Sélection de la puce SAI_saisie..Curseur = i SAI_saisie..FinCurseur = i + Taille( puce ) // Formatage de la puce RTFSélection( SAI_saisie, rtfGras, Vrai ) RTFSélection( SAI_saisie, rtfSouligné, Faux ) RTFSélection( SAI_saisie, rtfItalique, Faux ) // On réajuste les variables en prenant en compte l'insertion contenu = Remplace( RTFVersTexte( SAI_saisie ), RC, retourChariot ) curseur += Taille( puce ) finCurseur += Taille( puce ) ajoutPuce = Faux FIN // SI ajoutPuce = Faux ALORS FIN // POUR i = curseur a finCurseur
Résultat avec aperçu derrière d'un état :

Voili voulou |
| |
| |
| | | |
|
| | | | |
| | |
|