Hej allesammen,
Sidder og er igang med at fikse noget highlight til et program, og er stødt ind i et problem.
Når jeg bruger denne kode:
Var
I: Integer;
S: string;
o: integer;
m: integer;
lnLength: Integer;
lnStart: Integer;
Length: integer;
n: integer;
Begin
For n:= 0 -1 To Line do
Begin
s:= TChannel(MainForm.MDIChildren[MDIChild]).Richedit.Text;
Lnstart:= MainForm.GetLength(S);
End;
length:= MainForm.GetLength(s);
lnstart:= lnstart +1;
lnLength:= MainForm.GetLength(TChannel(MainForm.MDIChildren[MDIChild]).RichEdit.Lines.ValueFromIndex[line]);
For I:= 0 to MainForm.highlight.Count -1 Do
Begin
Repeat
O:= Pos(LowerCase(MainForm.highlight.ValueFromIndex[I]), Lowercase(TChannel(MainForm.MDIChildren[MDICHild]).RichEdit.Lines.ValueFromIndex[Line]));
M:= MainForm.GetLength(MainForm.highlight.ValueFromIndex[i]);
Try
TChannel(MainForm.MDIChildren[MDIChild]).RichEdit.SelStart:= O;
TChannel(MainForm.MDIChildren[MDIChild]).RichEdit.SelLength:= M;
TChannel(MainForm.MDIChildren[MDIchild]).Richedit.SelAttributes.Color:= MainForm.HighlightText;
Finally
TChannel(MainForm.MDIChildren[MDIChild]).RichEdit.SelStart:= lnStart;
TChannel(MainForm.MDIChildren[MDIChild]).Richedit.Sellength:= lnLength
End;
until pos(MainForm.highlight.ValueFromIndex[I], TChannel(MainForm.MDIChildren[MDIchild]).RichEdit.Lines.ValueFromIndex[Line]) = 0;
End;
TChannel(MainForm.MDIChildren[MDIChild]).RichEdit.SelStart:= lnLength;
TChannel(MainForm.MDIChildren[MDIChild]).RichEdit.SelLength:= 0;
End;
Stopper koden når den har fundet det første ord den genkender.
Jeg har prøvet at bytte om på rækkefølgen af ord osv, men stadig uden resultat.
Den tstringlist den henter de ord der skal genkedes har 3 entries, som den henter gennem en .ini fil.
Hvis jeg bytter om på rækkefølgen af dem i inifilen, finder den bare det første ord, og stopper igen.
Med venlig hilsen
Ken Christensen