Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Drag`n`Drop - I NEED HELP!!! / 11 сообщений из 11, страница 1 из 1
06.03.2003, 14:46
    #32115625
eNose
Участник
[не активирован]
[не одобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag`n`Drop - I NEED HELP!!!
Как отловить событие OnClose у "плавающего окна" ?
...
Рейтинг: 0 / 0
06.03.2003, 14:53
    #32115633
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag`n`Drop - I NEED HELP!!!
Мож я не понял вопроса, насчет "плавающего окна", но разве оно не от TForm.
...
Рейтинг: 0 / 0
06.03.2003, 14:59
    #32115640
eNose
Участник
[не активирован]
[не одобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag`n`Drop - I NEED HELP!!!
Подробно:

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

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

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

Как у получившегося окна отловить OnClose?
...
Рейтинг: 0 / 0
06.03.2003, 15:20
    #32115683
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag`n`Drop - I NEED HELP!!!
Попробовал, у самого тот же вопрос возник...
...
Рейтинг: 0 / 0
06.03.2003, 15:56
    #32115738
m_kus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag`n`Drop - I NEED HELP!!!
Насколько я понимаю, когда у TPanel.FloatingDockSiteClass=nil - создаётся окно класса TCustomFloatingForm который не имеет события OnClose.
Соответственно, надо написать свой собственный класс окна, порождённый от TCustomFloatingForm, где такое событие определить...
...
Рейтинг: 0 / 0
07.03.2003, 08:43
    #32116184
eNose
Участник
[не активирован]
[не одобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag`n`Drop - I NEED HELP!!!
У TCustomDockForm предок - TCustomForm. OnClose есть.
Создаем свой класс от TCustomForm, определяем OnClose, делаем Create и присваиваем Panel.HostDockSite := MyDockForm.

И НЕ РАБОТАЕТ!
...
Рейтинг: 0 / 0
07.03.2003, 10:58
    #32116271
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag`n`Drop - I NEED HELP!!!
А делфя то какая? (версия)
...
Рейтинг: 0 / 0
07.03.2003, 11:22
    #32116294
eNose
Участник
[не активирован]
[не одобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag`n`Drop - I NEED HELP!!!
7-я (EE)
...
Рейтинг: 0 / 0
07.03.2003, 12:05
    #32116340
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag`n`Drop - I NEED HELP!!!
хм... попробовал - тоже ничего не получилось...
я бы сделал нитку (TThread) с TThread.Priority = tpIdle.
и в нитке
if not Panel.Visible then ....
...
Рейтинг: 0 / 0
10.03.2003, 19:17
    #32117011
Shaitan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag`n`Drop - I NEED HELP!!!
Создаем новый класс окна типа TMyDockForm от TCustomDockForm определяем OnClose.
При создании главного окна у панели устанавливаем свойство FloatingDockSiteClass в TMyDockForm.
В событии OnEndDock для панели определяем OnClose для TMyDockForm.

В Delphi 5 это работает.
...
Рейтинг: 0 / 0
11.03.2003, 08:06
    #32117090
eNose
Участник
[не активирован]
[не одобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drag`n`Drop - I NEED HELP!!!
Всем спасибо!

Разобрался. Все работает.
Может кому-нибудь пригодится:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
// ...
type
  TMyDockForm = class(TCustomDockForm)
    procedure FormHide(var X: TMessage); message WM_CLOSE;
    procedure FormShow(var X: TMessage); message WM_SHOWWINDOW;
  end;

type
  TMyForm = class(TForm)
    DockedPanel: TPanel;
    procedure FormCreate(Sender: TObject);
   // ...
  end;

procedure TMyForm.FormCreate(Sender: TObject);
begin
  DockedPanel.FloatingDockSiteClass := TMyDockForm;
end;

procedure TMyDockForm.FormHide(var X: TMessage);
begin
  inherited;
   // ...
end;

procedure TMyDockForm.FormShow(var X: TMessage);
begin
  inherited;
   // ...
end;
// ...
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Drag`n`Drop - I NEED HELP!!! / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]