Новое в версии 10

<< Нажмите, чтобы показать Содержание >>

Новое в версии 10

Совместимость

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

HTML

Имена HTML-тегов, цветовые константы, имена CSS сохраняются в нижнем регистре;

SaveHTMLEx больше не использует следующие атрибуты для ячеек и таблиц: bordercolor, bordercolorlight, bordercolordark, background, bgcolor. Вместо них используется стили CSS. Эти атрибуты не являются стандартными.

OnSaveItemToFile вызывается с параметром Unicode = True при сохранении HTML-файлов в кодировке UTF-8.

Таблицы

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

По умолчанию сетка таблицы больше не отображается в редакторах в режиме только для чтения (это также влияет на TBDRichViewEdit, когда он не находится в режиме редактирования).

В редакторе клавиша  Tab  в последней ячейке таблицы добавляет новую строку; установите глобальную переменную RichViewTableAutoAddRow в значение False, чтобы отключить эту функциональность.

Редактирование

BeginUpdate и EndUpdate имеют новую функциональность.

Простая версия GetWordAt всегда возвращает ANSI-строк.

Paste может вставлять графические файлы в формате CF_HDROP.

RTF

закладки читаются из RTF.

ссылки внутри документа автоматически конвертируются в/из формат RTF при экспорте/импорте.

верхние/нижние индексы и свойство VShift сохраняются в / читаются из RTF по-разному.

Другое

смысл параметра ItemNo события OnControlAction изменился.

методы вставки RVF игнорируют свойства фона.

Основные новые возможности

Анимация рисунков;

Всплывающие кнопки;

разрывы страниц внутри ячеек таблиц.

Новые типы элементов документа

текстовая метка;

последовательность;

сноска;

концевая сноска;

ссылка на родительскую сноску.

Новое в сохранении и чтении

HTML:

Новые возможные значения для параметра Options методов SaveHTML и SaveHTMLEx:

rvsoXHTML – если включено, XHTML сохраняется вместо HTML;

rvsoUTF8 – если включено, HTML/XHTML сохраняется в кодировке UTF-8.

Вы можете выбрать между использованием <p> и <div>.

Семейства шрифтов сохраняются в CSS для наиболее часто используемых шрифтов. Например, если название шрифта – 'Arial', будет сохранена строка 'Arial', 'Helvetica', sans-serif'.

RTF:

Вы можете указать класс, представляющий изображения PNG, используя функцию RegisterPngGraphic. После этого TRichView сможет записывать и читать изображения PNG в формате RTF.

Вы можете сохранять параметры страницы с помощью свойства DocParameters.

RTFOptions для сохранения файлов RTF меньшего размера: rvrtfSavePicturesBinary, rvrtfPNGInsteadOfBitmap.

Закладки читаются из RTF. При экспорте ссылки, начинающиеся с символа '#', преобразуются в ссылки на закладки. При импорте ссылки на закладки преобразуются в ссылки, начинающиеся с символа '#'.

Новые свойства в TCustomRichView.RTFReadProperties:

StoreImagesFileNames включает сохранение имён файлов внешних изображений (обновление: это свойство удалено в версии 16);

BasePathLinks указывает, следует ли добавлять путь к считанным гиперссылкам;

IgnoreBookmarks позволяет пропускать закладки;

IgnoreNotes позволяет пропускать сноски (обычные и концевые);

IgnoreSequences позволяет пропускать нумерованные последовательности;

IgnoreTables позволяет не загружать таблицы;

ReadDocParameters позволяет читать DocParameters;

UseSingleCellPadding задаёт режим чтения отступов внутри ячеек таблиц.

Текст:

Вы можете разрешить сохранение разрывов страниц в текстовых файлах. Установите RichViewSavePageBreaksInText в значение True.

Другое:

LoadFromStream читает документы в формате RVF, RTF или текст (автоопределение формата).

Новое в компонентах для работы с базами данных

TDBRichView и TDBRichViewEdit могут быть помещены в TDBCtrlGrid.

TDBRichView и TDBRichViewEdit могут обновлять состояние стандартных команд (actions) для работы с БД.

TDBRichView.OnLoadCustomFormat, TDBRichViewEdit.OnLoadCustomFormat и OnSaveCustomFormat позволяют читать и писать данные в БД в своих форматах.

специальная поддержка юникодных мемо-полей.

Новое в перетаскивании (drag&drop)

События низкого уровня:

OnOleDragEnter;

OnOleDragOver;

OnOleDragLeave;

OnOleDrop.

Новое в обработке юникодного текста

Поддержка символа Юникода для соединения слов (код $2060). Этот символ невидим и не позволяет переносить строки до и после него. Требуется специальная поддержка, поскольку почти ни один шрифт не имеет глифа для этого символа (он корректно работает только если вставлен в середину текстового элемента).

Сообщение WM_UNICHAR обрабатывается, если текущий текст юникодный.

TCustomRichView.SearchTextW и TCustomRichViewEdit.SearchTextW позволяют осуществлять поиск по строки типа WideString.

Новое в разметке и форматировании

Если установить типизированную константу RichViewShowGhostSpaces в значение True, пробелы, скрытые между строками, будут отображаться, если rvoShowSpecialCharacters присутствует в TCustomRichView.Options.

Вы можете определить, какие символы отображать в режиме ShowSpecialCharacters. Они перечислены в типизированной константе RVVisibleSpecialCharacters.

Новые возможные значения для TCustomRichView.BackgroundStyle.

Новое свойство TCustomRichView.MaxLength – максимальное количество символов в строке.

Новое свойство TCustomRichView.WordWrap позволяет отключить перенос слов.

Если установить типизированную константу RichViewWrapAnywhere в значение True, текст может переноситься в любом месте (эта константа была удалена в версии 13).

Новые атрибуты текста

Новые опции защиты (Protection) текста: rvprStyleSplitProtect, rvprSticking2, rvprSticking3.

Новое свойство HoverEffects позволяет подчёркивать гиперссылки под курсором мыши.

Новые свойства UnderlineType, UnderlineColor и HoverUnderlineColor настраивают внешний вид гиперссылки.

Новое свойство SubSuperScriptType реализует верхние и нижние индексы.

Новое в печати документа

TRVReportHelper и TRVPrint больше не требуют родительского компонента. Их можно разместить в модуле данных или создать без владельца.

TRVPrintPreview отображает полный размер бумаги, включая области, где принтер не может печатать (см. функцию WinAPI GetDeviceCaps, константы PHYSICAL***).

Свойство TRVPrintPreview.PrintableAreaPen. Если установить его Style<>psClear, TRVPrintPreview отобразит границы области печати (в предыдущих версиях этот прямоугольник отображался как вся страница).

Свойство TRVPrint.FixMarginsMode.

Новые свойства элементов документа

Свойство элементов документа rvepVisible позволяет скрыть визуальные компоненты;

Свойство элементов документа rvepResizable работает и для рисунков;

Свойство элементов документа rvespAlt может быть применено к значкам and интерактивным значкам, так же как к рисункам и интерактивным рисункам;

новые значения для свойства VAlign элементов документа: rvvaAbsTop, rvvaAbsBottom, rvvaAbsMiddle.

новые стили для горизонтальных линий: штриховые и пунктирные; все типы линий рисуются без скругления концов.

Новое в закладках

Новый набор методов, работающих с закладками, находящимися точно в позиции каретки:

InsertCheckpoint;

GetCheckpointAtCaret;

RemoveCheckpointAtCaret.

Новое в таблицах

Ячейки таблицы можно распечатать на нескольких страницах (ранее разрывы страниц были возможны только между строками).

Новая опция для table.Options: rvtoNoCellSelect. Если она включена, выделение нескольких ячеек мышью не допускается.

Новое свойство table.VisibleBorders позволяет скрыть некоторые стороны рамки таблицы. Прямое присвоение значения этому свойству нельзя отменить/вернуть, используйте для этого table.SetTableVisibleBorders.

Сетка таблиц больше не отображается в редакторах  в режиме только для чтения. Точнее, она отображается с помощью глобальной переменной RichViewTableGridStyle2 (значение по умолчанию: psClear). Тот же стиль линии используется для рисования таблицы в TRichView.

Копирование выделения нескольких ячеек в виде фрагмента таблицы (в формате RVF); специальная вставка пока не реализована, вставляется как новая таблица.

Добавление новой строки таблицы при нажатии клавиши  Tab  в последней ячейке (установите глобальную переменную RichViewTableAutoAddRow в значение False, чтобы отключить эту функциональность).

Новые свойства RowCount, ColCount.

Новые свойства CellHPadding, CellVPadding.

Новое свойство Cell.Hint.

Новое свойство Row.PageBreakBefore.

Новые методы SetCellBackgroundImageFileName и SetCellHint.

Улучшен алгоритм расчёта ширины таблицы.

Улучшена реализация SplitSelectedCellsVertically и SplitSelectedCellsHorizontally.

Новое в RVF

Если изображение не было возвращено в событии OnRVFPictureNeeded, это событие вызывается во второй раз со значением свойства rvespImageFileName в параметре Name (если значение этого свойства было сохранено для данного элемента). (Обновление: в TRichView 14 событие OnRVFPictureNeeded было переработано, и теперь оно не вызывается дважды).

Нестандартная каретка

Вы можете нарисовать свою собственную каретку (курсор ввода) вместо системной. Она активируется свойством CustomCaretInterval, измеряется в событии OnMeasureCustomCaret, а рисуется в событии OnDrawCustomCaret.

Другое

Следующие сообщения Windows обрабатываются TCustomRichView: EM_GETSEL, EM_SETSEL, EM_GETTEXTRANGE. Если эти сообщения вам не нужны, вы можете активировать директивы RVDONOTUSELINEARPOSITIONS в файле RV_Defs.inc. Это немного уменьшит размер исполняемого файла.

Вставка графических файлов в формате CF_HDROP, см. PasteGraphicFile.

В значение по умолчанию TCustomRichView.Delimiters добавлены новые символы.

Изменён смысл методов BeginUpdate и EndUpdate для TCustomRichViewEdit.

Новая опция для TCustomRichView.SearchText: rvsroFromStart.

Изменения в TCustomRichView.GetWordAt.

Возможность удаления неиспользуемых стилей в нескольких документах, см. TRVDeleteUnusedStylesData.

Значительно более быстрое форматирование, особенно если параметр rvoFastFormatting включён в TCustomRichView.Options (по умолчанию). Значительно более быстрая загрузка RTF-файлов. Значительно более быстрое копирование в буфер обмена.

Функция RVIsCustomURL.

 Ctrl +   и  Ctrl +   прокручивают документ вниз/вверх вместо перемещения курсора.

(в режиме Юникода в WinNT/2000/XP/Vista) специальная поддержка ввода на казахском, татарском, монгольском, азербайджанском (кириллица и латиница), узбекском, киргизском, сербском языках.

Новые «скрытые» параметры в TCustomRichView.OnControlAction.