是一个line中。
因为在同一行或不同行,需要不同处理。

解决方案 »

  1.   

    得到两点光标的行列值:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      a:tpoint;
    begin
      a:=Memo1.CaretPos ;
      edit1.Text :=inttostr(a.x );
      edit2.Text :=inttostr(a.y );
    end;
    if (行.1=行.2) and (列.1<>列.2) then//判断同一行,不同列!
      

  2.   

    但这样只能判断显示出来的光标的行,却不是实际上的line啊!
    是否为Richedit.lines中的同一行,怎么判断?
      

  3.   

    line := sendmessage(richedit1.handle,em_linefromchar,richedit1.selstart,0);
    column := sendmessage(richedit1.handle,em_lineindex,line,0);
    linelength := sendmessage(richedit1.handle,em_linelength,column,0);