Моя команда в настоящее время думает о переносе нашего существующего приложения на основе MDI на более современный подход, основанный на стыковке. Мы все еще думаем, но мы хотели бы переместить его на что-то вроде стыковки VS2010 и визуального вида:
Это имеет следующие функции:
У меня возникли проблемы с поиском высококачественной библиотеки стыковки для использования с RAD Studio 2010 и я ищу совет ни о том, что я не нашел в библиотеке, или о том, как использовать те, которые я нашли что-то подобное.
Я нашел следующие библиотеки. Вот обзор:
Это позволяет формам состыковываться с другими формами или TWinControls, но, по-видимому, является довольно простым. Перетаскивание форм с использованием раскрашенной схемы XOR, которая очень плохо работает на Vista и Win7. Существует элемент управления TTabDockSet для вкладок состыкованных форм, но я не могу понять, как управлять тем, как пристыкованные заглавные формы формируются после стыковки. Я думаю, что внедрение стыковки бок о бок должно быть сделано вручную, создавая новые панели док-станции "на лету". Окна стыковки RAD Studio IDE немного слабее, чем это (прозрачные прямоугольники при перетаскивании формы, например), что является нечетным, так как я думал, что он использовал поддержку стыковки VCL.
Это выглядит немного более достойным решением, которое встроенная стыковка VCL. Он поддерживает стыковку с любым ребром или клиентом и показывает прямоугольник с алфавитом, в котором форма будет состыкована.
Похоже, что это довольно сложно (сбросить вторую форму поверх первого разрешено, но замораживает программу) и не имеет встроенной поддержки поддержки с вкладками или любого вида виджета drop-location.
Это выглядит многообещающим: в то время как, похоже, он не имеет непосредственных док-форм, на нем установлены стыковочные панели, а на них устанавливаются элементы управления/фреймы. Существующие формы могут быть перенесены в фреймы. Он также имеет док-виджет и поддержку вкладок в виде вкладок.
Однако демонстрация кажется довольно ненадежной. У меня установлена последняя оценочная версия и создание нового проекта с док-сайтом и несколькими панелями, а нажатие Run вызывает следующее:
Это сбой в потоке компонентов формы. Визуальный анализ файла DFM не показывает ничего плохого, но есть непрозрачная бинарная капля для информации о макете, которая может вызвать ее. Это не особенно обнадеживает в оценочной версии.
У меня были большие надежды на это: я никогда раньше не использовал никаких элементов управления DevExpress, но у них хорошая репутация. Но их демо-программа была действительно разочаровывающей:
Элемент управления мерцает и, похоже, не очень хорошо работает с Windows, даже с использованием стиля XP. Он имеет стыковую стыковку, но использует схему XOR-ed - что-то, что плохо работает на XP или Vista. У него также нет никакого виджетов. Честно говоря, похоже, что он не обновлялся со времен Windows XP. Обновление Июль 2011: Это улучшено.
Это самая многообещающая из всех библиотек.
Я регулярно использую AQTime, отличный профайлер, который, как представляется, написан с использованием собственной библиотеки стыковки, и он работает хорошо. Тем не менее, последняя версия пробной загрузки библиотеки для док-станции для RAD Studio 2009, а совет, заданный для установки в 2010 году, заключается в том, что он не поддерживается, и вы должны перекомпилировать исходный код. Демонстрация не поставляется с источником, и у нас нет RS2009, и установщик отказывается устанавливать, если мы не делаем этого, и даже если нам удалось установить его, мы не сможем его использовать, так как нам нужно будет перекомпилировать несуществующий источник.
Я связался со своей командой поддержки, и они указали мне на этот поток. Я также нашел еще одну цепочку с клиентами, которые просят почти то же самое. Я ответил и надеюсь услышать лучшие новости. Я не рекомендую покупать продукт, который я не могу оценить, особенно если он не поддерживается для нашей среды разработки.
Обновление: Я приобрел эту библиотеку. Несмотря на проблемы, связанные с оценкой (он работает в D2007, и у меня была его копия), кажется, проще всего использовать все библиотеки, а также самые мощные - например, легко написать тему для него. Я бы определенно рекомендовал его, если вам нужно также выбрать библиотеку док-станции.
Обновление июль 2011: Эта библиотека больше не продается, но скоро может быть открыта.
Это все, что я нашел до сих пор. Что теперь?
Спасибо за ваш вклад:)
Я использовал JCL, у меня есть LMD, DevExpress и автоматическая библиотека док-станции QA.
Ближайший, который вы найдете, который будет соответствовать вашим потребностям, - это Библиотека допинга AutomatedQA. Я использую его в своей работе для одного из моих проектов.
Следующий шаг, купите библиотеку AutomatedQA:)
от Счастливого Клиента.
Я разработчик JEDI JEDI, и я использовал JvDocking в своих собственных коммерческих проектах, и нашел его надежным и надежным.
Кроме того, он бесплатный. Это легко расширить. Он создает внешний вид примерно так же, как стыковка визуальной студии 2008 года.
Я не нашел ни одну библиотеку, которая делает все, что я хотел бы, поэтому после некоторых экспериментов я обнаружил, что могу делать почти все, что я хотел, используя элементы управления Native VCL Docking (NVCLD) с серией пользовательских модификаций и некоторые дополнительные элементы управления.
Ниже приведен список вещей, которые я использовал, чтобы заставить NVCLD работать так, как я хотел. У меня не было много проблем с переносом между версиями, но это потому, что у меня тоже есть src.
Если вы не хотите свертывать свои собственные или вы действительно хотите использовать стороннюю библиотеку, вы можете, возможно, прекратить читать остальную часть этого.:)
Дополнительные компоненты:
TDockPanel
Эта сильно модифицированная стыковочная панель является рабочей лошадкой моей системы. Я нашел оригинал в сети, но изменил его с тех пор, чтобы обеспечить большую гибкость для моих нужд.
Пользовательские формы стыковки (базовая форма)
Используя собственный базовый класс для моих док-форм и наследуя его при необходимости, у меня есть меньше модификаций для всех форм потомков.
Пользовательские изменения
Это изменения в .pas файлах самих компонентов NVCLD. Большинство из этих изменений больше не нужно делать из-за некоторых улучшений, сделанных для базовых элементов управления, начиная с D2009. Вы должны просто создать новый потомок и реализовать изменения там, вместо того, чтобы напрямую изменять файлы src по умолчанию.
Прозрачные стыковочные формы
По умолчанию (до 2009 года наверняка) NVCLD не поддерживает прозрачное перемещение формы. Пару лет назад был выпущен патч JVCL, в котором добавлена поддержка JVCL, которая была простой для включения в патч NVLCD.
Менеджер док-станции
Менеджер док-станции по умолчанию (до 2009 года наверняка) не разрешил новые или пользовательские изображения кнопок или изменения заголовков стыковки. Это было исправлено в D2009, я верю, когда нужны необходимые методы, которые сделали виртуальными.
Скрытая стыковка
Для поддержки дополнительных компонентов док-станции мне нужно было изменить файл DockTabSet.pas для поддержки дополнительных свойств стыковки, используемых дополнительными компонентами. Большинство из них были исправлены, когда диспетчер Docking был изменен, как упоминалось ранее.
Поскольку я изложил большинство этих изменений, я напрямую обратился к файлам Delphi Src, и вам не нужно делать это для более новых версий Delphi. Я хочу сказать, что с небольшими усилиями вы можете иметь довольно надежную систему стыковки, не прибегая к использованию сторонней библиотеки. Не то, чтобы с кем-то было что-то не так, но я предпочитаю не использовать их, если у меня нет другого выбора или у меня нет времени, чтобы он работал на моем пути.