Карта сайтаСсылкиКонтакты

Как узнать положение курсора в TMemo и TRichEdit

PDF Печать
Статьи

Компоненты TMemo и TRichEdit не располагают никаким свойством или методом, которые облегчали бы указание положения курсора в этих компонентах. Это можно сделать посредством функции SendMessage. Для выполнения следующего кода поместите TRichEdit, TButton и три TLabel. При выполнении этого кода и при нажатии кнопки, в TLabel будут отображаться номер строки, длина строки и положение курсора.


procedure TForm1.Button1Click(Sender: TObject);
var
  LPos,CPos,LineLenght: integer;
begin
  Lpos:= SendMessage(RichEdit1.Handle,
    EM_LINEFROMCHAR, RichEdit1.Selstart, 0);
  CPos:= SendMessage(RichEdit1.handle,
    EM_LINEINDEX, lpOS, 0);
  LineLenght:= SendMessage(RichEdit1.HANDLE,
    EM_LINELENGTH, CPos, 0);
  CPos:= RichEdit1.Selstart-CPos;

  Label1.Caption:= IntToStr(Lpos);
  Label2.Caption:= IntToStr(LineLenght);
  Label3.Caption:= IntToStr(Cpos);
end;

Данный пример показан для компонента TRichEdit. В случае с TMemo нужно заменить соответственно RichEdit на Memo.


 

Комментарии   

 
0 #1 Виктор 16.06.2016 16:29
Спасибо, очень выручили!
Цитировать
 

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


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