Позиция курсора в TRichEdit

Так как вопрос давольно часто поднимается в форумах, то хотелось бы привести ответ на него. Итак, как же получить текущие координаты курсора (Row и Col) в TRichEdit ?
Вот пример решения данной проблемы:

Procedure TForm1.GetPosition(Sender: TRichEdit);

var

 iX,iY : Integer;

 TheRichEdit : TRichEdit;

begin

 iX := 0; iY := 0;

 TheRichEdit := TRichEdit(Sender);

 iY := SendMessage(TheRichEdit.Handle, EM_LINEFROMCHAR, TheRichEdit.SelStart,

 0);

 iX := TheRichEdit.SelStart - SendMessage(TheRichEdit.Handle, EM_LINEINDEX,

 iY, 0);

 Panel1.Caption := IntToStr(iY + 1) + ':' + IntToStr(iX + 1) ;

end;

procedure TForm1.RichEditMouseDown(Sender: TObject;

 Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

 GetPosition(RichEdit);

end;

procedure TForm1.RichEditKeyUp(Sender: TObject; var Key: Word;

 Shift: TShiftState);

begin

 GetPosition(RichEdit);

end;

Взято из http://forum.sources.ru

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...