В версии 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)
toxicdream
01.07.2015 17:59-Вставка и перемещение объектов OLE в документе.
Однозначно надо будет посмотретьMacIn
02.07.2015 14:22Поддерживаю. Но вот проблемка — начиная с Win 8.1 картинки в RichEdit больше не являются OLE объектами, а это для меня самое важное. Для всех предыдущих версий писал свою обертку через IRichEditOLE интерфейс, но с 8.1 это больше не работает.
tatyana_ryzh
02.07.2015 15:34Возможно, мы неточно выразились. Имелось в виду, Вставка и перемещение объектов в документе, используя технологию OLE
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 пробежаться по всем объектам, включая картинки, а теперь это невозможно. Картнки сами по себе и я понятия не имею, как с ними работать.
Это не к вашему компоненту относится, просто к слову пришлось.
MacIn
02.07.2015 20:30Ваш компонент — надстройка над msftedit, или написан с нуля? Потому что мы сейчас рассматриваем альтернативы MSовскому, если ваш хорошо с картинками, таблицами и скрытыми тэгами работает, можем и приобрести.
tatyana_ryzh
03.07.2015 17:16Наш cxRichEdit редактор (входит в состав библиотеки ExpressEditors) — надстройка над msftedit, а свежевыпущенный Rich Edit Control написан «с нуля». Картинки еще будем дорабатывать, сейчас в них только базовый функционал. Можете попробовать trial версию, чтобы все увидеть своими глазами и оценить…
lola_term
01.07.2015 18:54+2В качестве разработчика в период с 2005-2009, а именно уж очень нравился язык Pascal и его развитие в качестве Delphi, сделал около сотни проектов, многие до сих пор используются…
Так же среды программирования которые очень привыклись, все было вроде бы продуманным, что многие до сих пор пользуются в разработках старыми Delphi 7.0, rad studio 2007. Из-за того что Embarcadero стали рубить «капустку» на разработчиках, взвинтив цены в десятки раз, тупо приходится переосваиваться и смотреть на другие языки и среды разработки. Печально, натужно, как есть. Оставьте свои VCL себе, пойду изучать PHP, питон, руби, даже ассемблер кажется милее и уютнее, но только не ваши красивые картинки за такие деньги.dunmaksim
02.07.2015 08:54Вы хотели сказать Qt, а не PHP, конечно же. Насчёт ценовой политики согласен. Раньше сам фанател за Delphi, сейчас, переехав на Python, вообще не понимаю, что может там держать людей, кроме Legacy-говна, которое дешевле поддерживать, чем переписать с нуля на чём-то другом (C#, C++, Qt, да что угодно, плюс получить кросс-платформенность в некоторых случаях).
NortaBirdo
05.07.2015 16:21Аналогичная ситуация. Долго и успешно кодил на delphi. Даже есть персональная лицензия. Но конские цены на апдейты + отсутствие развития основных библиотек (firemankey это хорошо, но развитие старых инструментов и починку багов ни кто не отменял) вынудили перейти на другой язык. pyqt + qtdesigner + python + cxFreeze + пара батников и в итоге кроссплатформенная не зависящая от питона, бесплатная RAD. Жаль и тяжело было уходить с любимого языка, который к тому же кормил, но язык это ещё не все.
pcmaniac
02.07.2015 19:39А есть в планах портирование вашей библиотеки под FireMonkey? Интересуют те-же шкалы в применении к управлению производством. Единая консоль управления на стационарнике и планшете с такими шкалами выглядит очень вкусно.
Аппаратное ускорение отрисовки используете? Реально ли на каком-нибудь Атоме со встроенным видео рисовать десяток шкал 1920х1080@60FPS?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 раза. Как-то не верится, что на Атоме будет лучше.
icoz
Цены что-то негуманны. Или это только для корпораций? Для индивидуальных разработчиков как?