2012-03-27 10 views
2

enter image description here У меня есть основная форма с левой панелью, и в центре формы у меня есть контроль над страницами .. и я пытаюсь прикрепить другие формы на странице управления, как я видел на примере, сделанным Алистером Кристи ; дело в том, что перетаскивание форм в pagecontrol лениво; Я обнаружил, что док-сервер JVCL и докклиент JVCL помогут мне в этом. Дело в том, что я хочу назначить pagecontrol JVCL dockserver в качестве настраиваемой панели док-станции, но я не знаю, как это сделать: здесь код, который я написал в событии oncreate mainformопределяют элемент управления страницей как панель dockerver.custom для док-станции jvcl. Является ли это возможным?

procedure Tform1.FormCreate(Sender: TObject); 
begin 
    jvdockserver1.CustomDockPanel := jvpagecontrol1; 
end; 

не могли бы вы помочь мне? Забыл упомянуть, что я как бы новичок в программировании, и я использую Delphi XE2;

+0

есть некоторые другие интересные вещи JvDocking здесь на StackOverflow: http://stackoverflow.com/questions/9068016/delphi -jvdockserver-jvdockclient-notification-for-unocking-floating-of-a-clie –

ответ

0

Компонент сервера стыковки JVCL может принимать только ПАНЕЛЬ как место стыковки, либо один из встроенных, либо настраиваемый TPanel, который вы размещаете в своей форме во время разработки. Однако библиотека Jedi Docking создаст для вас элементы управления страницей, если вы этого захотите. Тем не менее, это должен быть тот, который управляет ими, потому что эти элементы управления могут быть перемещены (вами или другим кодом jvdocking).

Итак, если вы хотите, чтобы некоторые вкладки были видимыми, вы не должны пытаться использовать свой собственный элемент управления страницей, вместо этого вы должны использовать демонстрационную версию Docking In Code в качестве образца, который поставляется вместе с JVCL, в папке jvcl\examples\JvDocking\DockingInCode.

Вот как выглядят вкладки, которые система JvDocking делает для вас, используя CustomDockPanel, где пользовательская панель док-станции подключена к TPanel, а затем JvDocking «создает элемент управления страницей» автоматически для вас, когда вам это нужно:

enter image description here

Обратите внимание, что страницы создаются или уничтожаются с помощью системы стыковки, и основная работа управления вкладками осуществляется с помощью библиотеки JvDocking, а не вы.

Главное, что вам нужно сделать, это использовать этот код из MainFm.pas:

tabHost := ManualTabDock(ctrl, newDocFm1, newDocFm2); 
+0

P-> Прежде всего, спасибо Уоррену за то, что так быстро ответил: я снова загрузил примеры для библиотеки стыковки jvcl, и вот что: i скомпилировал проект выше в delphi xe2, и это то, что я получаю, когда я нажимаю кнопку табудирования: «ManualTabDock: Ttabhost не создан. Ваш стиль стыковки может не поддерживать стыковую стыковку». У вас есть еще одна хорошая библиотека для доков, которая может помочь мне сделать то же самое? –

+0

Стыки стыковки, которые работают с док-станцией Tab, включены в Jedi VCL. Ваша проблема в том, что вы не добавили компонент стиля стыковки в свою форму. Вы могли бы прочитать документацию, если бы у нас были какие-то (SORRY! Не так много), но если вы будете следовать образцам и заметите, что стиль стыковки JvDockVIDStyle и другие другие поддерживают док-станции. Используйте док-код в демо-версии кода в качестве стартового кода. Определенно это работает в XE2, я только что протестировал его. –

+0

P ---> привет там Уоррен; Я открыл проект JvDocking под названием Docking_in_Code: все параметры в левой выровненной панели (Sibling DOck, Cojoined Dock) работают, но когда я нажимаю Tab Dock, это сообщение, которое я получаю ** «ManualTabDock: Ttabhost не создан. Ваш стиль стыковки может не поддерживать стыковую стыковку "** - изображение выше вашего' s. может быть, проблема может быть такой: у меня только обновление2 для xe2; должен ли я установить update4 вместо этого? –