我用richedit.text,我想再有特定文本下变色,但是定位有问题,请大家帮我看看 调用语句 postlist:=getposts(trim(edit1.Text),richedit.Text); for i:=0 to postlist.Count-1 do begin richedit.SelStart := strtoint( postlist[i])-1; richedit.SelLength := length((trim(edit1.Text))); richedit.SelAttributes.Color := clRed; end;
function getposts(sub:string; s:string):tstringlist; var list:tstringlist; //存储位置 len:integer; midstring:string; position: integer; subNumber:integer;//;记录被减去的长度 sublong:integer; i:integer; begin list:=tstringlist.Create; //思想为找到子字串定位,减去找到位置以前的,在剩下的串中继续,直到完 subNumber:=0; //被减去的长度初始 midstring:=s; len:=length(sub); while pos(sub,midstring) <>0 do begin position:=pos(sub,midstring); list.Add(inttostr(position+subNumber)); subNumber:=position+len-1;//减去长度 sublong:=length(midstring)-subNumber; //减去后的长度 midstring:= copy(midstring,subNumber+1,sublong) end; result:=list; end; 大家帮帮忙,在richedit.text中因为有格式,所以会出现'#$D#$A',是不是这个引起的原因