Gambas France BETA

Connexion

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
La simplicité évite les erreurshttp://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
Ce que Gambas m'a appris c'est qu'avec le temps on peut être capable de tout.
spheris#5 Posté le 30/3/2012 à 23:21:05
GB2 gambix ;)
Merci quand même !

;)
1