原創(chuàng)|產(chǎn)品更新|編輯:況魚杰|2019-10-22 10:46:17.173|閱讀 706 次
概述:原生的 Delphi/C++Builder控件TRichView已更新至v18,新增新的高DPI支持等功能,還有一些其他的改進(jìn),歡迎下載!本章將會(huì)介紹更新新聞的上部分,DPI意識(shí)和縮放的更改,Lazarus 2受支持,度量單位,長(zhǎng)度的新類型,用戶界面本地化和SRVControls。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
TRichView 是一套 Delphi/C++Builder 控件,主要用于顯示、編輯和打印超文本文檔。該控件支持各種各樣不同的特征屬性(字體、上標(biāo)和下標(biāo),文本背景顏色,自定義下拉列表)。文檔中可以包含表格、圖片、在圖像列表中所選取的圖像、任意的 Delphi 控件、文檔居左等。
TRichView還有更多的更改,在TRichView更新新聞(下)>>可以查看。
DPI意識(shí)和縮放的更改
DPI意識(shí)和縮放進(jìn)行了許多更改,以支持高DPI顯示模式并使文檔獨(dú)立于TRichView DPI。(DPI-每英寸點(diǎn)數(shù),是屏幕像素密度的度量)。
用戶定義的文檔DPI和縮放
可以通過(guò)將文檔的DPI分配給TRichView.DocumentPixelsPerInch屬性來(lái)定義它。本質(zhì)上,這意味著縮放。
例如,如果我們假設(shè)DocumentPixelsPerInch = 96為100%,則DocumentPixelsPerInch = 192會(huì)將文檔中的所有內(nèi)容增加兩次,例如應(yīng)用200%縮放。
注意:此縮放與我們的WYSIWYG編輯器(ScaleRichView)中的縮放不同。ScaleRichView按比例縮放所有大小,包括文本寬度,這對(duì)于所見(jiàn)即所得是必需的。副作用是,字符間距在低縮放中可能并不理想。相反,在TRichView中進(jìn)行縮放可以以任何DPI /縮放百分比產(chǎn)生理想的輸出,但是文本寬度不會(huì)按比例縮放。
文檔中只有兩種對(duì)象類型不會(huì)自動(dòng)縮放:控件和圖像列表中的圖像。如果您的文檔包含這些對(duì)象,則需要手動(dòng)調(diào)整控件的大小并更改圖像列表。
在Lazarus 2+中,也可以通過(guò)從TImageList請(qǐng)求文檔DPI的圖像來(lái)縮放圖像列表中的圖像。DocumentPixelsPerInch僅影響在TRichView和TRichViewEdit中顯示的文檔。它不影響打印,導(dǎo)出和導(dǎo)入(顯然,圖像列表中的控件和圖像除外)。
以像素為單位
此版本開始以像素為單位,如果為TRVStyle。單位 = rvstuPixels,尺寸以邏輯像素而不是物理屏幕像素為單位。邏輯像素的DPI在TRVStyle中定義。UnitsPixelsPerInch屬性,默認(rèn)情況下為96,因此TRichView像素在瀏覽器中的處理方式類似于HTML / CSS像素。通常,更改此屬性沒(méi)有任何意義(除非您要模擬物理屏幕像素的舊模式;在這種情況下,請(qǐng)將屏幕DPI分配給此屬性)。
不僅尺寸以TRVStyleUnits為單位受此屬性影響。假定在這些邏輯像素中測(cè)量了未縮放圖片,背景圖像和TRichView邊距的大小。當(dāng)顯示在屏幕上時(shí),這些大小會(huì)從UnitsPixelsPerInch縮放到屏幕DPI(或DocumentPixelsPerInch,如果已定義)。
每個(gè)監(jiān)視器的DPI意識(shí)
在新版本的Delphi / C ++ Builder中,我們的組件支持可能具有不同DPI的不同監(jiān)視器(每個(gè)監(jiān)視器的DPI意識(shí),Windows 10功能)。如果這些顯示器的屏幕像素密度不同,則只需將其從一個(gè)顯示器移動(dòng)到另一臺(tái)顯示器即可更改Delphi格式的DPI。
針對(duì)Delphi和C ++ Builder 10.3(每監(jiān)視器v2模式)實(shí)現(xiàn)了完整且理想的每監(jiān)視器DPI意識(shí)。針對(duì)Delphi和C ++ Builder 10.1和10.2,每個(gè)監(jiān)視器的DPI意識(shí)不太先進(jìn)。在我們的RichViewActions的所有編輯器和對(duì)話框中都實(shí)現(xiàn)了每監(jiān)視器DPI意識(shí)。
縮放ScaleRichView
在較舊版本的ScaleRichView中,縮放是相對(duì)于96 DPI計(jì)算的。這意味著:如果ZoomPercent = 100,則一英寸等于96屏幕像素。結(jié)果,在高DPI顯示模式下100%縮放太小。在新版本中,縮放是相對(duì)于屏幕DPI(或?qū)τ贒elphi 10.1及更高版本,是當(dāng)前監(jiān)視器DPI)進(jìn)行計(jì)數(shù)的。此更改僅影響縮放,不影響頁(yè)面內(nèi)容。
ScaleRichView中的控件
以前,如果屏幕DPI <> 96,則ScaleRichView不支持正確顯示插入的控件(它們顯示得太大)。在計(jì)算非文本對(duì)象的大小時(shí),ScaleRichView使用96 DPI。為什么總是需要插入的控件使用96 DPI,即使屏幕/監(jiān)視器DPI不同。在新版本中,我們?yōu)镽AD Studio 10.1及更高版本解決了此問(wèn)題。不幸的是,如果在舊版本的Delphi中將ScaleRichView與插入的控件一起使用,則需要關(guān)閉對(duì)應(yīng)用程序的DPI感知,它必須始終使用96 DPI。
SRVControls
SRVControls是一組控件,旨在插入ScaleRichView文檔中(按鈕,復(fù)選框,編輯框,列表框等)。從此版本開始,它們支持DPI,并支持高級(jí)DPI顯示模式。
Lazarus 2受支持
影響TRichView的Lazarus 2最有趣的功能是多分辨率TImageList。在Lazarus 2中,TImageList可以包含同一圖像的多個(gè)版本,并且控件可以請(qǐng)求具有必要大小的圖像。如果TImageList有此圖像,它將返回它。否則,它可能從最近的現(xiàn)有圖像生成它。
我們的組件在以下位置使用圖像列表:
特殊的文檔對(duì)象類型(項(xiàng)目符號(hào),熱點(diǎn),某些段落標(biāo)記類型)。
智能彈出窗口(可以在插入符號(hào)的位置顯示的按鈕)。
ScaleRichView中的工具欄(可以在WYSIWYG編輯器的滾動(dòng)條區(qū)域或彈出圖像中顯示)。
在所有這些情況下,我們都實(shí)現(xiàn)了對(duì)Lazarus 2+圖像列表的支持。
PS:RAD Studio 10.3中也實(shí)現(xiàn)了多分辨率圖像列表,但是方式不同。Delphi使用新組件:TImageCollection和TVirtualImageList。與Lazarus 2不同,新圖像列表不需要控件的特殊支持。但是,它們必須手動(dòng)修改圖像大小。
度量單位
EMU
在TRichView / ScaleRichView文檔中,對(duì)象的整數(shù)大小以TRVStyle中定義的單位進(jìn)行度量
在此更新中,我們?yōu)閱?位添加了另一個(gè)選項(xiàng):EMU(英制公制單位)。1 EMU = 1/914400英寸= 1/36000 mm。因此,如果將EMU用作內(nèi)部度量單位,則可以以合理的精度將它們轉(zhuǎn)換為mm,inchs和back。現(xiàn)在,我們所有的ActionTest和ReportEditor演示都使用EMU而不是twips 。
像素
如果TRVStyle.Units = rvstuPixels,則所有值均以DPI獨(dú)立的邏輯像素(而不是較舊版本的屏幕像素)進(jìn)行測(cè)量,并且DPI = TRVStyle.UnitsPixelsPerInch。
長(zhǎng)度的新類型
和以前一樣,在TRVStyle.Units中測(cè)量的所有屬性都具有TRVStyleLength類型。為了使我們的代碼更清楚,我們?cè)黾恿烁囝愋痛泶笮〉恼麛?shù)值:
TRVPixelLength:此類型用于DPI = TRVStyle.UnitsPixelsPerInch(例如TRichView.LeftMargin,RightMargin,MaxTextWidth)以邏輯像素為單位的尺寸(TRVPixel96Length)。
TRVPixel96Length:此類型用于DPI = 96(許多尺寸為其他控件;例如,TRVFontComboBox.DropDownWidth和ItemHeight)。
用戶界面本地化
在此更新中,RichViewActions的以下翻譯已更新:
葡萄牙語(yǔ)(巴西),感謝Alexandre Garcia
西班牙語(yǔ),多虧RaúlIzquierdo
土耳其語(yǔ),感謝ErtanKü?ükoglu
SRVControls
SRVControls是一組控件,旨在插入ScaleRichView WYSIWYG編輯器中。雖然可以插入任何控件,但SRVControls更好,因?yàn)椋?/p>
可以縮放它們而不會(huì)損失圖像質(zhì)量;
將SRVControl的編輯,備注,組合框插入TSRichViewEdit時(shí)可以顯示脫字號(hào)。
SRVControls可以在ScaleRichView文檔,TRichView文檔或表單中使用。
SRVControls對(duì)于ScaleRichView的注冊(cè)用戶是免費(fèi)的。
它們包括:按鈕,復(fù)選框,單選按鈕,面板,組框,滾動(dòng)條,編輯框,備忘錄,列表框,組合框,選項(xiàng)卡集,圖像滾動(dòng)器,標(biāo)簽。
它們大多數(shù)提供標(biāo)準(zhǔn)控件的功能,但其中一些是高級(jí)的:
組合框和列表框可以顯示圖像,項(xiàng)目可以縮進(jìn)以顯示樹狀結(jié)構(gòu),項(xiàng)目可以具有自定義字體和顏色。
列表框可以在項(xiàng)目中包含復(fù)選框。
按鈕可以包含圖像。
選項(xiàng)卡集允許重新排列和關(guān)閉選項(xiàng)卡。
在此更新中,SRVControls得到了改進(jìn)。
新外觀
以前的SRVControls外觀圖像不理想,我們受RAD Studio 10.3外觀的啟發(fā)(但不完全相同),設(shè)計(jì)出一種新穎而現(xiàn)代的外觀。在RAD Studio XE2和更高版本中,SRVControls的新圖形使用GDI +來(lái)平滑繪制帶有抗鋸齒線和填充邊框的圖形。
SRVControls的經(jīng)典外觀不會(huì)被刪除。可以通過(guò)將srvcsClassic分配給SRVControls的SRVControlStyle屬性來(lái)返回。此外,經(jīng)典外觀經(jīng)過(guò)重新設(shè)計(jì),現(xiàn)在看起來(lái)更好。
新外觀的重要特征是對(duì)顏色的集中控制。在經(jīng)典外觀中,所有顏色都在組件本身中定義,而在新外觀中,大多數(shù)顏色都在全局RVControlsPainter單例對(duì)象(RVControls.pas)中定義。您可以分配單獨(dú)的顏色,或選擇預(yù)定義的顏色主題之一:淺藍(lán)色,春天綠色,黃土色,高對(duì)比度。
Unicode
SRVControls在所有版本的Delphi中都是Unicode。
高DPI
自此更新以來(lái),所有SRVControl均支持高DPI顯示模式。它們?cè)谛掳姹镜腄elphi中支持每個(gè)監(jiān)視器的DPI意識(shí)。
雙向文本
自此更新以來(lái),所有SRVControl都可以與雙向文本一起正常使用。BiDiMode屬性已發(fā)布并得到完全支持。
編輯和備忘錄
在此更新中,TSRVEdit和TSRVMemo被完全重寫。以前,它們基于標(biāo)準(zhǔn)的編輯控件。他們只是改變了圖紙。現(xiàn)在,它們是從頭開始用Pascal編寫的。
它為他們提供了以下優(yōu)點(diǎn):
在所有版本的Delphi中都是Unicode。
完整的顏色自定義,包括選擇顏色。
支持備忘錄中的滾動(dòng)條。
SRVMemo比標(biāo)準(zhǔn)備忘錄的工作速度更快。
選項(xiàng)卡集
TSRVTabSet具有一個(gè)新屬性:OppositeTabPosition。默認(rèn)情況下,選項(xiàng)卡顯示在頂部(用于水平選項(xiàng)卡集)或左側(cè)(用于垂直選項(xiàng)卡集)。此屬性允許在/下方/右側(cè)顯示它們。
其他
SRVControls中還有許多其他調(diào)整和修復(fù)(在此處列出過(guò)多)。
TRichView還有更多的更改,在TRichView更新新聞(下)>>可以查看。
如果您對(duì)想要購(gòu)買正版授權(quán)TRichView,可以聯(lián)系咨詢相關(guān)問(wèn)題。
關(guān)注慧聚IT微信公眾號(hào) ???,了解產(chǎn)品的最新動(dòng)態(tài)及最新資訊。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn