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

 Вот пример решения данной проблемы:

Code:

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;

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить