![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как отловить смену положения курсора в TEdit? [D7, Win95/98]
DimG © (2003-03-19 16:16:00)Подскажите как отловить смену положения курсора в TEdit не используя WM_KeyDown и т.п.?
Diamond Cat (2003-03-20 00:55:00) [1]надо перехватывать wm_command и в случае если hiword(wparam)=EN_CHANGE и lParam=edit№.handle, значит произошло изменение в едите, а для того чтоб получить изменение позиции каретки, надо через set/getwindowlong, устанавливать едиту новый обработчик и внем отлавливать сообщение EM_SCROLLCARET
Astrov Alseos (2003-03-19 17:35:00) [2]Эта функция возвращает положение курсора в TEdit (D6, Win98)
Function _GetPosition(Sender: TEdit):Integer;
var iX,iY: Integer;
begin
iX := 0; iY:=0;
iY := SendMessage(Sender.Handle, EM_LINEFROMCHAR, Sender.SelStart,0);
iX := Sender.SelStart - SendMessage(Sender.Handle, EM_LINEINDEX,iY, 0);
Result:=iX + 1
end;
...возможно, и в D7 она будет работать...