現在是比如我在RichEdit1中輸入下麵這段文字
1234
1234
12345
Eidt1中輸入3,按下button,可以達到搜索功能. 在Delphi7下編譯之後使用沒有問題.每一行都能選中3
可是在Delphi2010中按下button之後,第一行可以選中3,但是到了第二行就選中的是4,第三行選中的是5,以此類推.
請幫忙看看,代碼如下procedure TForm1.Button1Click(Sender: TObject);
Var
s,Source:AnsiString;
i,n,StartPos:Integer;
begin
s:= Edit1.Text;
i:= Length(s); If i > 0 Then
begin
with RichEdit1 do
begin
Source:= Text;
StartPos:=SelStart+SelLength;
delete(Source,1,StartPos); n:= pos(LowerCase(s),LowerCase(Source));
if n > 0 Then
Begin
SelStart:= StartPos+n-1;
SelLength:= i;
SetFocus;
SendMessage(self.RichEdit1.Handle,EM_SCROLLCARET,0,0);
End Else
Showmessage('Find has been finished,have no found <'+s+'>');
end;
end else
Begin
Showmessage('Must input search words !');
Edit1.SetFocus;
Edit1.Clear;
end;
End;
1234
1234
12345
Eidt1中輸入3,按下button,可以達到搜索功能. 在Delphi7下編譯之後使用沒有問題.每一行都能選中3
可是在Delphi2010中按下button之後,第一行可以選中3,但是到了第二行就選中的是4,第三行選中的是5,以此類推.
請幫忙看看,代碼如下procedure TForm1.Button1Click(Sender: TObject);
Var
s,Source:AnsiString;
i,n,StartPos:Integer;
begin
s:= Edit1.Text;
i:= Length(s); If i > 0 Then
begin
with RichEdit1 do
begin
Source:= Text;
StartPos:=SelStart+SelLength;
delete(Source,1,StartPos); n:= pos(LowerCase(s),LowerCase(Source));
if n > 0 Then
Begin
SelStart:= StartPos+n-1;
SelLength:= i;
SetFocus;
SendMessage(self.RichEdit1.Handle,EM_SCROLLCARET,0,0);
End Else
Showmessage('Find has been finished,have no found <'+s+'>');
end;
end else
Begin
Showmessage('Must input search words !');
Edit1.SetFocus;
Edit1.Clear;
end;
End;
解决方案 »
- 提示框的问题
- Delphi7转delphi2010遇到的字符问题
- delphi7中的rave5的memo打印和预览都是乱码,怎么办啊?
- 在树控件中选中节点一次后,再次点击鼠标如何判断是点在节点上还是树的空白区域上????
- 在Delphi里怎么调用Oracle的存储过程?
- 不能出发OnPaint事件
- 刚学delphi,一个菜鸟问题
- 散分!~~~~~~这么简单的问题问了m遍 竟无人解决 郁闷!!~~散分
- 求教:F1book6.0中提供了打印预览函数printpriviewex(),不知如何使用。
- 我用Twebbrowser做的多页浏览器太耗资源了!!!
- 如何获取CPU的温度和使用率
- 关于ADO与虚拟机的关系
但是我用pos去讀,讀出來的#13還是算2個啊