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

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

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

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

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

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

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

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

Код: 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
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Drag`n`Drop - I NEED HELP!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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