Gambas France BETA


Pas de compte ? Incription

changer la couleur d'un texte déterminé dans une textedit...

1
AuteurMessages
spheris#1 Posté le 26/3/2012 à 14:55:17
GB2 :
bonjour,
Dans une text edit j'ai le mot "toto" qui revient souvent et je souhaite en cliquant sur un bouton changer la couleur de ce mot en rouge, pour toutes les occurences de ma textedit. comment puis-je m'y prendre ?
Merci de vos réponses
Prokopy#2 Posté le 26/3/2012 à 17:13:56
Kinder PinguiSalut spheris,
je te conseille d'utiliser un Editor si possible et d'utiliser la coloration syntaxique.

http://www.gambasforge.org/sujet-429-tuto-l-objet-editor-et-la-coloration-syntaxique-page-1.html#m1

;)
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
spheris#3 Posté le 26/3/2012 à 20:39:04
Prokopy,
A vrai dire j'ai quasiment fini mon application et il ne me manque que cette petite commande pour finaliser.
Alors tout refaire.....bof.
vous n'avez pas une petite idée ?
Merci quand même.
;)
gambix#4 Posté le 29/3/2012 à 15:59:59
Faire simple !http://gambasdoc.org/help/comp/gb.qt4.ext/textedit/format?fr&v3


tu dois faire un passage selection/formatage ou alors directement modifier la forme html en enclavant le mot dans des <font color="red"></font>

pour cela il y a la fonction de prokopy qui est pas mal pour la recerche remplacement de regexp.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
PUBLIC FUNCTION RegexpReplace(texte AS STRING, pattern AS STRING, replacement AS STRING, OPTIONAL Ungreedy AS BOOLEAN = TRUE) AS STRING

DIM resultat AS STRING
DIM tmptexte AS STRING = texte
DIM tmpReplace AS STRING = replacement
DIM i AS INTEGER = 0
DIM regex AS Regexp

IF tmptexte = "" THEN RETURN
regex = NEW Regexp(tmptexte, pattern, If(Ungreedy, Regexp.Ungreedy, 0) + Regexp.DotAll)

WHILE regex.Offset <> -1 AND tmptexte <> ""
tmpReplace = replacement
FOR i = 0 TO regex.SubMatches.Count
tmpReplace = Replace(tmpReplace, "&" & (i), regex.SubMatches[i].Text)
NEXT
resultat &= Left(tmptexte, regex.Offset) & tmpReplace
tmptexte = Right(tmptexte, -1 * (regex.Offset + Len(regex.Text)))
IF tmptexte THEN regex.Exec(tmptexte)
WEND

resultat &= tmptexte

RETURN resultat

END
Moins de texte dans une signature c'est agrandir son espace.
spheris#5 Posté le 30/3/2012 à 23:21:05
GB2 gambix ;)
Merci quand même !

;)
1