Традиционно, июнь — это месяц наших первых выпусков продуктов DevExpress в году. И на прошедшей неделе пришло время выпуска наших VCL компонентов!

В версии 15.1 мы готовы предложить вашему вниманию релизную версию компонента Rich Edit Control, предоставляющего возможности полнофункционального текстового процессора. Впервые мы представили этот компонент в превью версии в рамках прошлогоднего релиза 14.2.

В новой версии мы добавили в Rich Edit Control следующие возможности:

  • Работа с таблицами;
  • Поддержка многоколоночной и многосекционной вёрстки документа;
  • Встроенное контекстное меню;
  • Новые режимы просмотра документа – Simple и Draft;
  • Новые диалоги: для работы со шрифтом, таблицами, списками, символами, и т.п.
  • Горизонтальная и вертикальная линейки;
  • Нумерация строк;
  • Поддержка гиперссылок;
  • Настраиваемый цвет фона страницы;
  • Настройка размеров встраиваемых изображений;
  • Поддержка текстовых файлов (сохранение/загрузка);
  • Вставка и перемещение объектов OLE в документе.




В этом релизе библиотека редакторов ExpressEditors пополнилась компонентом Rating Control, который, как следует из названия, позволяет пользователям выставлять свои оценки чему-либо в приложении, используя горизонтальную или вертикальную линейку стандартных или произвольных иконок-элементов.



Rating Control поддерживает три режима заполнения – с шагом в целый элемент, в половину элемента или на любую произвольную величину. Также реализована возможность привязки компонента к базе данных и использования его как встроенного редактора в других компонентах (Grid Control, Tree List, Vertical Grid и др.)

Ни один релиз компонентов для VCL не обходится без усовершенствований существующих продуктов. Так, наиболее существенное развитие в версии 15.1 получил компонент Gauge Control, обзаведясь следующими фичами:

  • Анимация индикаторов:



  • Два новых типа шкал (Three-Fourth Circular и Wide Circular):



  • Шесть новых стилей (Clever, Cosmic, Eco, Red, Shining Dark и Silver Blur):



  • Новые режимы отображения маркировки шкал;



  • Логарифмические шкалы:



  • Режимы матричного отображения для цифровых шкал, с полной поддержкой Unicode символов:



  • Нанесение произвольных надписей для повышения информативности шкал и имитации реальных приборных панелей:





Помимо этого, Gauge Control был существенно переработан в целях унификации настроек разнотипных шкал, а в режиме разработки форм появилась возможность удобного выбора, позиционирования и изменения размера шкал при помощи мыши.

Начиная с версии 15.1, наши наработки в компоненте Spreadsheet Control используются в качестве основы движка экспорта данных в таких продуктах как Grid Control, Tree List, Pivot Grid, Scheduler и Vertical Grid. Компонент Spreadsheet Control теперь устанавливается совместно с этими продуктами и включён в состав наборов подписки ExpressGridPack и ExpressQuantumPack. Таким образом, активные подписчики на данные наборы получат Spreadsheet Control абсолютно бесплатно.

Благодаря обновлённому движку, поддерживаются следующие возможности при экспорте данных:
  • Назначение форматов выходных данных на основе форматов отображения данных экспортируемых ячеек;
  • Отслеживание прогресса операции экспорта и её прерывание при необходимости;
  • Экспорт данных в формат CSV;
  • Назначение кодировки текстовых данных при экспорте в форматы CSV и TXT;
  • Экспорт изображений в формат XLS;
  • Экспорт данных из detail Views компонента Grid Control в форматы XLSX, XLS, CSV и TXT;
  • Экспорт изображений, выводимых в колонках cxImageComboBox компонента Grid Control;
  • Экспорт данных компонента Spreadsheet Control в форматы TXT, XML и HTML.

Также в результате использования нового движка в компоненте Pivot Grid нам удалось втрое увеличить скорость экспорта данных при четырёхкратном сокращении потребления памяти по сравнению с версией 14.2.

В компоненте Spreadsheet Control появилась возможность группировки (в том числе многоуровневой) столбцов и строк электронных таблиц:



А также добавился встроенный диалог Find and Replace («Найти и Заменить»):



В компоненте Layout Control теперь единая индикация операций, связанных с перетаскиванием элементов формы. Новая индикация заместила ранее доступные стили («классический» и «зональный»), предоставляя более интуитивно понятные варианты конечного расположения перемещаемого элемента интерфейса. Также при отпускании элемента формы в режиме быстрой настройки теперь отображается панель, предоставляющая варианты выравнивания данного элемента. При отведении курсора от перенесённого элемента панель скрывается автоматически:



Наиболее знаковым улучшением компонента Map Control стала возможность включения инерционного скроллирования,

Помимо этого, конечные пользователи теперь могут прокручивать карту с помощью клавиш управления курсором.

В библиотеку ExpressSkins мы включили три новых темы в стиле Visual Studio 2013:



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



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

Комментарии (12)


  1. icoz
    01.07.2015 17:44
    +2

    Цены что-то негуманны. Или это только для корпораций? Для индивидуальных разработчиков как?


  1. toxicdream
    01.07.2015 17:59

    -Вставка и перемещение объектов OLE в документе.
    Однозначно надо будет посмотреть


    1. MacIn
      02.07.2015 14:22

      Поддерживаю. Но вот проблемка — начиная с Win 8.1 картинки в RichEdit больше не являются OLE объектами, а это для меня самое важное. Для всех предыдущих версий писал свою обертку через IRichEditOLE интерфейс, но с 8.1 это больше не работает.


      1. tatyana_ryzh
        02.07.2015 15:34

        Возможно, мы неточно выразились. Имелось в виду, Вставка и перемещение объектов в документе, используя технологию OLE


        1. MacIn
          02.07.2015 15:48

          Да, но это реализуется достаточно просто, 3 основных функции:
          function GetObjectCount: HResult; stdcall;
          function GetObject(iob: Longint; out reobject: TReObject;
          dwFlags: DWORD): HResult; stdcall;
          function InsertObject(var reobject: TReObject): HResult; stdcall;

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

          У меня была задача по работе — преобразование картинок в Rtf в более компактный формат (они хранятся как OLE объекты в формате метафайла, который по сути — BMP плюс заголовок, да еще в текстовом hex формате). Так вот в RichEdit до Win 8.0 включительно так и было, а начиная с 8.1 MsftEdit компонент в ОС заменен на новый, который сохраняет картинки не как OLE объекты, а как blob'ы, в чистом виде. И к ним доступ получить уже нельзя. Раньше я мог через GetCount и GetObject пробежаться по всем объектам, включая картинки, а теперь это невозможно. Картнки сами по себе и я понятия не имею, как с ними работать.

          Это не к вашему компоненту относится, просто к слову пришлось.


        1. MacIn
          02.07.2015 20:30

          Ваш компонент — надстройка над msftedit, или написан с нуля? Потому что мы сейчас рассматриваем альтернативы MSовскому, если ваш хорошо с картинками, таблицами и скрытыми тэгами работает, можем и приобрести.


          1. tatyana_ryzh
            03.07.2015 17:16

            Наш cxRichEdit редактор (входит в состав библиотеки ExpressEditors) — надстройка над msftedit, а свежевыпущенный Rich Edit Control написан «с нуля». Картинки еще будем дорабатывать, сейчас в них только базовый функционал. Можете попробовать trial версию, чтобы все увидеть своими глазами и оценить…


  1. lola_term
    01.07.2015 18:54
    +2

    В качестве разработчика в период с 2005-2009, а именно уж очень нравился язык Pascal и его развитие в качестве Delphi, сделал около сотни проектов, многие до сих пор используются…
    Так же среды программирования которые очень привыклись, все было вроде бы продуманным, что многие до сих пор пользуются в разработках старыми Delphi 7.0, rad studio 2007. Из-за того что Embarcadero стали рубить «капустку» на разработчиках, взвинтив цены в десятки раз, тупо приходится переосваиваться и смотреть на другие языки и среды разработки. Печально, натужно, как есть. Оставьте свои VCL себе, пойду изучать PHP, питон, руби, даже ассемблер кажется милее и уютнее, но только не ваши красивые картинки за такие деньги.


    1. dunmaksim
      02.07.2015 08:54

      Вы хотели сказать Qt, а не PHP, конечно же. Насчёт ценовой политики согласен. Раньше сам фанател за Delphi, сейчас, переехав на Python, вообще не понимаю, что может там держать людей, кроме Legacy-говна, которое дешевле поддерживать, чем переписать с нуля на чём-то другом (C#, C++, Qt, да что угодно, плюс получить кросс-платформенность в некоторых случаях).


      1. NortaBirdo
        05.07.2015 16:21

        Аналогичная ситуация. Долго и успешно кодил на delphi. Даже есть персональная лицензия. Но конские цены на апдейты + отсутствие развития основных библиотек (firemankey это хорошо, но развитие старых инструментов и починку багов ни кто не отменял) вынудили перейти на другой язык. pyqt + qtdesigner + python + cxFreeze + пара батников и в итоге кроссплатформенная не зависящая от питона, бесплатная RAD. Жаль и тяжело было уходить с любимого языка, который к тому же кормил, но язык это ещё не все.


  1. pcmaniac
    02.07.2015 19:39

    А есть в планах портирование вашей библиотеки под FireMonkey? Интересуют те-же шкалы в применении к управлению производством. Единая консоль управления на стационарнике и планшете с такими шкалами выглядит очень вкусно.

    Аппаратное ускорение отрисовки используете? Реально ли на каком-нибудь Атоме со встроенным видео рисовать десяток шкал 1920х1080@60FPS?


    1. tatyana_ryzh
      03.07.2015 17:16

      Портирования на FireMonkey в планах нет, но можно использовать компонент прямо сейчас на Windows планшетах.

      Что касается скорости отрисовки, мы сделали тестовую панель с 10 шкалами и попробовали на Desktop PC и Surface на Intel i5-3317U 1.7GHz с Win 8.1 Pro 1920*1080. На Surface дает «проседание» fps в 2.5-3 раза. Как-то не верится, что на Атоме будет лучше.