Как получить позицию курсора в компоненте TMemo?

В компоненте TMemo предусмотрено получение позиции курсора через механизм сообщений. Для получения позиции необходимо послать два сообщения. Первое -

LineNum := Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0);

для получения номера строки в которой находится курсор. И второе -

CharNum := Memo1.Perform(EM_LINEINDEX, LineNum, 0);

для получения позиции курсора в заданной строке. Будте внимательны, так как номер строки и позиция в строке отсчитываются от нуля.

Пример:

{Получаем позицию курсора при щелчке мыши на компоненте}
procedure TForm1.Memo1Click(Sender: TObject); 
VAR 
 
 LineNum : LongInt; 
 CharNum : LongInt; 
 
begin 
 
 {Получаем номер строки}
 LineNum := Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0); 
 {Получаем позицию в строке}
 CharNum := Memo1.Perform(EM_LINEINDEX, LineNum, 0); 
 {Выводим позицию на экран}
 Label1.Caption := IntToStr(LineNum+1)+' : '+
 
 IntToStr((Memo1.SelStart-CharNum)+1); 
 
end;
 
............ 
 
{Получаем позицию курсора при отпускании клавиши на клавиатуре}
procedure TForm1.Memo1KeyUp(Sender: TObject; 
                             var Key: Word; Shift: TShiftState); 
begin 
 
 Memo1Click(Self); 
 
end;

Отправил Гость Пнд, 04/27/2015 - 22:44

почему то первая цифра в Label1 всегда = 1
а вторая меняется от 1(когда курсор в самом верху в 1 позиции) до ...пока memo не закончится

Отправил Гость Пнд, 04/27/2015 - 22:50

не проще ли так
Label1.Caption := IntToStr(Memo1.CaretPos.y)+' : '+
IntToStr(Memo1.CaretPos.x);

Последние комментарии

  • Новое интернет казино Адмирал презентует игровые автоматы, в которые http://formlessro.com/forum/index.php?topic=175497.new Игровые автоматы видео онлайн бесплатно. Здесь вы найдете все про онлайн казино Вулка: как играть на http://www.a-riviera.ru/viewtopic.php?f=26&t=6216 Мелодрамы 2015 2016...
  • 90m lesbian pantyhose pb Classic Interracial Sarah Young Takes a Big Black Cock. Hot Asian With Perky Nipples Masturabting. Sexy Blonde, Anal Big Black Cock Breaking My Ass And Taking A Shower. Porn photos of blondes Attractive russian and canadian singles Huge Cum After Days. She saw some teen...
  • [b]Продам iphone 8 (идеальная реплика) в отличном состоянии. [/b] Телефон новый, технических нареканий нет, работает хорошо. [img]http://www.picshare.ru/uploads/180624/E9V10k2k3t.jpg[/img] [b]Полный коплект: коробка, наушники, зарядка.[/b] Продаю срочно, поэтому отдам с большой скидкой. [b]Всего...

Счетчики