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

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

Перетаскиваемый компонент [D5, D6, Win95/98, Win2k]


avr555 ©   (2001-12-17 19:54:00) 

У меня такой вопрос:
Я хочу сделать компонент, который можно было бы "таскать" по форме.
В качестве такого компонента решил использовать VirtualTreeView
Для перетаскивания использую три события: OnMouseDown, OnMouseMove, OnMouseUp.

Когда я в качестве перетаскиваемого компонента использовал CheckListBox, то для того, чтобы компонент не срывался, вызывал функцию SetCapture(self.Handle) и все работало.
А при переходе на VirtualTreeView после вызова SetCapture(self.Handle) компонент перестает передвигаться. Если не вызывать SetCapture(self.Handle), то все работает, только компонент при перетаскивании "срывается" с указателя.

Что делать?


DK   (2001-12-19 02:16:00) [1]

Попробуй в обработчик OnMouseDown вставить:
var
Control: TControl;
begin
try
Control := Sender as TControl;
ReleaseCapture;
Control.Perform(WM_SYSCOMMAND, $F012, 0);
finally
end;

end;


Наверх

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