Так как вопрос давольно часто поднимается в форумах, то хотелось бы привести ответ на него. Итак, как же получить текущие координаты курсора (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; |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!