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

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

Событие движения мыши по окну, в том числе по контролам на ней


Aldor_ ©   (2005-02-01 21:42:00) 

Form.OnMouseMove по понятным причинам не вызывается если на форме есть другие контролы и мышь над ними.
В голову пришел только один способ осуществления сабжа: отлов WM_NCHITTEST.


procedure OnNCHitTest(var Msg: TMessage); message WM_NCHITTEST;

...

procedure TForm1.OnNCHitTest(var Msg: TMessage);
var
 Point: TPoint;
begin
 Point.X := Msg.lParam and $0000FFFF;
 Point.Y := Msg.lParam shr 16;
 Point := ScreenToClient(Point);
 //Do smth...
 Msg.Result := DefWindowProc(Handle, Msg.Msg, Msg.WParam, msg.LParam);
end;


 Корректно ли это? Можно ли сделать тоже самое только средствами  Delphi, не затрагивая WinAPI?


Aldor_   (2005-02-03 11:42:00) [1]

Up


Aldor_   (2005-02-02 21:51:00) [2]

Дык все-равно ведь API. Может есть сто-нить типа TForm.MousePreview: Boolean.


Чапаев   (2005-02-02 10:02:00) [3]

SetCapture()?


Aldor_   (2005-02-01 23:44:00) [4]

Сорри, не в тот форум. Перенесите, пожалуйста.


Наверх

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