SVG控制元件
# PinToo 控制元件使用(SVG控制元件)
以下組中包含用於顯示SVG圖形相關的控制元件。
# 1. TfxThreadImage
此控制元件用於顯示 SVG 的圖形影象,通過在重新縮放控制元件時重新繪製SVG來確保影象始終具有最高解析度。
此控制元件在表單上顯示 SVG 的圖形影象。 通過 Filename
或 Lines
屬性來控制影象中顯示的 SVG。
此控制元件預置了一個目錄用於放置預設或者自定義的SVG圖形列表。其目錄位於PinToo設計器安裝目錄中的resources/images/svg
中,所有的SVG圖形按照資料夾進行分組放置。通過雙擊控制元件來打開SVG相簿,進行SVG圖形的快速選擇。
# 1.1. 屬性
屬性 | 功能說明 |
---|---|
Buffered | 此屬性用於指定是否將SVG繪製到後臺緩衝區,然後將該影象複製到前臺(預設設定)還是直接在前臺繪製SVG圖形 |
FileName | 定義要在設計時和運行時載入的 SVG 文件的檔名 |
FindOptions | 此屬性用於幫助控制元件確定哪個svg元素位於滑鼠游標處 |
Interval | 設定輪播的時間間隔,以ms(毫秒)為單位 |
Lines | 定義要載入的 SVG 的 XML 文字。當您不想從具有 Filename 屬性的檔案載入 SVG 時,Lines 屬性非常有用 |
MarginWrapMode | 指定SVG的邊距如何調整大小、複製和定位 |
Opacity | 此屬性用於指定SVG影象的不透明度。如果Opacity小於1,則SVG顯示為半透明。 如果 Opacity為 0,則不顯示SVG |
Options | 定義用於讀取、顯示和寫入文件的選項 |
Quality | 此屬性控制SVG影象的Buffered 繪畫的質量。 質量值可以取值于1(低)到 8(非常高) |
ScaleOriginal | 指定用於繪製 SVG 的比例。使用 ScaleOriginal 屬性可以在元件內放大或縮小 SVG。 這對於控制平鋪 SVG 或放大或縮小 SVG 很有用 |
SVGDocument | 指定控制元件引用的SVGDocument控制元件名稱 |
SVGImgList | 設定顯示輪播圖形使用的SVG影象列表控制元件名稱 |
SVGMargins | 指定元件顯示的SVG的邊距 |
SVGRootID | 指定將 SVGDocument 的哪個節點繪製為頂級 SVG 文件。使用 SVGRootID 屬性僅顯示 SVGDocument 的一部分 |
WrapMode | 指定是否調整SVG圖形,以及設定如何調整影象大小、複製和定位SVG影象以呈現在控制元件中 |
# 1.1.1. Buffered
property Buffered: Boolean;
此屬性用於指定是否將SVG繪製到後臺緩衝區,然後將該影象複製到前臺(預設設定)還是直接在前臺繪製SVG圖形 。當 Opacity 小於 1 或平鋪 SVG 時,緩衝功能將始終處於啟用狀態。
# 1.1.2. FileName
property Filename: String;
定義要在設計時和運行時載入的 SVG 文件的檔名。
# 1.1.3. FindOptions
property FindOptions: TSVGFindOptions
此屬性用於幫助控制元件確定哪個svg元素位於滑鼠游標處。
名稱 | 說明 |
---|---|
foFindDisabled | 當此選項存在時,搜索演算法將檢測禁用的 (TSVGElement.Enabled=False) 元素以及啟用的元素。當此選項不存在時,搜索演算法將只檢測啟用的元素 |
foFindGroups | 是否將分組與SVG作為元素查詢。如果此選項不存在,則只能找到組的子項,而不是組本身 |
foFindHiddenElements | 是否查詢隱藏的元素。當這個選項存在時,仍然可以找到不可見的元素 |
foFindNonFilled | 當此選項存在時,搜索演算法會將具有Brush.Kind = None 的svg元素視為沒有孔的實體對象。當此選項不存在時,帶有 Brush.Kind = None 的 svg 元素將被視為「空心」,並且只會檢測元素輪廓上的點 |
foFindNoRecursion | 當此選項存在時,查詢演算法將不會嘗試查詢元素的子元素 |
foUseBoundingBox | 當此選項存在時,使用它們的邊界框查詢元素(更快但不太準確)。當此選項不存在時,按形狀查詢元素(更慢但更準確) |
# 1.1.4. Interval
property Interval: Integer;
此屬性用於設定圖片輪播的時間間隔,以ms為單位。
# 1.1.5. Lines
property Lines: TStrings;
定義要載入的 SVG 的 XML 文字。當您不想從具有 Filename 屬性的檔案載入 SVG 時,Lines 屬性非常有用。
# 1.1.6. MarginWrapMode
property MarginWrapMode: TSVGImageWrapMode;
此屬性用於指定 SVG 的邊距如何調整大小、複製和定位。
使用此屬性可設定或獲取SVG 的邊距在控制元件中的顯示方式。 預設情況下,邊距會被拉伸以填充整個控制元件。如果未設定SVGMargins屬性,則 MarginWrapMode屬性無效。
iwOriginal
: 以原始尺寸顯示 SVG。iwFit
: 控制元件矩形的最佳擬合(保持 SVG 比例 - 寬度和高度之間的比率)。此項為預設設定項。iwStretch
:拉伸SVG以填充控制元件的整個矩形。iwTile
:平鋪控制元件影象顯示區域以覆蓋控制元件的整個矩形。iwCenter
: 將 SVG 在控制元件內居中。
# 1.1.7. Opacity
property Opacity: Single;
此屬性用於指定SVG影象的不透明度。如果Opacity小於1,則SVG顯示為半透明。 如果 Opacity為 0,則不顯示SVG。
# 1.1.8. Options
property Options: TSVGOptions;
定義用於讀取、顯示和寫入文件的選項。包含以下選項:
名稱 | 說明 |
---|---|
soApplyClipping | 為繪圖應用剪下路徑 |
soCompactExport | 導出SVG時,只導出非繼承屬性 |
soEnforceUniqueID | 為 SVG 元素強制執行唯一 ID 或引發異常。如果此選項不存在,SVG 文件將產生唯一 ID(可能會破壞 URI)以確保保留唯一性 |
soExportDisabled | 導出 SVG 時,導出禁用元素和啟用元素 |
soExportOptimizedBinaryStyleProperties | 導出二進制 SVG 時,優化樣式屬性集(繼承和首選樣式)的流式傳輸方式。優化集合流的速度要快得多,因為它會流出樣式屬性列舉值的序數值。但是,如果樣式屬性列舉的順序將來發生變化,您可能會載入不正確的結果 |
soExportUnknownXML | 導出SVG時,導出未知的svg/xml元素 |
soFMXRadialGradientPatch | 設定 Gradient.Transform 屬性以獲得最佳渲染質量 |
soSkipUnknownXML | 載入 XML 時跳過未知節點或在載入時觸發異常 |
soUseFillText | 繪製文字元素時,使用 FillText(更快但不太相容)或將文字轉換為路徑並使用 FillPath(更慢但更相容) |
soUseLocaleForLanguage | 使用系統區域設定語言顯示元素(適用於 Switch SVG 元素)(僅限 Windows) |
# 1.1.9. Quality
property Quality: Integer;
此屬性控制SVG影象的Buffered
繪畫的質量。 質量值可以取值于1(低)到 8(非常高)。
# 1.1.10. ScaleOriginal
property ScaleOriginal: Single;
指定用於繪製 SVG 的比例。使用 ScaleOriginal 屬性可以在 TRSSVGImage 元件內放大或縮小 SVG。 這對於控制平鋪 SVG 或放大或縮小 SVG 很有用。
# 1.1.11. SVGDocument
property SVGDocument: TRSSVGDocument;
指定要在控制元件中顯示的SVG文件的名稱。SVGDocument和SVGRootID屬性精確控制要顯示的SVG文件和SVG文件層次結構分支。
# 1.1.12. SVGImgList
property SVGImgList: TRSSVGImageList;
此屬性用於設定顯示輪播圖形使用的影象列表控制元件的名稱。
# 1.1.13. SVGMargins
property SVGMargins: TBounds;
指定元件顯示的SVG的邊距。
# 1.1.14. SVGRootID
property SVGRootID: String;
指定將 SVGDocument 的哪個節點繪製為頂級 SVG 文件。使用 SVGRootID 屬性僅顯示 SVGDocument 的一部分。
# 1.1.15. WrapMode
property WrapMode: TSVGImageWrapMode
指定是否調整SVG圖形,以及設定如何調整影象大小、複製和定位SVG影象以呈現在控制元件中。
iwOriginal
: 以原始尺寸顯示 SVG。iwFit
: 控制元件矩形的最佳擬合(保持 SVG 比例 - 寬度和高度之間的比率)。此項為預設設定項。iwStretch
:拉伸SVG以填充控制元件的整個矩形。iwTile
:平鋪控制元件影象以覆蓋控制元件的整個矩形。iwCenter
: 將 SVG 在控制元件內居中。
# 1.2. 事件
事件 | 何時觸發 |
---|---|
OnClickElement | 在控制元件中單擊滑鼠時發生。 Element 參數指定滑鼠游標下的元素,如果滑鼠下沒有元素,則為 nil。FindOptions 屬性指定控制元件如何確定滑鼠游標下的 svg 元素。 |
# 2. TfxSVGImage
此控制元件可用於顯示SVG的圖形影象。 該控制元件在縮放控制元件時通過重新繪製SVG來確保影象始終具有最高解析度。
此控制元件可在表單上顯示 SVG 的圖形影象。 使用SVGDocument和SVGRootID屬性來控制影象中顯示的SVG。 此控制元件引入了幾個屬性,使得在對象的邊界內顯示SVG。
# 2.1. 屬性
屬性 | 功能說明 |
---|---|
Buffered | 此屬性用於指定是否將SVG繪製到後臺緩衝區,然後將該影象複製到前臺(預設設定)還是直接在前臺繪製SVG圖形 |
DisableInterpolation | 設定是否禁用插值演算法渲染SVG的功能 |
FindOptions | 此屬性用於幫助控制元件確定哪個svg元素位於滑鼠游標處 |
MarginWrapMode | 指定SVG的邊距如何調整大小、複製和定位 |
Opacity | 此屬性用於指定SVG影象的不透明度。如果Opacity小於1,則SVG顯示為半透明。 如果 Opacity為 0,則不顯示SVG |
Quality | 此屬性控制SVG影象的Buffered 繪畫的質量。 質量值可以取值于1(低)到 8(非常高) |
ScaleOriginal | 指定用於繪製 SVG 的比例。使用 ScaleOriginal 屬性可以在元件內放大或縮小 SVG。 這對於控制平鋪 SVG 或放大或縮小 SVG 很有用 |
SVGDocument | 指定控制元件引用的SVGDocument控制元件名稱 |
SVGMargins | 指定元件顯示的SVG的邊距 |
SVGRootID | 指定將 SVGDocument 的哪個節點繪製為頂級 SVG 文件。使用 SVGRootID 屬性僅顯示 SVGDocument 的一部分 |
WrapMode | 指定是否調整SVG圖形,以及設定如何調整影象大小、複製和定位SVG影象以呈現在控制元件中 |
# 2.1.1. Buffered
property Buffered: Boolean;
此屬性用於指定是否將SVG繪製到後臺緩衝區,然後將該影象複製到前臺(預設設定)還是直接在前臺繪製SVG圖形 。當 Opacity 小於 1 或平鋪 SVG 時,緩衝功能將始終處於啟用狀態。
# 2.1.2. DisableInterpolation
property DisableInterpolation: Boolean;
設定是否禁用插值演算法渲染SVG的功能。
# 2.1.3. FindOptions
property FindOptions: TSVGFindOptions
此屬性用於幫助控制元件確定哪個svg元素位於滑鼠游標處。
名稱 | 說明 |
---|---|
foFindDisabled | 當此選項存在時,搜索演算法將檢測禁用的 (TSVGElement.Enabled=False) 元素以及啟用的元素。當此選項不存在時,搜索演算法將只檢測啟用的元素 |
foFindGroups | 是否將分組與SVG作為元素查詢。如果此選項不存在,則只能找到組的子項,而不是組本身 |
foFindHiddenElements | 是否查詢隱藏的元素。當這個選項存在時,仍然可以找到不可見的元素 |
foFindNonFilled | 當此選項存在時,搜索演算法會將具有Brush.Kind = None 的svg元素視為沒有孔的實體對象。當此選項不存在時,帶有 Brush.Kind = None 的 svg 元素將被視為「空心」,並且只會檢測元素輪廓上的點 |
foFindNoRecursion | 當此選項存在時,查詢演算法將不會嘗試查詢元素的子元素 |
foUseBoundingBox | 當此選項存在時,使用它們的邊界框查詢元素(更快但不太準確)。當此選項不存在時,按形狀查詢元素(更慢但更準確) |
# 2.1.4. MarginWrapMode
property MarginWrapMode: TSVGImageWrapMode;
此屬性用於指定 SVG 的邊距如何調整大小、複製和定位。
使用此屬性可設定或獲取SVG 的邊距在控制元件中的顯示方式。 預設情況下,邊距會被拉伸以填充整個控制元件。如果未設定SVGMargins屬性,則 MarginWrapMode屬性無效。
iwOriginal
: 以原始尺寸顯示 SVG。iwFit
: 控制元件矩形的最佳擬合(保持 SVG 比例 - 寬度和高度之間的比率)。此項為預設設定項。iwStretch
:拉伸SVG以填充控制元件的整個矩形。iwTile
:平鋪控制元件影象顯示區域以覆蓋控制元件的整個矩形。iwCenter
: 將 SVG 在控制元件內居中。
# 2.1.5. Opacity
property Opacity: Single;
此屬性用於指定SVG影象的不透明度。如果Opacity小於1,則SVG顯示為半透明。 如果 Opacity為 0,則不顯示SVG。
# 2.1.6. Quality
property Quality: Integer;
此屬性控制SVG影象的Buffered
繪畫的質量。 質量值可以取值于1(低)到 8(非常高)。
# 2.1.7. ScaleOriginal
property ScaleOriginal: Single;
指定用於繪製 SVG 的比例。使用 ScaleOriginal 屬性可以在 TRSSVGImage 元件內放大或縮小 SVG。 這對於控制平鋪 SVG 或放大或縮小 SVG 很有用。
# 2.1.8. SVGDocument
property SVGDocument: TRSSVGDocument;
指定要在控制元件中顯示的SVG文件的名稱。SVGDocument和SVGRootID屬性精確控制要顯示的SVG文件和SVG文件層次結構分支。
# 2.1.9. SVGImgList
property SVGImgList: TRSSVGImageList;
此屬性用於設定顯示輪播圖形使用的影象列表控制元件的名稱。
# 2.1.10. SVGMargins
property SVGMargins: TBounds;
指定元件顯示的SVG的邊距。
# 2.1.11. SVGRootID
property SVGRootID: String;
指定將 SVGDocument 的哪個節點繪製為頂級 SVG 文件。使用 SVGRootID 屬性僅顯示 SVGDocument 的一部分。
# 2.1.12. WrapMode
property WrapMode: TSVGImageWrapMode
指定是否調整SVG圖形,以及設定如何調整影象大小、複製和定位SVG影象以呈現在控制元件中。
iwOriginal
: 以原始尺寸顯示 SVG。iwFit
: 控制元件矩形的最佳擬合(保持 SVG 比例 - 寬度和高度之間的比率)。此項為預設設定項。iwStretch
:拉伸SVG以填充控制元件的整個矩形。iwTile
:平鋪控制元件影象以覆蓋控制元件的整個矩形。iwCenter
: 將 SVG 在控制元件內居中。
# 2.2. 事件
事件 | 何時觸發 |
---|---|
OnClickElement | 在控制元件中單擊滑鼠時發生。 Element 參數指定滑鼠游標下的元素,如果滑鼠下沒有元素,則為 nil。FindOptions 屬性指定控制元件如何確定滑鼠游標下的 svg 元素。 |
# 2.3. 方法
# 2.3.1. IsBuffered
function IsBuffered: Boolean;
如果應該將 SVG 繪製到螢幕外點陣圖,則返回 True。
# 2.4. 用法
一個 SVG 文件元件可以作為多個 TfxSVGImage 控制元件的數據提供者。 例如,如果 SVG 文件包含一副完整的卡片,您可以使用 SVGRoot 屬性為每張卡片設定多個 TfxSVGImage 控制元件。使用 TfxSVGDocument.Lines
屬性將您的 SVG 文件「捆綁」到應用程式中。
在設計階段,可使用以下方式來使用:
- 在窗體中放置一個
TfxSVGDocument
元件。 - 設定
TfxSVGDocument
元件的FileName
屬性,指定為SVG檔案,也可以在Lines
屬性中輸入SVG的數據資訊。 - 在窗體中放置一個
TfxSVGImage
元件。 - 設定
TfxSVGImage
元件的SVGDocument
屬性為TfxSVGDocument
的名稱。
或者,如果您只想顯示 SVG 文件的一個分支,您可以將 TfxSVGImage.SVGRoot
屬性設定為您想要顯示的 SVG 元素。 如果 SVGRoot 不為空並且它不等於文件中的任何 SVG 元素,則不會顯示任何內容。
# 2.5. TfxSVGPath
為 SVG 影象元素定義路徑控制元件。 當爲 SVG 產生控制元件時使用這個類(不是使用 TfxSVGImage 元件直接繪製它們),它提供對 SVG 元素的控制元件訪問。
# 2.6. 屬性
屬性 | 功能說明 |
---|---|
SVGID | 產生此控制元件的 SVG 元素名稱 |
SVGMartix | 產生SVG變換的相關功能 |
WrapMode | 指定是否調整SVG圖形,以及設定如何調整影象大小、複製和定位SVG影象以呈現在控制元件中 |
# 2.6.1. SVGID
property SVGID: String;
產生此控制元件的 SVG 元素名稱。
# 2.6.2. SVGMartix
property SVGMatrix: TRSMatrix;
產生SVG變換的相關功能。
# 2.6.3. WrapMode
property WrapMode: TSVGImageWrapMode
指定是否調整SVG圖形,以及設定如何調整影象大小、複製和定位SVG影象以呈現在控制元件中。
iwOriginal
: 以原始尺寸顯示 SVG。iwFit
: 控制元件矩形的最佳擬合(保持 SVG 比例 - 寬度和高度之間的比率)。此項為預設設定項。iwStretch
:拉伸SVG以填充控制元件的整個矩形。iwTile
:平鋪控制元件影象以覆蓋控制元件的整個矩形。iwCenter
: 將 SVG 在控制元件內居中。
# 3. TfxSVGPath
為 SVG 影象元素定義路徑控制元件。 當爲 SVG 產生控制元件時使用這個類(不是使用 TSVGImage 元件直接繪製它們),它提供對 SVG 元素的控制元件訪問。
# 3.1. 屬性
屬性 | 功能說明 |
---|---|
SVGID | 產生此控制元件的 SVG 元素名稱 |
SVGMartix | 產生SVG變換的相關功能 |
# 3.1.1. SVGID
property SVGID: String;
產生此控制元件的 SVG 元素名稱。
# 3.1.2. SVGMartix
property SVGMatrix: TRSMatrix;
產生SVG變換的相關功能。
# 4. TfxSVGText
為 SVG 文字元素定義 TText。 當爲 SVG 產生 對像時使用這個類(不是使用 TfxSVGImage 元件直接繪製它們),它提供對 SVG 元素的控制元件訪問。
# 4.1. 屬性
屬性 | 功能說明 |
---|---|
SVGID | 產生此控制元件的 SVG 元素名稱 |
SVGMartix | 產生SVG變換的相關功能 |
SVGText | 設定文字顯示的屬性資訊 |
# 4.1.1. SVGID
property SVGID: String;
指定產生此控制元件的SVG元素名稱。
# 4.1.2. SVGMartix
property SVGMatrix: TRSMatrix;
產生SVG變換的相關功能。
# 4.1.3. SVGText
property SVGText: TSVGText;
設定文字顯示的屬性資訊。
# 5. TfxSVGPanel
此控制元件提供一個面板,用於為 SVG 產生設計時或運行時對象。 與 TfxSVGImage 元件不同,TfxSVGPanel 元件不使用畫布繪製 SVG。 相反,它產生 控制元件來繪製 SVG。TfxSVGPanel 在功能和與 SVG 規範的相容性方面受到更多限制。 限制包括不能剪裁、旋轉和縮放的控制元件可能會被剪裁。 建議僅在經過測試的 SVG 圖形上使用 TfxSVGPanel 以防止錯誤。
# 5.1. 屬性
屬性 | 功能說明 |
---|---|
ScaleOriginal | 指定用於繪製 SVG 的比例。使用 ScaleOriginal 屬性可以在控制元件內放大或縮小 SVG。 這對於控制平鋪 SVG 或放大或縮小 SVG 很有用 |
SVGDocument | 指定要在控制元件中顯示的SVG文件的名稱。SVGDocument和SVGRootID屬性精確控制要顯示的SVG文件和SVG文件層次結構分支 |
SVGRootID | 指定將 SVGDocument 中的某個節點繪製為頂級 SVG 文件。使用 SVGRootID 屬性可僅顯示 SVGDocument 中的一部分內容 |
WrapMode | 指定是否調整SVG圖形,以及設定如何調整影象大小、複製和定位SVG影象以呈現在控制元件中 |
# 5.1.1. ScaleOriginal
property ScaleOriginal: Single;
指定用於繪製 SVG 的比例。使用 ScaleOriginal 屬性可以在控制元件元件內放大或縮小 SVG。 這對於控制平鋪 SVG 或放大或縮小 SVG 很有用。
# 5.1.2. SVGDocument
property SVGDocument: TRSSVGDocument;
指定要在控制元件中顯示的SVG文件的名稱。SVGDocument和SVGRootID屬性精確控制要顯示的SVG文件和SVG文件層次結構分支。
# 5.1.3. SVGRootID
property SVGRootID: String;
指定將 SVGDocument 中的某個節點繪製為頂級 SVG 文件。使用 SVGRootID 屬性可僅顯示 SVGDocument 中的一部分內容。
# 5.1.4. WrapMode
property WrapMode: TSVGImageWrapMode
指定是否調整SVG圖形,以及設定如何調整影象大小、複製和定位SVG影象以呈現在控制元件中。
iwOriginal
: 以原始尺寸顯示 SVG。iwFit
: 控制元件矩形的最佳擬合(保持 SVG 比例 - 寬度和高度之間的比率)。此項為預設設定項。iwStretch
:拉伸SVG以填充元件的整個矩形。iwTile
:平鋪控制元件影象以覆蓋元件的整個矩形。iwCenter
: 將 SVG 在元件內居中。
# 5.2. 事件
事件 | 何時觸發 |
---|---|
OnGenerateControl | 為SVG元素產生控制元件時觸發的事件,在為SVG元素建立和初始化控制元件之後,使用OnGenerateControl事件來修改它。 |
# 5.3. 方法
# 5.3.1. ClearSVGDocument
procedure ClearSVGDocument;
此方法用於清除SVGDocument
屬性而不刪除 SVG 元素。
# 5.3.2. FindControl
function FindControl(SVGID: String): TControl;
返回具有等於SVGID
屬性的參數名稱的面板子控制元件。
# 6. TfxSVGLayout
為 SVG 組元素定義佔位符控制元件。 當爲 SVG 產生控制元件對像時使用這個類(而不是使用 TfxSVGImage 元件直接繪製它們),它提供對 SVG 元素的控制元件訪問。
# 6.1. 屬性
屬性 | 功能說明 |
---|---|
SVGID | 產生此控制元件的 SVG 元素名稱 |
SVGMartix | 產生SVG變換的相關功能 |
# 6.1.1. SVGID
property SVGID: String;
產生此控制元件的 SVG 元素名稱。
# 6.1.2. SVGMartix
property SVGMatrix: TRSMatrix;
產生SVG變換的相關功能。
# 7. TfxSVGDocument
此控制元件為SVG圖形的顯示控制元件提供訪問庫。可通過在此控制元件的FileName
屬性中指定SVG檔案的目錄地址,或者在Lines
屬性中引入SVG文字來實現引入的功能。
# 7.1. 屬性
# 7.2. 屬性
屬性 | 功能說明 |
---|---|
DefaultAspectRatio | 定義 SVG 的預設縱橫比。如果 SVG 中未使用preserveAspectRatio 屬性對縱橫比進行指定,則 SVG 將使用此預設值的縱橫比來顯示圖形。 |
DPI | 用於計算將字串長度轉換為實際值的單位係數的每英吋點數,DPI 應該在載入 SVG 之前設定。例如,如果輸入字串包含「1cm」,則 DPI 可幫助 SVG 庫計算出一釐米有多大 |
EmbedSVGAsBinary | 是否將SVG文件作為二進制嵌入到表單中。將 EmbedSVGABinary 設定為 true 以將 SVG 作為二進制嵌入到表單中。 與使用 TfxSVGDocument.Lines 屬性或從檔案載入 SVG 相比,將 SVG 嵌入為二進制通常允許更快的表單初始化 |
Filename | 定義要在設計時和運行時載入的 SVG 文件的檔名。使用 TfxSVGDocument.EmbedSVGABinary 屬性將 SVG 作為二進制數據嵌入到表單中。使用 TfxSVGDocument.Lines 屬性將 SVG 作為 XML 文字載入和嵌入 |
Lines | 定義要載入的 SVG 的 XML 文字。 使用 TfxSVGDocument.EmbedSVGABinary 屬性將 SVG 作為二進制數據嵌入到表單中。使用 TfxSVGDocument.Lines 屬性將 SVG 作為 XML 文字載入和嵌入 |
Options | 定義用於讀取、顯示和寫入文件的選項 |
PreferredLanguage | 指定用於 SVG 的首選語言。 |
# 7.2.1. DefaultAspectRatio
property DefaultAspectRatio: TSVGPreserveAspectRatio;
定義 SVG 的預設縱橫比。如果 SVG 中未使用preserveAspectRatio
屬性對縱橫比進行指定,則 SVG 將使用此預設值的縱橫比來顯示圖形。其中使用到的屬性如下:
- Align:指示是否強制統一縮放。有以下型別的選項:
saNone
:不使用強制統一縮放。saXMaxYMax
:使用強制統一縮放。將元素viewBox
的<min-x>+<width>
取值與控制元件可視視窗的最大值X對齊。將元素viewBox
的<min-y>+<height>
取值與控制元件可視視窗的最大值Y對齊。saXMaxYMid
:使用強制統一縮放。將元素viewBox
的<min-x>+<width>
取值與控制元件可視視窗的最大值X對齊。將元素viewBox
的<min-y>
取值與控制元件可視視窗的中點Y值對齊。saXMaxYMin
:使用強制統一縮放。將元素viewBox
的<min-x>+<width>
取值與控制元件可視視窗的最大值X對齊。將元素viewBox
的<min-y>
取值與控制元件可視視窗的最小值Y對齊。saXMidYMax
:使用強制統一縮放。將元素viewBox
的中點X值與控制元件可視視窗中的中點X值對齊。將元素viewBox
的<min-y>+<height>
取值與控制元件可視視窗的最大值Y對齊。saXMidYMid
:使用強制統一縮放。將元素viewBox
的中點X值與控制元件可視視窗中的中點X值對齊。將元素viewBox
的中點Y值與控制元件可視視窗中的中點Y值對齊。saXMidYMin
:使用強制統一縮放。將元素viewBox
的中點X值與控制元件可視視窗中的中點X值對齊。將元素viewBox
的<min-y>
取值與控制元件可視視窗的最小值Y對齊。saXMinYMax
:使用強制統一縮放。將元素viewBox
的<min-x>
取值與控制元件可視視窗的最小值X對齊。將元素viewBox
的<min-y>+<height>
取值與控制元件可視視窗的最大值Y對齊。saXMinYMid
:使用強制統一縮放。使用強制統一縮放。將元素viewBox
的<min-x>
取值與控制元件可視視窗的最小值X對齊。將元素viewBox
的<min-y>
取值與控制元件可視視窗的中點Y值對齊。saXMinYMin
:使用強制統一縮放。使用強制統一縮放。將元素viewBox
的<min-x>
取值與控制元件可視視窗的最小值X對齊。將元素viewBox
的<min-y>
取值與控制元件可視視窗的最小值Y對齊。
- Defer:設定縱橫比與 TSVGImage 元素一起使用時的效果。 如果此項屬性設定為 true,則會使用SVG中定義的
preserveAspectRatio
屬性(如果存在)。 如果引用的SVG中缺少preserveAspectRatio
屬性的值,則按照正常的其他規則來處理preserveAspectRatio
屬性(即忽略Defer
屬性的設定)。 對於其他SVG元素上的preserveAspectRatio
,不會使用此屬性。 - Slice:設定圖形是否為拉伸覆蓋。
# 7.2.2. DPI
property DPI: Integer;
目前屬性用於將字串長度轉換為單位英吋包含的畫素點數,DPI 應該在載入 SVG 之前設定。例如,如果輸入字串包含「1cm」,則 DPI 可幫助 SVG庫計算出一釐米有多大。
# 7.2.3. EmbedSVGAsBinary
property EmbedSVGAsBinary: Boolean;
此屬性用於設定是否將SVG文件作為二進制嵌入到表單中。此屬性設定為true時,將SVG作為二進制嵌入到表單中。 與單使用 Lines
屬性或單從FilName
屬性載入 SVG 相比,將 SVG 嵌入為二進制可以使表單更快實現初始化效果。
# 7.2.4. FileName
property Filename: String;
定義要在設計時和運行時載入的 SVG 文件的檔名。
# 7.2.5. Lines
property Lines: TStrings;
定義要載入的 SVG 的 XML 文字。
# 7.2.6. Options
property Options: TSVGOptions;
定義用於讀取、顯示和寫入文件的選項。包含以下選項:
名稱 | 說明 |
---|---|
soApplyClipping | 設定是否為繪圖使用剪下路徑 |
soCompactExport | 設定導出SVG時,是否只導出非繼承類屬性 |
soEnforceUniqueID | 為SVG元素強制應用唯一ID除非引發異常。如果此選項不存在,SVG文件將產生唯一ID(可能會破壞 URI)以確保保留唯一性 |
soExportDisabled | 設定導出 SVG 時,是否導出禁用元素和啟用元素 |
soExportOptimizedBinaryStyleProperties | 設定導出二進制 SVG 時,優化樣式屬性集(繼承和首選樣式)的流式傳輸方式 |
soExportUnknownXML | 設定導出SVG時,是否導出未知的svg/xml元素 |
soFMXRadialGradientPatch | 設定此項以獲得最佳質量 |
soSkipUnknownXML | 設定在載入 XML 時,跳過未知節點,否則在載入時會引發異常 |
soUseFillText | 在繪製文字元素時,是否使用 FillText(更快但不太相容),如果設定為False,在繪製文字元素時會將文字轉換為路徑並使用 FillPath(更慢但更相容) |
soUseLocaleForLanguage | 使用系統區域設定語言顯示元素(適用於 Switch SVG 元素) |
# 7.2.7. PreferredLanguage
property PreferredLanguage: String;
設定指定用於 SVG 的首選語言。不同的語言之間使用,
進行分隔。
# 8. TfxSVGImageList
定義一個完全由 SVG 組成的 TImageList,以實現對不同螢幕解析度和密度的緊湊圖形支援。
TImageList 元件表示一組相同大小的影象,每個影象都可以通過其索引引用。 它可以在影象列表的 Width 和 Height 發生變化時重新產生點陣圖。
在設計區域放置此控制元件后,雙擊此控制元件以打開圖形管理界面。
Default Scale Sizes
標籤頁中用於設定不同倍率下的圖示顯示大小。
Image List
中可用於管理SVG圖片列表。
# 8.1. 屬性
屬性 | 功能說明 |
---|---|
DefaultSizes | 指定不同螢幕比例的尺寸集合 |
Items | 定義圖形列表中的集合 |
# 8.1.1. DefaultSizes
property DefaultSizes: TSVGSizes;
指定不同螢幕比例的尺寸集合。使用 Width 和 Height 為每個螢幕比例產生點陣圖。 將 SVG 新增到Items集合時,其 Sizes 集合將是目前 DefaultSizes 集合的副本。
# 8.1.2. Items
property Items: TSVGCollection;
定義影象列表中的 SVG 集合,用於為其他控制元件提供影象列表使用的影象。