-
du_hast (19.06.08 14:14) [0]Добрый день всем!
Значит есть у меня Docking форма. Возникла проблема её закрытия когда она находится на самом Доке ( не в плавающем остосянии Not Floating !!! - это важно), тобиж "припаркована" (есть полоска перетаскивания и крестик закрыти, тот самый событие которого нужно переопределить).
Так вот не могу найти нужное сообщение или событие чтобы переопределить - ни WM_CLOSE, ни CM_VISIBLECHANGED не подходит. Может кто нибудь сталкивался - модскажите (Буду рад если ответит MsGuns :-))))))) ) -
Юрий Зотов © (19.06.08 17:33) [1]Обычно крестик посылает wm_syscommand.
-
du_hast (19.06.08 18:13) [2]
> Обычно крестик посылает wm_syscommand.
Да, вы правы - главная форма сообщение получает - но сама "припаркованная" докин панель не получает это сообщение. Такое чувство что она просто хадится, а не закрывается.
Когда панели после закрытия "сказать" visible := true; - то она без проблем появляется. а вот выловить момент её исчезновения не удаётся.
Как вариант можно попробовать порыться в DockManager-е. Сейчас попробую -
du_hast (20.06.08 12:15) [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 (23.06.08 23:36) [6]Спасибо за совет ))
Я нашол другой способ-
Я использовал TControlPanel как док, а как док-клиента TPanel, в этом случае "крестик" закрытия не создаётся- короче получилась тривиальная таскаемая панелька