<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><category>pcsoft.fr.windev</category><copyright>Copyright 2026, PC SOFT</copyright><lastBuildDate>27 Apr 2020 17:10:58 Z</lastBuildDate><pubDate>27 Apr 2020 17:10:58 Z</pubDate><description>Bonjour,&#13;
&#13;
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 :&#13;
&#13;
L'idée est d'ajouter en masse des puces sur les lignes sélectionnées complètement (ou non) dans un champ RTF.&#13;
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.&#13;
&#13;
Soit &#13;
- SAI_saisie un champ de saisie RTF&#13;
- BTN_puce le bouton permettant d'ajouter les puces avec le code suivant au clic :&#13;
[code:wl]&#13;
i, curseur, finCurseur est un entier&#13;
puce, retourChariot, contenu est une chaîne&#13;
ajoutPuce est un booléen&#13;
&#13;
puce = " · " // Puce modélisée par un point médian qui sera mis en gras&#13;
retourChariot = "¶" // Retour chariot modélisé par un pied de mouche pour éviter les calculs pourris sur les positions de RC&#13;
&#13;
// Récupération du contenu du champ RTF sans les balises&#13;
contenu = Remplace( RTFVersTexte( SAI_saisie ), RC, retourChariot )&#13;
&#13;
// On récupère la position des curseurs&#13;
curseur = SAI_saisie..Curseur&#13;
finCurseur = SAI_saisie..FinCurseur&#13;
&#13;
// On se positionne sur le 1er caractère de la ligne en fonction du curseur&#13;
TANTQUE curseur &gt; 1&#13;
	&#13;
	SI contenu[ curseur - 1 ] = retourChariot ALORS &#13;
		SORTIR&#13;
	FIN // SI contenu[ curseur - 1 ] = retourChariot ALORS &#13;
	curseur --&#13;
FIN // TANTQUE curseur &gt; 1&#13;
&#13;
ajoutPuce = Vrai&#13;
POUR i = curseur À finCurseur&#13;
	&#13;
	SI ajoutPuce = Faux ALORS&#13;
		SI contenu[ i ] = retourChariot ALORS &#13;
			ajoutPuce = Vrai&#13;
		FIN // SI contenu[ i ] = retourChariot ALORS &#13;
	SINON&#13;
		// Insertion de la puce&#13;
		RTFInsère( SAI_saisie, puce, i )&#13;
		// Sélection de la puce&#13;
		SAI_saisie..Curseur = i&#13;
		SAI_saisie..FinCurseur = i + Taille( puce )&#13;
		// Formatage de la puce&#13;
		RTFSélection( SAI_saisie, rtfGras, Vrai )&#13;
		RTFSélection( SAI_saisie, rtfSouligné, Faux )&#13;
		RTFSélection( SAI_saisie, rtfItalique, Faux )&#13;
		// On réajuste les variables en prenant en compte l'insertion&#13;
		contenu = Remplace( RTFVersTexte( SAI_saisie ), RC, retourChariot )&#13;
		curseur += Taille( puce )&#13;
		finCurseur += Taille( puce )&#13;
		ajoutPuce = Faux&#13;
	FIN	// SI ajoutPuce = Faux ALORS&#13;
	&#13;
FIN // POUR i = curseur a finCurseur&#13;
[/code]&#13;
&#13;
Résultat avec aperçu derrière d'un état :&#13;
&#13;
https://hostimage.windev.io/images/capture_65bebc87781453bfc87d74bcea6810b2.png&#13;
&#13;
Voili voulou</description><ttl>30</ttl><generator>WEBDEV</generator><language>fr_FR</language><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/239077-puce-sur-champ-rtf-utilisable-dans-etat-windev/read.awp</link><title>puce sur champ RTF utilisable dans un état windev</title><managingEditor>moderateur@pcsoft.fr (El moderador)</managingEditor><webMaster>webmaster@pcsoft.fr (El webmaster)</webMaster></channel></rss>
