Bonjour,
J'essaye de mettre en place une coloration syntaxique façon Delphi et dans le cadre de ce programme, j'utilise un TRichEdit dans lequel contiendra le code coloré. A partir d'une liste de mot clef, j'essaye de les retrouver dans mon texte. Au début, j'utilisais Pos pour ça mais j'ai découvert qu'il existait une méthode FindText du TRichEdit qui permet de faire pareil mais en plus en vérifiant si le mot est entier ou non (ce que je n'arrivais pas à gérer avec le Pos).
Seulement, ça ne fonctionne pas comme je veux. Quand je teste avec juste un seul mot clef et rien autour dans mon TRichEdit, il arrive à me trouver la position que si mon mot est en position 0 sinon rien ne fonctionne.
La procédure qui fait ça :
Merci d'avance pour vos réponses
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 procedure allPos(subString : String; RE_Text : TRichEdit; SL_Position : TStringList); var i, iPos : Integer; begin iPos := 0; i := 0; while (Length(RE_Text.Text) > 0) and (iPos <> -1) do begin iPos := RE_Text.FindText(subString, iPos, Length(subString), [stWholeWord]); i := iPos + i; if iPos <> -1 then begin SL_Position.Add(IntToStr(i)); RE_Text.Text := Copy(RE_Text.Text, iPos + Length(subString) + 1, Length(RE_Text.Text)); i := i + Length(subString); end; end; end;![]()
Partager