![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правильно отслеживать перемещение курсора в Memo? [D7]
Wolfram © (2005-10-31 20:21:00)У меня есть ряд программ, использующих компонент TMemo. В строке состояния я показываю позицию курсора в редакторе. Естественно, мне нужно постоянно отслеживать перемещение курсора. Сделать это неудобно через события компонента, т.к. надо слишком много событий обрабатывать: нажатие любой клавиши, щелчки мыши, перемещение мыши, изменение текста (OnChange). Есть ли более простой способ следить за курсором в Memo?
Wolfram (2005-10-31 21:34:00) [1]Это совсем не то, что мне нужно. Я знаю как узнать позицию курсора (кстати, можно проще :) ), я не хочу делать миллион процедур для обработки событий. Короче, мне нужно знать, когда когда курсор изменил свою позицию.
Dmitrij_K (2005-10-31 21:14:00) [2]procedure CaretPos(H: THandle; var L,C : Word);
begin
L := SendMessage(H,EM_LINEFROMCHAR,-1,0);
C := LoWord(SendMessage(H,EM_GETSEL,0,0)) - SendMessage(H,EM_LINEINDEX,-1,0);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
LineNum,ColNum : Word;
begin
CaretPos(Memo1.Handle,LineNum,ColNum);
Edit1.Text := IntToStr(LineNum) + ' ' + IntToStr(ColNum);
end;
DRKBрешает