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

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

Drag&Drop с помощью TWMNChitTest [D6, WinXP]


DeepProg ©   (2005-05-28 14:31:00) 

Данная конструкция
procedure tfmNIMMain.WMNCHitTest(var M: TWMNCHitTest);
begin
inherited;
if M.Result = htClient then M.Result := htCaption
end;

не приводит к желаемому результату. Т.е. 0 эмоций со стороны приложения. Breakpoints + WinSight32 показали, что WM_CHITTEST вышеприведенным кодом обрабатывается, только форма не пытается никуда сдвинуться.
Эта оработка вообще работает (а может она "осезависима") или придется обрабатывать события работы с мышью?


Marser   (2005-05-28 16:47:00) [1]


>  меня не прокатило

Это зависит от того, куда ты её вставил. нужно было в оконную функцию.


DeepProg   (2005-05-28 16:39:00) [2]

Я дольше ныл. С мышью все просто и аккуратно.

> sendmessage(self.handle, msg, wparam, lparam)
У меня не прокатило (WinSight не регистрировал никаких сообщений, но и ошибок не вылезало...).
И в любом случае придется обрабатывать
WM_SETCURSOR, WM_MOUSEMOVE, WM_NCHITTEST, WM_MOVING.
Т.е. на 1 процедуру больше, чем методом OnMouseDown, OnMouseMove, OnMouseUp ;)


Marser   (2005-05-28 16:13:00) [3]


> rOOse ©   (28.05.05 16:03) [5] [Новое
>сообщение][Ответить]
>
>> 4] TUser ©   (28.05.05 15:58)
>
> Вот тут поподробнее плз.

В обработчик панели:
sendmessage(self.handle, msg, wparam, lparam)
или
Panel1.perform(self.handle, msg, wparam, lparam)


rOOse   (2005-05-28 16:03:00) [4]


> 4] TUser ©   (28.05.05 15:58)

Вот тут поподробнее плз.


TUser   (2005-05-28 15:58:00) [5]

Просто пересылай форме те сообщения, которые придут к панели


DeepProg   (2005-05-28 15:28:00) [6]

Поймал баг - у меня Panel на всю форму растянута - она и мешает.
Все-таки придется возиться с мышью...


DeepProg   (2005-05-28 14:53:00) [7]

Нет, там написано WM_NcHit Test :)
Type
TForm1 = class(TFrom)
...
 private
   { Private declarations }
   procedure WMNCHitTest(var M : TWMNCHitTest); message
WM_NCHITTEST;
...


TUser   (2005-05-28 14:47:00) [8]

??
А в описании класса написано message WM_NcHitHest ?


Наверх

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