5条回答 默认 最新
- 堕落恶魔_Delphi 2018-01-05 08:15关注
新代码, 通过空格分割要高亮的内容, 你把你图片里的顿号改成空格就行了
procedure TForm1.Button1Click(Sender: TObject); procedure _HighLightText(AStr: string); var nPos, nStrLength, nAllLength: Integer; begin nPos := 0; nAllLength := RichEdit2.GetTextLen; nStrLength := Length(AStr); nPos := RichEdit2.FindText(AStr, nPos, nAllLength, [stMatchCase]); //如果大小写不敏感就用[] while nPos > -1 do //如果只想高亮第一个就不用循环 begin RichEdit2.SelStart := nPos; RichEdit2.SelLength := nStrLength; RichEdit2.SelAttributes.Color := clRed; nPos := nPos + nStrLength; nPos := RichEdit2.FindText(AStr, nPos, nAllLength, [stMatchCase]); end; end; var nStr: string; i: Integer; begin RichEdit2.SelectAll; RichEdit2.SelAttributes := RichEdit2.DefAttributes; with TStringList.Create do try StrictDelimiter := True; Delimiter := ' '; //这里规定要高亮的内容用空格分隔 DelimitedText := RichEdit1.Text; for i := 0 to Count - 1 do begin nStr := Strings[i].Trim; if nStr <> '' then _HighLightText(nStr); end; finally Free; end; end;
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报