![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с закрытием Docking формы [D7, WinXP]
du_hast © (2008-06-19 14:14:00)Добрый день всем!
Значит есть у меня Dockingформа. Возникла проблема её закрытия когда она находится на самом Доке ( не в плавающем остосянии Not Floating !!! - это важно), тобиж "припаркована" (есть полоска перетаскивания и крестик закрыти, тот самый событие которого нужно переопределить).
Так вот не могу найти нужное сообщение или событие чтобы переопределить - ни WM_CLOSE, ни CM_VISIBLECHANGED не подходит. Может кто нибудь сталкивался - модскажите (Буду рад если ответит MsGuns :-))))))) )
du_hast (2008-06-23 23:36:00) [1]Спасибо за совет ))
Я нашол другой способ-
Я использовал TControlPanel как док, а как док-клиента TPanel, в этом случае "крестик" закрытия не создаётся- короче получилась тривиальная таскаемая панелька
ZENsan (2008-06-20 19:42:00) [2]Это я написал если ты имел ввиду контрол (панель и т.д.). А с формой такой проблемы не должно быть.
ZENsan (2008-06-20 19:40:00) [3]Всунь док контрол в свою форму класса а ей опиши событие ОнКлоуз:
function DockCreateForm(Parent, Cl: TWinControl): TfrmTemplateDock;
begin
Result := TfrmTemplateDock.Create(Parent);
Result.ClientWidth := 192;
Result.ClientHeight := 192;
Result.Parent := Parent;
Result.ParentWindow := Parent.Handle;
Cl.Parent := Result;
Cl.Align := alClient;
Result.DragKind := dkDock;
Result.DragMode := dmAutomatic;
end;
>> Значит есть у меня Docking форма.
Если это форма, то у неё всегда срабатывает ОнКлоуз (WM_CLOSE).
du_hast (2008-06-20 12:15:00) [4]Не вышло, не получилось ((
Вопрос остаётся открытым.
я натыкался на данный вопрос на англоязычных форумах, но там для регистрации нужна денюжка
du_hast (2008-06-19 18:13:00) [5]
> Обычно крестик посылает wm_syscommand.
Да, вы правы - главная форма сообщение получает - но сама "припаркованная" докин панель не получает это сообщение. Такое чувство что она просто хадится, а не закрывается.
Когда панели после закрытия "сказать" visible := true; - то она без проблем появляется. а вот выловить момент её исчезновения не удаётся.
Как вариант можно попробовать порыться в DockManager-е. Сейчас попробую
Юрий Зотов (2008-06-19 17:33:00) [6]Обычно крестик посылает wm_syscommand.