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

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

  • 경마일정≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마예상 경마일정≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마예상 경마일정≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마예상 경마일정≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마예상 경마일정≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마예상 경마일정≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마예상 경마일정≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마예상 경마일정...
  • 경마사이트≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마정보 경마사이트≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마정보 경마사이트≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마정보 경마사이트≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마정보 경마사이트≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마정보 경마사이트≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마정보 경마사이트≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999...
  • 경마공원≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마배팅 경마공원≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마배팅 경마공원≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마배팅 경마공원≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마배팅 경마공원≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마배팅 경마공원≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마배팅 경마공원≫§≪≫Ksports77. Com≪≫§≪카톡:pro9999 경마배팅 경마공원...

Счетчики