Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Panel как отдельное окно.


Автор: RinOSpro 14.5.2009, 12:21
Есть Panel если в свойствах поставить DragKind - dkDock, а в DragMode - dmAutomatic, то при попытке перетащить она будет отображаться как отдельное окно.

Как можно сделать тоже самое? не назначая Panel.Parent другому окну. И не применяя программный drag & drop.

Автор: Shaggy 14.5.2009, 16:41
а никак
при перетаскивании VCL создаёт временную подкладку(окно)

Автор: Alexeis 14.5.2009, 17:22
Цитата(Shaggy @  14.5.2009,  15:41 Найти цитируемый пост)
при перетаскивании VCL создаёт временную подкладку(окно)


  Ничего дополнительно не создается, просто панелька без родителя становится отдельным окном сама по себе. С точки зрения Windows панелька точно такое окно как и форма, если пересоздать окно не указав Parent, то как раз такое окно и получиться.

Автор: RinOSpro 15.5.2009, 09:28
Цитата(Alexeis @  14.5.2009,  17:22 Найти цитируемый пост)
 панелька без родителя становится отдельным окном сама по себе


Код

  Lpanel := TPanel.Create(nil);
  Lpanel.Parent := nil;
  Lpanel.ParentWindow := GetDesktopWindow;
  Lpanel.Top := 100;
  Lpanel.Left := 100;
  Lpanel.Width := 100;
  Lpanel.Height := 100;


Панелька создается, но не имеет border-a.

А в случае с drag & drop видимо действительно дело рук VCL, так как Parent-ом для панельки является класс TCustomDockForm.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)