Рекомендации для прикрепляющейся библиотеки для Delphi / Разработчик C++?

Моя команда в настоящее время думает о перемещении нашего существующего основанного на MDI приложения к более современному, основанному на прикреплении подходу. Мы все еще думаем, но мы хотели бы переместить его во что-то как прикрепление VS2010 и визуальный взгляд:

VS2010 UI and docking screenshot

Это имеет следующие функции:

  • Показывает смешанную схему, где окно прикрепится
  • Прикрепления во вкладки, а также бок о бок
  • Позволяет прикрепляться путем перетаскивания и выпуска по изображению, показывающему положение прикрепления (я называю это 'прикрепляющимся виджетом' ниже),
  • Выглядит довольно хорошим также (тема / мудрый UI)

Я испытываю затруднения, находя, что библиотека прикрепления хорошего качества использует с Studio RAD 2010, и обращаюсь за советом или на том, какой library/ies я не нашел, или как использовать тех, я нашел для достижения чего-то вроде этого.


  • Обновление 2, июль 2011: Этот вопрос посмотрел на каждую библиотеку прикрепления, доступную Разработчику Delphi/C++, таким образом, я пытаюсь усовершенствовать его. Два изменения, о которых я знаю:
    • SmartBear, которые теперь владеют AutomatedQA, имеют библиотеку прикрепления end-of-lifed AutomatedQA. Это то один я рекомендовал покупать. Они считают открытое определение источника этим.
    • Одной проблемой, которую я имел с прикреплением DevExpress (который сделал его не достойной покупкой) было свое отсутствие поддержки того, чтобы VS2008/10-style прикрепиться с прикрепляющимся виджетом, прозрачное наложение, когда Вы перетащили и т.д. Они теперь реализуют его. Из-за этого, и так как больше не продается AQDocking, если бы я задал этот вопрос теперь, то мой принятый ответ должен был бы купить Прикрепление DevExpress.

Я нашел следующие библиотеки. Вот обзор:

Встроенное прикрепление VCL

Это позволяет формам быть прикрепленными на других формах или TWinControls, но, кажется, является довольно основным. Формы перетаскивают использование XOR нарисованная схема, которая работает очень плохо над Vista и Win7. Существует управление TTabDockSet для прикрепленных форм с вкладками, но я не могу выяснить, как управлять, как заголовки прикрепленных форм представляют когда-то прикрепленный. Я думаю, реализовывая прикрепляющийся, бок о бок должен будет быть сделан вручную, создавая новые docksite панели на лету. Окна прикрепления IDE Studio RAD являются немного дождевиком, чем это (прозрачные прямоугольники при перетаскивании формы, например), который нечетен, так как я думал, что она использовала поддержку прикрепления VCL.

Прикрепление JVCL

Это смотрит немного больше достойного решения что встроенное прикрепление VCL. Это поддерживает прикрепление на любом краю или клиенте, и показывает alphablended прямоугольник, где форма прикрепится.

JVCL docking test program

Это, кажется, довольно ошибочно (отбрасывание второй формы сверху первого позволяется, но замораживает программу), и не имеет никакой встроенной поддержки прикрепления с вкладками или любого вида виджета местоположения отбрасывания.

LMD, прикрепляющий пакет

Это выглядит многообещающим: в то время как это, кажется, непосредственно не прикрепляет формы, это имеет прикрепляющиеся панели и средства управления / кадры помещаются в это. Существующие формы могли быть перемещены в кадры. Это также имеет прикрепляющийся виджет и снабженную вкладками поддержку прикрепления.

Однако демонстрация, кажется, довольно ненадежна. Мне установили последнюю пробную версию и создание нового проекта с сайтом прикрепления и несколькими панелями, и нажатие Run вызывает следующее:

LMD docking

Это отказывает в потоковой передаче компонента формы. Визуально исследование файла DFM не показывает ничто плохого, но существует непрозрачный двоичный блоб для получения информации макета, которая может вызывать его. Это не особенно воодушевляет в пробной версии.

DevExpress ExpressDocking

У меня были большие надежды на это: я никогда не использовал средств управления DevExpress прежде, но у них есть хорошая репутация. Но их демонстрационная программа была действительно неутешительна:

DevExpress docking

Управление является flickery и не кажется теме хорошо с Windows, даже с помощью стиля XP. Это действительно имеет снабженное вкладками прикрепление, но это использует схему XOR-редактора - что-то, что не работает хорошо над XP или Vista. Это также не имеет никакого вида прикрепляющегося виджета. Откровенно говоря, похоже, что это не было обновлено со дней Windows XP. Июль 2011 обновления: Это улучшается.

AutomatedQA / библиотека прикрепления SmartBear

Это является самым многообещающим из всех библиотек до сих пор.

AutomatedQA docking library

Я регулярно использую AQTime, превосходный профилировщик, который, кажется, записан, пользуясь их собственной библиотекой прикрепления, и она работает хорошо. Однако последняя версия прикрепляющейся испытательной загрузки библиотеки является для Studio RAD 2009, и совет, данный для установки в 2010, состоит в том, что это не поддерживается, и необходимо перекомпилировать источник. Демонстрация не идет с источником, и у нас нет RS2009, и установщик отказывается устанавливать, если мы не делаем, и даже если бы мы manged, чтобы заставить это устанавливать мы не можем использовать его, так как мы должны были бы перекомпилировать несуществующий источник.

Я находился в контакте с их службой поддержки, и они указали на меня на этот поток. Я также нашел другой поток с клиентами, спрашивающими почти такую же вещь. Я ответил и надеюсь услышать лучшие новости. Я не стремлюсь рекомендовать, чтобы мы купили продукт, который я не могу оценить, особенно когда он не поддерживается для нашего IDE.

  • Обновление: Я закончил тем, что покупал эту библиотеку. Несмотря на оценку задач (это работает в D2007, и у меня была копия того), это кажется самым легким использованию всех библиотек и также самым мощным - легко записать тему для него, например. Я определенно рекомендовал бы это, если необходимо выбрать прикрепляющуюся библиотеку также.

  • Июль 2011 обновления: Эта библиотека больше не продается, но может быть скоро открыто получена.

Что я пропустил?

Это - все, что я нашел до сих пор. Что теперь?

  • Я пропустил какие-либо хорошие библиотеки прикрепления для Delphi / Разработчик C++ / Studio RAD 2010?
  • Я пропустил какие-либо функции в библиотеках, в которых у меня есть lookd до сих пор? Ответ как "Вы пропустил FooBar", или "JVCL действительно имеет прикрепляющийся виджет, и можно использовать его как так...", было бы довольно потрясающе услышать.
  • Что Вы рекомендовали бы как мой следующий шаг?

Спасибо за Ваш вход :)

47
задан David 19 August 2014 в 13:46
поделиться

2 ответа

Я использовал JCL, у меня есть LMD, DevExpress и Automated QA Docking Library.

Ближе всего к тому, что вам нужно, находится AutomatedQA Docking Library. Я использую ее в своей работе для одного из своих проектов.

Ваш следующий шаг, купить AutomatedQA Library :)

от счастливого клиента.

2
ответ дан 26 November 2019 в 19:57
поделиться

Я не нашел ни одной библиотеки, которая бы делала все, что мне хотелось, поэтому после некоторых экспериментов я обнаружил, что могу сделать почти все, что хочу, используя элементы управления Native VCL Docking (NVCLD) с рядом пользовательских модификаций и некоторыми дополнительными элементами управления.

Ниже приведен список вещей, с которыми я столкнулся, чтобы заставить NVCLD работать так, как я хотел. У меня не было много проблем с переносом между версиями, но это потому, что у меня есть и src.

Если вы не хотите создавать свою собственную библиотеку или хотите использовать библиотеку стороннего производителя, то можете не читать дальше. :)

Дополнительные компоненты:

  1. TDockPanel

    Эта сильно модифицированная док-панель является рабочей лошадкой моей системы. Я нашел оригинал в сети, но с тех пор изменил его, чтобы обеспечить немного большую гибкость для моих нужд.

  2. Пользовательские стыковочные формы (базовая форма)

    Используя пользовательский базовый класс для своих стыковочных форм и наследуя его по мере необходимости, мне приходится делать меньше модификаций для всех последующих форм.

Пользовательские модификации

Это модификации .pas файлов самих компонентов NVCLD. Большинство из этих модификаций больше не нужно делать из-за некоторых улучшений, внесенных в базовые элементы управления, начиная с D2009. Вы можете просто создать нового потомка и реализовать изменения в нем вместо того, чтобы напрямую изменять src-файлы по умолчанию.

  1. Прозрачные стыковочные формы

    По умолчанию (до 2009 года точно) NVCLD не поддерживает перемещение прозрачных форм. Пару лет назад был выпущен патч JVCL, добавляющий эту поддержку в JVCL, который было просто включить в патч NVLCD.

  2. Менеджер докинга

    Менеджер докинга по умолчанию (точно до 2009 года) не позволял использовать новые/настроенные изображения кнопок или изменять заголовки докинга. Это было исправлено в D2009, я полагаю, когда необходимые методы стали виртуальными.

  3. Докинг с вкладками

    Для поддержки дополнительных компонентов докинга мне потребовалось изменить файл DockTabSet.pas для поддержки дополнительных свойств докинга, используемых дополнительными компонентами. Большинство из этого было исправлено, когда менеджер докинга был модифицирован, как упоминалось ранее.

Как я уже говорил, большинство этих изменений я внес непосредственно в Src-файлы Delphi, и вам не нужно делать это для новых версий Delphi. Я хочу сказать, что при небольшой предварительной работе вы можете иметь достаточно надежную систему стыковки, не прибегая к использованию сторонних библиотек. Не то чтобы в них было что-то плохое, но я предпочитаю не использовать их, если у меня нет другого выбора или нет времени, чтобы сделать все по-своему.

3
ответ дан 26 November 2019 в 19:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: