Ich benutze
NextPos um Wörter zu finden:
Delphi-Quellcode:
function MarkWords(RichEdit: TRichEdit; Words: TStrings; FontStyle: TFontStyle;
Color: TColor): Cardinal;
var
i: Integer;
LastWordPos: Integer;
begin
LastWordPos := 0;
for i := 0 to Words.Count - 1 do
begin
while LastWordPos < 500 do
begin
LastWordPos := FindWord(LastWordPos, RichEdit.Text, Words[i]);
RichEdit.SelStart := LastWordPos;
RichEdit.SelLength := length(Words[i]);
RichEdit.SelAttributes.Color := Color;
RichEdit.SelAttributes.Style := [FontStyle];
LastWordPos := LastWordPos + 1;
end;
LastWordPos := 0;
end;
RichEdit.SelStart := 0;
result := 0;
end;
FindWord behinhaltet nur einen Aufruf von NextPos. Bei einem Text mit ca. 1000 Wörtern (ca. 7500 Zeichen geschätzt) bekomme ich aber einen Integer OverFlow, obwohl er mir alle Wörter im Text richtig markiert. Woran liegt das und was kann ich dagegen tun?