显示和编辑文本控件TRichView更新至v18,新增高DPI支持等功能(上)

原创|产品更新|编辑:况鱼杰|2019-10-22 10:46:17.173|阅读 95 次

概述:原生的 Delphi/C++Builder控件TRichView已更新至v18,新增新的高DPI支持等功能,还有一些其他的改进,欢迎下载!本章将会介绍更新新闻的上部分,DPI意识和缩放的更改,Lazarus 2受支持,度量单位,长度的新类型,用户界面本地化和SRVControls。

# 您正在找协同办公软件吗?点击这里站长给您推荐 #

TRichView 是一套 Delphi/C++Builder 控件,主要用于显示、编辑和打印超文本文档。该控件支持各种各样不同的特征属性(字体、上标和下标,文本背景颜色,自定义下拉列表)。文档中可以包含表格、图片、在图像列表中所选取的图像、任意的 Delphi 控件、文档居左等。

点击下载最新版TRichView


TRichView还有更多的更改,在TRichView更新新闻(下)>>可以查看。

DPI意识和缩放的更改

    DPI意识和缩放进行了许多更改,以支持高DPI显示模式并使文档独立于TRichView DPI。(DPI-每英寸点数,是屏幕像素密度的度量)。

用户定义的文档DPI和缩放

    可以通过将文档的DPI分配给TRichView.DocumentPixelsPerInch属性来定义它。本质上,这意味着缩放。

    例如,如果我们假设DocumentPixelsPerInch = 96为100%,则DocumentPixelsPerInch = 192会将文档中的所有内容增加两次,例如应用200%缩放。

注意:此缩放与我们的WYSIWYG编辑器(ScaleRichView)中的缩放不同。ScaleRichView按比例缩放所有大小,包括文本宽度,这对于所见即所得是必需的。副作用是,字符间距在低缩放中可能并不理想。相反,在TRichView中进行缩放可以以任何DPI /缩放百分比产生理想的输出,但是文本宽度不会按比例缩放。

    文档中只有两种对象类型不会自动缩放:控件和图像列表中的图像。如果您的文档包含这些对象,则需要手动调整控件的大小并更改图像列表。

    在Lazarus 2+中,也可以通过从TImageList请求文档DPI的图像来缩放图像列表中的图像。DocumentPixelsPerInch仅影响在TRichView和TRichViewEdit中显示的文档。它不影响打印,导出和导入(显然,图像列表中的控件和图像除外)。

以像素为单位

    此版本开始以像素为单位,如果为TRVStyle。单位 = rvstuPixels,尺寸以逻辑像素而不是物理屏幕像素为单位。逻辑像素的DPI在TRVStyle中定义。UnitsPixelsPerInch属性,默认情况下为96,因此TRichView像素在浏览器中的处理方式类似于HTML / CSS像素。通常,更改此属性没有任何意义(除非您要模拟物理屏幕像素的旧模式;在这种情况下,请将屏幕DPI分配给此属性)。

    不仅尺寸以TRVStyleUnits为单位受此属性影响。假定在这些逻辑像素中测量了未缩放图片,背景图像和TRichView边距的大小。当显示在屏幕上时,这些大小会从UnitsPixelsPerInch缩放到屏幕DPI(或DocumentPixelsPerInch,如果已定义)。

每个监视器的DPI意识

    在新版本的Delphi / C ++ Builder中,我们的组件支持可能具有不同DPI的不同监视器(每个监视器的DPI意识,Windows 10功能)。如果这些显示器的屏幕像素密度不同,则只需将其从一个显示器移动到另一台显示器即可更改Delphi格式的DPI。

针对Delphi和C ++ Builder 10.3(每监视器v2模式)实现了完整且理想的每监视器DPI意识。针对Delphi和C ++ Builder 10.1和10.2,每个监视器的DPI意识不太先进。在我们的RichViewActions的所有编辑器和对话框中都实现了每监视器DPI意识。

缩放ScaleRichView

    在较旧版本的ScaleRichView中,缩放是相对于96 DPI计算的。这意味着:如果ZoomPercent = 100,则一英寸等于96屏幕像素。结果,在高DPI显示模式下100%缩放太小。在新版本中,缩放是相对于屏幕DPI(或对于Delphi 10.1及更高版本,是当前监视器DPI)进行计数的。此更改仅影响缩放,不影响页面内容。

ScaleRichView中的控件

    以前,如果屏幕DPI <> 96,则ScaleRichView不支持正确显示插入的控件(它们显示得太大)。在计算非文本对象的大小时,ScaleRichView使用96 DPI。为什么总是需要插入的控件使用96 DPI,即使屏幕/监视器DPI不同。在新版本中,我们为RAD Studio 10.1及更高版本解决了此问题。不幸的是,如果在旧版本的Delphi中将ScaleRichView与插入的控件一起使用,则需要关闭对应用程序的DPI感知,它必须始终使用96 DPI。

SRVControls

    SRVControls是一组控件,旨在插入ScaleRichView文档中(按钮,复选框,编辑框,列表框等)。从此版本开始,它们支持DPI,并支持高级DPI显示模式。

点击下载最新版TRichView

Lazarus 2受支持

    影响TRichView的Lazarus 2最有趣的功能是多分辨率TImageList。在Lazarus 2中,TImageList可以包含同一图像的多个版本,并且控件可以请求具有必要大小的图像。如果TImageList有此图像,它将返回它。否则,它可能从最近的现有图像生成它。

    我们的组件在以下位置使用图像列表:

  • 特殊的文档对象类型(项目符号,热点,某些段落标记类型)。

  • 智能弹出窗口(可以在插入符号的位置显示的按钮)。

  • ScaleRichView中的工具栏(可以在WYSIWYG编辑器的滚动条区域或弹出图像中显示)。

    在所有这些情况下,我们都实现了对Lazarus 2+图像列表的支持。

PS:RAD Studio 10.3中也实现了多分辨率图像列表,但是方式不同。Delphi使用新组件:TImageCollection和TVirtualImageList。与Lazarus 2不同,新图像列表不需要控件的特殊支持。但是,它们必须手动修改图像大小。

度量单位

EMU

    在TRichView / ScaleRichView文档中,对象的整数大小以TRVStyle中定义的单位进行度量

    在此更新中,我们为单位添加了另一个选项:EMU(英制公制单位)。1 EMU = 1/914400英寸= 1/36000 mm。因此,如果将EMU用作内部度量单位,则可以以合理的精度将它们转换为mm,inchs和back。现在,我们所有的ActionTest和ReportEditor演示都使用EMU而不是twips 。

像素

    如果TRVStyle.Units = rvstuPixels,则所有值均以DPI独立的逻辑像素(而不是较旧版本的屏幕像素)进行测量,并且DPI = TRVStyle.UnitsPixelsPerInch。

长度的新类型

    和以前一样,在TRVStyle.Units中测量的所有属性都具有TRVStyleLength类型。为了使我们的代码更清楚,我们增加了更多类型代表大小的整数值:

  • TRVPixelLength:此类型用于DPI = TRVStyle.UnitsPixelsPerInch(例如TRichView.LeftMargin,RightMargin,MaxTextWidth)以逻辑像素为单位的尺寸(TRVPixel96Length)。

  • TRVPixel96Length:此类型用于DPI = 96(许多尺寸为其他控件;例如,TRVFontComboBox.DropDownWidth和ItemHeight)。

用户界面本地化

在此更新中,RichViewActions的以下翻译已更新:

  • 葡萄牙语(巴西),感谢Alexandre Garcia

  • 西班牙语,多亏RaúlIzquierdo

  • 土耳其语,感谢ErtanKüçükoglu

SRVControls

    SRVControls是一组控件,旨在插入ScaleRichView WYSIWYG编辑器中。虽然可以插入任何控件,但SRVControls更好,因为:

  • 可以缩放它们而不会损失图像质量;

  • 将SRVControl的编辑,备注,组合框插入TSRichViewEdit时可以显示脱字号。

  • SRVControls可以在ScaleRichView文档,TRichView文档或表单中使用。

  • SRVControls对于ScaleRichView的注册用户是免费的。

    它们包括:按钮,复选框,单选按钮,面板,组框,滚动条,编辑框,备忘录,列表框,组合框,选项卡集,图像滚动器,标签。

    它们大多数提供标准控件的功能,但其中一些是高级的:

  • 组合框和列表框可以显示图像,项目可以缩进以显示树状结构,项目可以具有自定义字体和颜色。

  • 列表框可以在项目中包含复选框。

  • 按钮可以包含图像。

  • 选项卡集允许重新排列和关闭选项卡。

    在此更新中,SRVControls得到了改进。

新外观

    以前的SRVControls外观图像不理想,我们受RAD Studio 10.3外观的启发(但不完全相同),设计出一种新颖而现代的外观。在RAD Studio XE2和更高版本中,SRVControls的新图形使用GDI +来平滑绘制带有抗锯齿线和填充边框的图形。

zoom

    SRVControls的经典外观不会被删除。可以通过将srvcsClassic分配给SRVControls的SRVControlStyle属性来返回。此外,经典外观经过重新设计,现在看起来更好。

    新外观的重要特征是对颜色的集中控制。在经典外观中,所有颜色都在组件本身中定义,而在新外观中,大多数颜色都在全局RVControlsPainter单例对象(RVControls.pas)中定义。您可以分配单独的颜色,或选择预定义的颜色主题之一:浅蓝色,春天绿色,黄土色,高对比度。

浅蓝色

春天绿色

黄土色

高对比度

经典

Unicode

    SRVControls在所有版本的Delphi中都是Unicode。

高DPI

    自此更新以来,所有SRVControl均支持高DPI显示模式。它们在新版本的Delphi中支持每个监视器的DPI意识。

双向文本

    自此更新以来,所有SRVControl都可以与双向文本一起正常使用。BiDiMode属性已发布并得到完全支持。

编辑和备忘录

    在此更新中,TSRVEdit和TSRVMemo被完全重写。以前,它们基于标准的编辑控件。他们只是改变了图纸。现在,它们是从头开始用Pascal编写的。

它为他们提供了以下优点:

  • 在所有版本的Delphi中都是Unicode。

  • 完整的颜色自定义,包括选择颜色。

  • 支持备忘录中的滚动条。

  • SRVMemo比标准备忘录的工作速度更快。

选项卡集

    TSRVTabSet具有一个新属性:OppositeTabPosition。默认情况下,选项卡显示在顶部(用于水平选项卡集)或左侧(用于垂直选项卡集)。此属性允许在/下方/右侧显示它们。

其他

    SRVControls中还有许多其他调整和修复(在此处列出过多)。

TRichView还有更多的更改,在TRichView更新新闻(下)>>可以查看。


如果您对想要购买正版授权TRichView,可以联系在线客服>>咨询相关问题。

    关注慧聚IT微信公众号 ☟☟☟,了解产品的最新动态及最新资讯。

1561953111.jpg



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,尊重他人劳动成果

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
TRichView

TRichView 是一套原生的 Delphi/C++Builder  控件,主要用于超文本文档的显示、编辑和打印。

在线
客服
咨询
电话
400-700-1020
在线
QQ
购物车 反馈 返回
顶部
在线客服系统
live chat