Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как отловить смену положения курсора в 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 она будет работать...


Наверх

Титульная страница Поиск, карта сайта Написать письмо