在先等待--100分 求一个问题(怎么知道光标现在在RichEdit1的第几行)

解决方案 »

  1.   

    var
     CurrentLine : Integer;  //Editor: Memo or RichEdit
    begin
     CurrentLine := Editor.Perform(em_LineFromChar, $FFFF, 0);  
     Application.MessageBox(PChar('当前行号是'+IntToStr(CurrentLine)), '消息', mb_ iconinformation);   
    end;
      

  2.   

    procedure GetEditColRow( CustEdit: TRichEdit; var Col, Row: Integer );
    begin
       Row := SendMessage(CustEdit.Handle, EM_LINEFROMCHAR, CustEdit.SelStart, 0);
       Col := CustEdit.SelStart - SendMessage(CustEdit.Handle, EM_LINEINDEX, -1, 0);
    end;
      

  3.   

    用RichEdit1.CaretPos.Y就可以取到了,是从0开始的