自带的TMemo在这方面很弱,建议换一个第三方控件

解决方案 »

  1.   


    var
      I: Integer;
    begin
      I := 6; //为行数
      Memo1.SelStart := SendMessage(Memo1.Handle, EM_LINEINDEX, I, 0);
      Memo1.SelLength := Length(Memo1.Lines[I]);
      Memo1.SetFocus;
    end;
      

  2.   

    如果是指定行定位,楼上的就很好,只是定位第六行,i值应该是5,因为memo的lines是从0开始的如果是指定字符串定位,可以使用下面的方法试试
    var
      s:string;
      i:Integer;
    begin
      s:=self.Memo1.Lines.Text;
      i:=Pos('12367687681',s);
      Self.Memo1.SelStart:=i-1;
      self.Memo1.SelLength:=Length('12367687681');
      self.Memo1.SetFocus;
    end;
      

  3.   


    呵呵, 定位第六行是写错了, 最近用C++的String类型用多了,被他搞乱了,C++的string 类型下标从1开始,不过这种错误,一调试就知道哪里错了,