稍微改一下:
var
  foundAt : integer;
...
  foundAt := Pos('str',memo.Text);
  memo.selstart := foundAt;
如果要选中‘str’文本,则加上:
  memo.sellength := Length ('str');
完全没有问题。

解决方案 »

  1.   

    memo1.SetFocus;
    memo1.SelStart := pos('str',memo1.lines.strings[i])>
    memo1.SelLength := Length('str');
      

  2.   

    楼上兄弟,我试了,虽然滚动条是动了一下,但还是没有找到具体位置啊。
    var
      str:string;
      i  :integer;
      foundAt : integer;
    begin
      str:=Trim(Edit1.Text);
      FOR i:= 0 TO Memo1.Lines.Count-1 DO
      BEGIN
        foundAt := Pos('str',memo1.Text);
        memo1.selstart := foundAt;
        memo1.sellength := Length ('str');
        break;
        memo1.SetFocus;
      END;
      

  3.   

    当前为m列
    要到n列
    if m<n then
      for i:=0 to n-m do
        PostMessage(Memo1.Handle,WM_KEYDOWN,VK_RIGHT,0);
    else
      ...
      

  4.   

    var
      str:string;
    begin
      str:='asdfs';
      memo1.SelStart:=pos(str,memo1.Text)-1;////memo1.text就是代表整个文档
      memo1.SelLength:=length(str);
      memo1.SetFocus;
    end;