原創|產品更新|編輯:況魚杰|2019-10-22 10:46:17.173|閱讀 706 次
概述:原生的 Delphi/C++Builder控件TRichView已更新至v18,新增新的高DPI支持等功能,還有一些其他的改進,歡迎下載!本章將會介紹更新新聞的上部分,DPI意識和縮放的更改,Lazarus 2受支持,度量單位,長度的新類型,用戶界面本地化和SRVControls。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
TRichView 是一套 Delphi/C++Builder 控件,主要用于顯示、編輯和打印超文本文檔。該控件支持各種各樣不同的特征屬性(字體、上標和下標,文本背景顏色,自定義下拉列表)。文檔中可以包含表格、圖片、在圖像列表中所選取的圖像、任意的 Delphi 控件、文檔居左等。
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顯示模式。
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 +來平滑繪制帶有抗鋸齒線和填充邊框的圖形。
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微信公眾號 ???,了解產品的最新動態及最新資訊。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn