我想用memo,richedit或者其他控件实现如下功能:1。得到光标所在的行。
2。单击选定此行。
3。选定行上移,下移,删除等。请问如何实现?十分感谢。

解决方案 »

  1.   

    richedit.selstart
    richedit.sellength
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
        lpos,cpos:integer;
    begin
        lpos := sendmessage(richedit1.Handle,EM_LINEFROMCHAR,RichEdit1.SelStart,0);
        cpos := sendmessage(RichEdit1.Handle,EM_LINEINDEX,lpos,0);    showmessage(inttostr(lpos)+','+inttostr(cpos));
    end;
      

  3.   

    修改了一下
    procedure TForm1.RichEdit1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);var
      lpos,cpos: integer;
    begin
        if ssleft in shift then
        begin
            lpos := sendmessage(richedit1.Handle,EM_LINEFROMCHAR,RichEdit1.SelStart,0);
            cpos := sendmessage(RichEdit1.Handle,EM_LINEINDEX,lpos,0);        showmessage(inttostr(lpos)+','+inttostr(cpos));
            showmessage(richedit1.Lines[lpos]);
        end;
    end;