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 :
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;
Merci d'avance pour vos réponses