Drag`n`Drop - I NEED HELP!!!

eNose
Дата: 06.03.2003 14:46:56
Как отловить событие OnClose у "плавающего окна" ?
pkarklin
Дата: 06.03.2003 14:53:26
Мож я не понял вопроса, насчет "плавающего окна", но разве оно не от TForm.
eNose
Дата: 06.03.2003 14:59:06
Подробно:

Создаем форму, помещаем на нее ToolBar.
На ToolBar помещаем Panel.

ToolBar.DockSite := True;
Panel.DragKind := dkDock;
Panel.DragMode := dmAutomatic;

Запускаем приложение. Утаскиваем эту панель с тулбара.

Как у получившегося окна отловить OnClose?
pkarklin
Дата: 06.03.2003 15:20:02
Попробовал, у самого тот же вопрос возник...
m_kus
Дата: 06.03.2003 15:56:07
Насколько я понимаю, когда у TPanel.FloatingDockSiteClass=nil - создаётся окно класса TCustomFloatingForm который не имеет события OnClose.
Соответственно, надо написать свой собственный класс окна, порождённый от TCustomFloatingForm, где такое событие определить...
eNose
Дата: 07.03.2003 08:43:07
У TCustomDockForm предок - TCustomForm. OnClose есть.
Создаем свой класс от TCustomForm, определяем OnClose, делаем Create и присваиваем Panel.HostDockSite := MyDockForm.

И НЕ РАБОТАЕТ!
KirillovA
Дата: 07.03.2003 10:58:22
А делфя то какая? (версия)
eNose
Дата: 07.03.2003 11:22:46
7-я (EE)
KirillovA
Дата: 07.03.2003 12:05:06
хм... попробовал - тоже ничего не получилось...
я бы сделал нитку (TThread) с TThread.Priority = tpIdle.
и в нитке
if not Panel.Visible then ....
Shaitan
Дата: 10.03.2003 19:17:10
Создаем новый класс окна типа TMyDockForm от TCustomDockForm определяем OnClose.
При создании главного окна у панели устанавливаем свойство FloatingDockSiteClass в TMyDockForm.
В событии OnEndDock для панели определяем OnClose для TMyDockForm.

В Delphi 5 это работает.