Как получить позицию курсора в компоненте 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);

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

  • His 1st gay sex martin lebeau Vintage tide detergent logo Cum on her face adana Free sample troat fucking porn Ghost in a tiny bikini clips Safe online teen dating Motels gay provincetown ma Sora aoi with student Nude yoga in texas Sexy women and guns Mi hermana me polla tocandose me lo folla Pics...
  • viagra 20 mg cost you cannot post new topics in this forum [url=http://viagrawithoutdoctorpresc.net]viagra without a doctor prescription [/url] compare viagra levitra viagra viagra without doctor prescription - viagra lavitra differences viagra 20mg dosage users browsing this forum
  • как называется рыжая панда >>>>> https://youtu.be/sUHmEL93qhQ

Счетчики