|
<< Нажмите, чтобы показать Содержание >> Новое в версии 18 |
Этот раздел включает изменения в версии 17.3 и новее.
▪Удалены методы для совместимости с очень старыми версиями ТРВ-Редактора.
▪Избыточные методы TRichView.Add*** помечены как устаревшие. Рекомендуется использовать только один метод для каждого типа элемента документа. Эти методы имеют необязательные параметры. Например, используйте AddBreak вместо AddBreakEx, AddBreakTag, AddBreakExTag.
Все свойства и параметры методов и событий типа String, TRVRawByteString, TRVAnsiString заменены на TRVUnicodeString, где это возможно.
Изменённые события:
▪В TRichView: OnAssignImageFileName, OnImportPicture, OnItemAction, OnItemHint, OnReadHyperlink, OnRVDblClick, OnRVRightClick, OnRVFControlNeeded, OnRVFPictureNeeded, OnSaveComponentToFile, OnSaveDocXExtra, OnSaveHTMLExtra, OnSaveImage2, OnSaveItemToFile (помимо прочего, параметр Unicode: Boolean удалён), OnSaveParaToHTML, OnSaveRTFExtra, OnSpellingCheck, OnWriteHyperlink
▪В TRichViewEdit: OnDropFile, OnItemTextEdit
▪В TRVStyle: OnDrawStyleText (см. также ниже)
В события нестандартного рисования компонента TRVStyle добавлен новый параметр PSaD. Кроме того, начиная с этой версии, текст рисуется относительно своей базовой линии. Эти изменения могут повлиять на существующий код нестандартного рисования. Также добавлены параметры:
▪В TRVStyle: OnDrawStyleText (Baseline и PSaD), OnApplyStyle (PSaD)
▪В TFontInfo: Draw (Baseline и PSaD)
Если вы использовали эти события в своем приложении, вам необходимо вручную изменить типы параметров. Поскольку TRVUnicodeString определен в модуле RVTypes, убедитесь, что этот модуль указан в списке uses ваших форм.
В OnSaveDocXExtra, при Area = rv_docxs_ParaStyle, значение параметра Obj изменено (теперь он содержит RVData вместо стиля абзаца).
Многие var-параметры методов были заменены на out-параметры. Это изменение не должно повлиять на ваши проекты, если вы не разрабатывали классы, унаследованные от классов ТРВ-Редактора.
Визуальные компоненты, загружаемые из RVF, теперь масштабируются из плотности пикселей (PPI, pixels per inch), указанной в RVF, в текущее значение PPI экрана. Визуальные компоненты в файлах RVF, сохранённых более старыми версиями ТРВ-Редактора, не масштабируются (если вы не измените значение DefaultRVFPixelsPerInch), однако текущее значение значение PPI экрана присваивается их свойству Font.PixelsPerInch.
Глобальная переменная RichViewPixelsPerInch и свойство TRVStyle.TextStyles.PixelsPerInch устарели. Используйте TRichView.DocumentPixelsPerInch и TRVStyle.UnitsPixelsPerInch.
Методы TRVStyle.GetAsPixels, TRVStyle.PixelsToUnits и функции преобразования единиц измерения теперь имеют дополнительные параметры.
Размеры, измеряемые в пикселях, теперь используют TRVStyle.UnitsPixelsPerInch вместо Screen.PixelsPerInch. Это изменение затрагивает некоторый код, в частности пример в разделе справки RV_GetPrinterDC;
ТРВ-Редактор совместим с Lazarus (32-битная и 64-битная версии для Windows)
ТРВ-Редактор совместим с Delphi и C++Builder 10.3 Rio.
Полная поддержка нескольких мониторов с разной плотностью пикселей (PPI) («per monitor v2»).
Начиная с этой версии, весь текст в компонентах хранится в формате Юникод для всех версий Delphi. Все строковые свойства и параметры также преобразованы в Юникод где это возможно.
В связи с этим изменением некоторые свойства устарели. Они не удалены, но ничего не делают:
▪TFontInfo.Unicode
▪TRVStyle.DefUnicodeStyle
▪TRVRTFReaderProperties.UnicodeMode
Новые возможности, связанные с Юникодом:
▪поддержка юникодных символов с кодами больше $FFFF;
▪поддержка вставки и перетаскивания юникодных URL-адресов;
▪вставка символа нажатием и удержанием клавиши Alt и вводом десятичного юникодного кода на цифровой клавиатуре, начиная с '0' (клавиша Num Lock должна быть включена); эту функцию можно отключить, если добавить опцию rvoAlt0CodesUseKeyboardCodepage в EditorOptions.
▪вставка символа путём ввода его шестнадцатеричного Юникодного кода (непосредственно в редакторе) и последующего нажатия Alt + X . Повторное нажатие Alt + X преобразует его обратно в шестнадцатеричное число.
В TRVStyleUnits добавлена новая единица измерения: EMU (English Metric Unit, англо-метрическая единица).
Вы можете задать значение плотности пикселей (DPI, dots per inch) для всех размеров, измеряемых в пикселях, в свойстве TRVStyle.UnitsPixelsPerInch. Благодаря этому свойству пиксели становятся так же независимыми от DPI экрана, как твипы и EMU. При отображении на экране все размеры в пикселях масштабируются из UnitsPixelsPerInch, включая размеры изображений (единственные исключения – визуальные компоненты и значки из списков изображений (image lists)).
Полностью поддерживаются режимы экрана с высокой DPI.
Если приложение поддерживает мониторы с разным DPI (в Delphi 10.1+), TRichView использует DPI своего монитора. В Delphi 10.3 поддерживается режим «per monitor v2».
Вы можете изменить DPI документа с помощью свойства TRichView.DocumentPixelsPerInch. Это свойство позволяет реализовать масштабирование.
Новый (альтернативный) способ группировки операций редактирования для отмены: BeginUndoGroup2..EndUndoGroup2 (или BeginUndoCustomGroup2..EndUndoCustomGroup2). Эти методы позволяют группировать операции в нескольких ячейках таблицы.
Метод TRichView.OnReadMergeField позволяет читать поля слияния из RTF-файлов.
Весь текст рисуется относительно своей базовой линии. Ранее по умолчанию он рисовался относительно своего верхнего левого угла. Новый способ рисования обеспечивает лучший результат для масштабированного текста (в TRVPrintPreview или ScaleRichView). Это изменение затронуло событие TRVStyle.OnDrawStyleText и метод TFontInfo.Draw, см. примечания о совместимости выше.
RVF
▪Загрузка графики из RVF, даже если указанный графический класс недоступен (или не зарегистрирован): графический класс выбирается на основе содержимого (авто-определение формата). Новая опция для TRichView.RVFOptions: rvfoIgnoreGraphicClasses, позволяющая игнорировать имена графических классов, указанные в RVF.
▪Значение плотности пикселей (PPI) теперь сохраняется в файлах RVF; это значение используется для масштабирования загруженных визуальных компонентов из PPI, указанного в RVF, в PPI экрана; вы можете отключить масштабирование, присвоив 0 дополнительному целочисленному свойству rveipcDPIScalable (но значение PPI экрана по-прежнему будет присваиваться свойству Font.PixelsPerInch загруженных компонентов).
DocX
▪OnSaveDocXExtra, с Area = rv_docxs_ParaStyle, теперь указывается положение абзаца в документе.
Если изображение содержит кадры анимации, её можно воспроизвести. Ранее подобная анимация была реализована только для изображений типа TBitmap. Теперь она доступна для любого типа изображений.
Эта функция доступна, если в проект включен модуль RVGridAnimate.
▪GetCurrentCharacter может вернуть более одного символа, если они составляют один глиф.
▪некоторые улучшения в алгоритме расчёта ширины таблиц.