Моя команда в настоящее время думает о переносе нашего существующего приложения на основе MDI на более современный подход, основанный на стыковке. Мы все еще думаем, но мы хотели бы переместить его на что-то вроде стыковки VS2010 и визуального вида:
Это имеет следующие функции:
- Показывает смешанную схему, в которой окно будет состыковано.
- Доки в вкладках, а также бок о бок
- Позволяет выполнять стыковку, перетаскивая и высвобождая изображение, отображающее положение док-станции (я называю это "виджет док-станции" ниже)
- Выглядит неплохо (тема/пользовательский интерфейс)
У меня возникли проблемы с поиском высококачественной библиотеки стыковки для использования с RAD Studio 2010 и я ищу совет ни о том, что я не нашел в библиотеке, или о том, как использовать те, которые я нашли что-то подобное.
- Обновление: Я закончил покупку Библиотека стыковки AutomatedQA. Я думаю, что это лучше всего. Более подробно ниже в разделе о нем.
- Обновление 2, июль 2011 г.. Этот вопрос рассмотрел каждую библиотеку док-станции, доступную для Delphi/С++ Builder, поэтому я стараюсь поддерживать ее в актуальном состоянии. Два изменения, о которых я знаю:
- У SmartBear, у которого теперь есть AutomatedQA, есть завершенная библиотека AutomatedQA docking. Это тот, который я рекомендовал покупать. Они рассматривают возможность открытого доступа к ней.
- Единственной проблемой, с которой я столкнулся с док-станцией DevExpress (что сделало ее недостойной), было отсутствие поддержки док-станции в стиле VS2008/10 с виджетами для стыковки, прозрачным наложением при перетаскивании и т.д. Они теперь реализуют его. Из-за этого, и поскольку AQDocking больше не продается, если бы я задал этот вопрос, теперь моим принятым ответом было бы купить DevExpress Docking.
Я нашел следующие библиотеки. Вот обзор:
Встроенная стыковка VCL
Это позволяет формам состыковываться с другими формами или TWinControls, но, по-видимому, является довольно простым. Перетаскивание форм с использованием раскрашенной схемы XOR, которая очень плохо работает на Vista и Win7. Существует элемент управления TTabDockSet для вкладок состыкованных форм, но я не могу понять, как управлять тем, как пристыкованные заглавные формы формируются после стыковки. Я думаю, что внедрение стыковки бок о бок должно быть сделано вручную, создавая новые панели док-станции "на лету". Окна стыковки RAD Studio IDE немного слабее, чем это (прозрачные прямоугольники при перетаскивании формы, например), что является нечетным, так как я думал, что он использовал поддержку стыковки VCL.
стыковка JVCL
Это выглядит немного более достойным решением, которое встроенная стыковка VCL. Он поддерживает стыковку с любым ребром или клиентом и показывает прямоугольник с алфавитом, в котором форма будет состыкована.
Похоже, что это довольно сложно (сбросить вторую форму поверх первого разрешено, но замораживает программу) и не имеет встроенной поддержки поддержки с вкладками или любого вида виджета drop-location.
LMD Docking Pack
Это выглядит многообещающим: в то время как, похоже, он не имеет непосредственных док-форм, на нем установлены стыковочные панели, а на них устанавливаются элементы управления/фреймы. Существующие формы могут быть перенесены в фреймы. Он также имеет док-виджет и поддержку вкладок в виде вкладок.
Однако демонстрация кажется довольно ненадежной. У меня установлена последняя оценочная версия и создание нового проекта с док-сайтом и несколькими панелями, а нажатие Run вызывает следующее:
Это сбой в потоке компонентов формы. Визуальный анализ файла DFM не показывает ничего плохого, но есть непрозрачная бинарная капля для информации о макете, которая может вызвать ее. Это не особенно обнадеживает в оценочной версии.
DevExpress ExpressDocking
У меня были большие надежды на это: я никогда раньше не использовал никаких элементов управления DevExpress, но у них хорошая репутация. Но их демо-программа была действительно разочаровывающей:
Элемент управления мерцает и, похоже, не очень хорошо работает с Windows, даже с использованием стиля XP. Он имеет стыковую стыковку, но использует схему XOR-ed - что-то, что плохо работает на XP или Vista. У него также нет никакого виджетов. Честно говоря, похоже, что он не обновлялся со времен Windows XP. Обновление Июль 2011: Это улучшено.
Библиотека стыковки AutomatedQA/SmartBear
Это самая многообещающая из всех библиотек.
Я регулярно использую AQTime, отличный профайлер, который, как представляется, написан с использованием собственной библиотеки стыковки, и он работает хорошо. Тем не менее, последняя версия пробной загрузки библиотеки для док-станции для RAD Studio 2009, а совет, заданный для установки в 2010 году, заключается в том, что он не поддерживается, и вы должны перекомпилировать исходный код. Демонстрация не поставляется с источником, и у нас нет RS2009, и установщик отказывается устанавливать, если мы не делаем этого, и даже если нам удалось установить его, мы не сможем его использовать, так как нам нужно будет перекомпилировать несуществующий источник.
Я связался со своей командой поддержки, и они указали мне на этот поток. Я также нашел еще одну цепочку с клиентами, которые просят почти то же самое. Я ответил и надеюсь услышать лучшие новости. Я не рекомендую покупать продукт, который я не могу оценить, особенно если он не поддерживается для нашей среды разработки.
-
Обновление: Я приобрел эту библиотеку. Несмотря на проблемы, связанные с оценкой (он работает в D2007, и у меня была его копия), кажется, проще всего использовать все библиотеки, а также самые мощные - например, легко написать тему для него. Я бы определенно рекомендовал его, если вам нужно также выбрать библиотеку док-станции.
-
Обновление июль 2011: Эта библиотека больше не продается, но скоро может быть открыта.
Что я пропустил?
Это все, что я нашел до сих пор. Что теперь?
- Я пропустил какие-либо хорошие библиотеки для стыковки для Delphi/С++ Builder/RAD Studio 2010?
- Я пропустил какие-либо функции в библиотеках, на которые я смотрел до сих пор? Ответ вроде "Вы пропустили FooBar" или "JVCL действительно имеет виджет док-станции, и вы можете использовать его так..." было бы довольно удивительно, чтобы услышать.
- Что бы вы порекомендовали в качестве следующего шага?
Спасибо за ваш вклад:)