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