? Digao Dalpiaz電報新聞
巴西葡萄牙視頻。請在YouTube視頻選項上選擇自動翻譯。
11/14/2024(版本6.6)
10/14/2024(6.5版)
03/26/2024(版本6.4)
03/25/2024(版本6.3)
03/24/2024(版本6.2)
02/26/2024(版本6.1)
02/23/2024(版本6.0)
<FLOAT>標籤(作為過時的標籤)。02/20/2024(版本5.3)
Lib{Platform}{Config} 。請查看您的圖書館路徑。01/21/2024(版本5.2)
<T>和<TF>標籤。01/12/2024(版本5.1)
01/05/2024(版本5.0)
| ❗組件破壞變化 |
|---|
標籤<T> , <TF>和<FLOAT>已刪除 |
請使用新標籤<DIV> |
( <T>和<TF>在版本5.2中重新引入, <FLOAT>在6.0版中重新引入) |
<DIV> )<T> , <TF> , <FLOAT> ) -請使用新的div標籤<H> )<STYLE> )<NBR> tag或自動啟動禁用時自動包含空格char<BR>現在支持參數以指定新段落或連續行是<PI> - 段落縮進12/05/2023(版本4.4)
12/04/2023(版本4.3)
06/19/2023(版本4.2)
04/26/2023(版本4.1)
04/11/2023(版本4.0)
04/07/2023(版本3.11)
<LINE>標籤<VALIGN>標籤<OFFSET>標籤01/02/2022(版本3.10)
11/03/2021(版本3.9)
09/12/2021(版本3.8)
08/05/2021(版本3.7)
06/13/2021(版本3.6)
04/21/2021(版本3.5)
<LI>在使用HTML代碼同一行中使用多個項目時,標籤不正確的重疊繪畫。03/31/2021(版本3.4)
03/21/2021(版本3.3)
Single而代替Integer類型,避免了不正確的帆布邊界圖)。03/13/2021(版本3.2)
03/05/2021(版本3.1)
02/10/2021(版本3.0)
#或$ 。12/18/2020(版本2.11)
11/03/2020(版本2.10)
<sup>和<sub>標籤。10/31/2020(版本2.9)
10/27/2020(版本2.8)
10/27/2020(2.7版)
10/26/2020(版本2.6版本格式恢復為原始版)
10/26/2020(版本2.05)
10/18/2020(版本2.04更改版本格式)
10/14/2020
08/30/2020(版本2.3)
08/03/2020
08/02/2020
07/31/2020(版本2.2)
<LS> 。07/30/2020(版本2.1)
實施了新的線(TSTRINGS)屬性並刪除了文本已發布的屬性。
實施文本(String)公共屬性作為新行屬性的快捷方式。
更改線(整數)屬性名稱為LineCount。
| ❗組件屬性更改。數據丟失的風險! |
|---|
為了保留項目的tdzhtmltext文本字符串屬性內容,在打開Delphi的項目之前,您需要在DFM文件上手動更改屬性。打開包含TDZHTMLTEXT對象的DFM文件(使用文本編輯器),然後按照以下示例替換:
object DzHTMLText1: TDzHTMLText
// FROM:
Text = ' Line 1 ' # 13 # 10 ' Line 2 ' # 13 # 10 ' Line 3 '
// TO:
Lines.Strings = (
' Line 1 ' # 13 # 10 ' Line 2 ' # 13 # 10 ' Line 3 ' )
end如果要保留舊文本屬性,請在此處下載舊版本:tdzhtmltext v2.0
07/27/2020(版本2.0)
在處理令牌的所有方法中重構。
僅用於視覺構造的對像中存儲器的使用的改善。為此,內部屬性已移至新類。
使用標籤標籤時實現了完整的對齊支持。
修復了多個空間奇怪的行為在線路中斷。
當線上只有一個單詞並且極限少於它時修復,這導致該單詞跳過線路。
新的標籤<float> ,允許您創建具有自由位置內容的浮動面板。 ? ? ?
實現的類功能可以逃脫和取消ESCAPE HTML文本。
在HTML文本的內部閱讀中包括& ( & )unescape。
新標籤<spoiler>和<sdetail> ,創建封閉/擴展的Div。 ? ? ?
刪除了tdhlinkdata並更改了鏈接事件簽名! ! !有必要調整實現的方法以兼容。
刪除:
請使用New GetSelectedLink屬性和LinkRefs列表(不再有鏈接ID的概念! )。
07/15/2020
07/10/2020
05/24/2020
<ul> , <ol> , <li> )<nbr>標籤以避免有#13#10序列時的線路破裂,因為該序列會自動通過組件在HTML線路中轉換。05/03/2020
04/27/2020
<imgres>標籤時,已實現OnreTrievimgres事件以手動加載圖像。04/26/2020
04/10/2020
03/09/2020
03/01/2020
02/15/2020
2019年6月3日
2019年2月21日
2019年2月11日
2019年2月8日
組件重命名。在安裝此版本之前,請完全卸載以前的版本。
由於其他商業組件衝突,該組件被重命名。
2019年2月7日
此視覺組件允許您使用HTML代碼中使用的幾乎相同的語法在標籤中指定格式的文本。
<DIV:{DIV_PARAMS}></DIV> - Div Area
DIV_PARAMS: (split by ",")
[x=nnn] --> when defined, div will be floating
[y=nnn] --> when defined, div will be floating
[width=size|size#|size-|perc%|full] - when not specified, will be AutoWidth
[height=size|size#|size-|perc%|full|line] - when not specified, will be AutoHeight
Width and Height params:
size = Fixed External Size
size# = Fixed Internal Size
size- = Remaining parent div size minus this size (only works when AutoWidth/AutoHeight of parent div is disabled)
perc% = Percent size of parent div (only works when AutoWidth/AutoHeight of parent div is disabled)
"full" = Remaining size of current line (only works when AutoWidth/AutoHeight of parent div is disabled)
"line" = Current line height (only in Height param)
[maxwidth=nnn] --> Max width when using auto width (when width not specified)
[margin[_left|_top|_right|_bottom]=nnn] --> Spacing between border line and text
[thick[_left|_top|_right|_bottom]=nnn] --> Border line size
[pad[_left|_top|_right|_bottom]=nnn] --> Spacing between outter limit and border line
[lncolor[_left|_top|_right|_bottom]={COLOR_VALUE}] --> Border line color
[radius=nnn] --> Corner radius of border line (when specified, thick and lncolor will not support left/top/right/bottom values)
[color={COLOR_VALUE}] --> Color inside the border line
[outcolor={COLOR_VALUE}] --> Color outside the border line
[align=left|center|right] --> Horizontal overall alignment
[valign=top|center|bottom] --> Vertival overall alignment
[behind] --> When floating, the div will be draw behind the text, otherwise will be draw in the front of the text.
[holdprops] --> When entering a div, some text properties are reseted. Use "holdprops" param to keep these properties.
Reseted properties: Offset, Background color, Horizontal and Vertical text alignment, line and paragraph spacing, and Paragraph Indent.
<A[:target]></A> - Link
<B[:off]></B> - Bold
<I[:off]></I> - Italic
<U[:off]></U> - Underline
<S[:off]></S> - Strike out
<FN:abc></FN> - Font Name
<FS:123></FS> - Font Size
<FC:{COLOR_VALUE}></FC> - Font Color
<BC:{COLOR_VALUE}></BC> - Background Color
<H:1..6></H> - Header predefined style - font size (calculated according to component main font size) and bold style
<STYLE:name></STYLE> - Custom style, according to CustomStyles collection property (name must be the same as Custom Style "Ident" property - case insensitive)
<BR[:cont]> - Line Break (Use "cont" parameter to a continous line. If parameter not specified, a new paragraph will be considered)
<NBR> - Prevent new line if used after a line break sequence
<L></L> - Align Left
<C></C> - Align Center
<R></R> - Align Right
<IMG:index> - Image from ImageList where 'index' is image index
<IMGRES:name> - PNG image from Resource where 'name' is the resource name
<UL></UL> - Unordered list
<OL></OL> - Ordered list
<LI></LI> - List item
<SPOILER:name[,exp]></SPOILER> - Spoiler Title (use "exp" param to show spoiler already expanded)
<SDETAIL:name></SDETAIL> - Spoiler Detail
<LS:aaa[,par=bbb]></LS> - Line spacing where 'aaa' is the height in pixels, and 'bbb' is the height when a new paragraph (plus original line space)
<PI:nnn></PI> - Paragraph Indent - left margin of a new paragraph in pixels
<SUP></SUP> - Superscript
<SUB></SUB> - Subscript
<LINE:[width=123|full],[height=456],[color={COLOR_VALUE}],[coloralt={COLOR_VALUE}]> - Horizontal single or dual color line
"full" option only works when AutoWidth of parent div is disabled
Default values:
width = 100
height = 1
color = Current font color
coloralt = No value (specify a color to draw dual color line, otherwise it will draw a single color line)
<VALIGN:top|center|bottom></VALIGN> - Aligning content vertically to the line
<OFFSET:[top=123],[bottom=456]></OFFSET> - Content margin spacing
Offset margins are memorized if a new offset tag is specifyed without same parameter name
OBSOLETE TAGS:
<T:123> - Tab - left margin offset
<TF:123> - Tab with continuous lines aligned
<FLOAT:X,Y[,Width]></FLOAT> - Floating div area
----------
* COLOR_VALUE - clColor(VCL)|Color(FMX)|$00GGBBRR|#AARRGGBB|#RRGGBB
* When FMX, all sizes (TPixels) use the "." notation as a decimal separator
標籤符號是不敏感的,因此您可以使用
<B>Text</B>或<b>Text</b>。
標籤必須遵循打開的層次結構:
<b><i>text</i></b> =正確<b><i>text</b></i> =錯誤
如果您使用的是Lazarus:轉到包裝菜單;打開軟件包文件(.lpk);找到lazdzhtmltext.lpk;打開包裹;編譯並安裝它。
LibWin32Release 。支持Delphi Xe3..delphi 12
tpixels表示VCL中的
Integer,或在FMX中Single。
AutoBreak: Boolean =啟用時,組件會自動將換行順序轉換為新線路。如果您不希望在特定序列中斷裂,則可以在斷路序列後使用<NBR>標籤。
AutoHeight: Boolean =自動設置控制高度時,文本屬性更改時
AutoWidth: Boolean =自動設置控制寬度時,文本屬性更改時。如果您使用的是自動化,除非在文本中指定換行線或在MaxWidth屬性中指定的值,否則文本將永遠不會包裹在新行中。
AutoOpenLink: Boolean =在單擊時自動打開鏈接,而無需設置事件onLinkClick。
Borders: TDHBorders =定義Left , Top , Right和Bottom子特工,指定文本區域邊緣。
Color: TColor =控制的背景顏色。在FMX環境中, Null表示透明背景。
CustomStyles: TDHHeaderStyles =用於與標籤<H:ident>一起使用的標頭樣式的集合,其中ident是集合列表中標頭樣式的識別屬性。
Font: TFont =確定基本字體。當未在文本上指定標籤時,使用此基本字體。
Images: TCustomImageList =使用<img>標籤時,應設置此屬性以指定圖像存儲的圖像庫。在FMX環境中,此屬性僅使用Delphi XE8或更高版本可用。
LineCount: Integer =根據控制的邊界返回文本總線。此屬性是只讀的。
Lines: TStrings =您要在標籤控件上顯示的文本。您可以使用<BR>標籤破壞線路。當啟用AutoBreak屬性時,默認行斷路序列會斷開線路。
LineSpacing: TPixels =指定整體文本中的默認行間距。您可以使用<LS>標籤來確定特定線路的線間距。
LineHorzAlign: TDHHorzAlign (haLeft, haCenter, haRight) =允許您指定行中每個元素的水平對齊。默認值為haLeft 。
LineVertAlign: TDHVertAlign (vaTop, vaCenter, vaBottom) =允許您指定行中每個元素的垂直對齊。該屬性僅在元素在同一條線上具有不同的高度時會效果。默認值為vaTop 。
ListLevelPadding: TPixels =使用HTML列表標籤時,確定像素中每個列表級別的寬度。
MaxWidth: TPixels =使用自動化屬性時指定文本的最大寬度。
Offset: TDHOffset =設置每行的頂部和底部偏移量(以像素為單位)。使用<offset>標籤時,它將根據指定的屬性(頂部和/或底部)替換此設置。
OverallHorzAlign: TDHHorzAlign (haLeft, haCenter, haRight) =確定總體文本水平對齊。此屬性僅在AutoWidth為false時會產生效果。
OverallVertAlign: TDHVertAlign (vaTop, vaCenter, vaBottom) =確定整體文本垂直對齊。此屬性僅在AutoHeight錯誤時會效果。
ParagraphCount: Integer =返回文本的總段落。此屬性是只讀的。
ParagraphIndent: TPixels =一個新段落的默認左側邊距。
ParagraphSpacing: TPixels =指定整體文本中的默認段落間距。段落間距被添加到原始線間距中。您可以使用<LS>標籤來確定特定行的段落間距。
StyleLinkNormal: TDHStyleLinkProp =屬性在未由鼠標選擇時格式化鏈接的屬性。
StyleLinkHover: TDHStyleLinkProp =屬性在由鼠標選擇時格式化鏈接。
SyntaxErrors: TDHSyntaxErrorList (public)=語法錯誤列表。右鍵單擊組件,然後在設計時選擇“顯示語法錯誤”以顯示語法錯誤。當任何語法誤差時,在設計時間時,組件的邊框將用紅色繪製。
Text: string (public)=此屬性是Lines屬性的快捷方式。在運行時,您可以直接讀取和編寫此屬性,但是該組件將文本存儲在Lines屬性中。
TextHeight: TPixels =返回總文本高度。此屬性是只讀的。
TextWidth: TPixels =返回總文本寬度。此屬性是只讀的。
Transparent: Boolean (僅在VCL中)=啟用組件透明度。警告:使用鏈接時,重新繪製組件時會閃爍。
procedure OnLinkEnter (Sender: TObject; Link: TDHBaseLink);當鼠標進入鏈接區域時,該事件將發射
procedure OnLinkLeave (Sender: TObject; Link: TDHBaseLink);當鼠標離開鏈接區域時,該事件被解僱
procedure OnLinkClick (Sender: TObject; Link: TDHBaseLink; var Handled: Boolean);當鏈接被鼠標左鍵點擊時,該事件將發射。您可以使用處理的VAR繞開自動啟動屬性(方法啟動時處理的值是錯誤的)。
procedure OnLinkRightClick (Sender: TObject; Link: TDHBaseLink; var Handled: Boolean);當鏈接被鼠標右鍵點擊時,將發射此事件。您可以使用處理的VAR繞開自動啟動屬性(方法啟動時處理的值是錯誤的)。
procedure OnRetrieveImgRes (Sender: TObject; const ResourceName: string; Picture: TAnyPicture; var Handled: Boolean);如果您使用的是<imgres>標籤,則此事件將在每個圖像標籤上發射,允許您以任何圖像格式手動加載圖像,並將其分配給圖片對象。確保設置Handled := True 。不使用此事件會導致組件通過名稱自動從應用程序資源加載圖像,並且在使用VCL環境時必須以PNG格式加載。在FMX環境中,您可以使用Delphi支持的任何圖像格式。
例子:
procedure TForm1.DzHTMLText1RetrieveImgRes (Sender: TObject; const ResourceName: string;
Picture: TAnyPicture; var Handled: Boolean);
var JPG: TJpegImage;
begin
if ResourceName= ' TEST ' then
begin
JPG := TJpegImage.Create;
try
JPG.LoadFromFile( ' C:Test.jpg ' );
Picture.Assign(JPG);
finally
JPG.Free;
end ;
Handled := True;
end ;
end ; function IsLinkHover : Boolean;當鼠標通過鏈接時,此功能將返回true
function SelectedLink : TDHBaseLink;此功能返回所選鏈接的對象。當鼠標越過它時,選擇鏈接。如果沒有選擇鏈接,則此屬性nil 。
procedure Rebuild ;此方法重建所有內部文本元素以使組件準備繪畫。如果您想獲得一些計算的屬性,例如TextWidth和TexTheight,請致電此方法。否則,您無需直接調用此過程。
procedure BeginUpdate ;增量內部更新信號量,因此,雖然參考計數大於零,但是當更改屬性(例如更改文本或字體屬性)時,組件不會自動重新粉刷。
procedure EndUpdate (ForceRepaint: Boolean = True);減少內部更新信號量,因此,當參考計數為零時,如果ForceRepaint參數為真,則該組件將重新粉刷HTML文本。
beginupdate/endupdate示例:
DzHTMLText1.BeginUpdate;
try
DzHTMLText1.Text := ' Text <b>test</b> 1234 ' ;
DzHTMLText1.Font.Color := clRed;
DzHTMLText1.Font.Size := 20 ;
finally
DzHTMLText1.EndUpdate;
end ;請勿使用
Lines.BeginUpdate/Lines.EndUpdate。這些方法不受組件控制。
有兩種使用鏈接標籤的方法:
聲明內部鏈接和文本確實顯示:
<a:www.google.com>Open Google Search</a>
這將顯示:打開Google搜索
只是使用顯示文本:
<a>www.google.com</a>
這將顯示:www.google.com
您可以將任何文本用作內部鏈接代碼。然後,您可以在鏈接事件中處理此代碼,讀取
Link參數。
請勿在
<a>標籤內使用鏈接標籤(<a>,<spoiler>,<sdetail>)!
此標籤允許您創建一個鏈接和一個詳細信息,當鼠標單擊鏈接上時,將自動擴展或折疊細節。
要創建擾流板鏈接: <spoiler:name>This is the spoiler link text</spoiler>
要創建細節div: <sdetail:name>This is the detail div that will be expanded when the spoiler link is clicked.</sdetail>
擾流板名稱不敏感。
您可以在鏈接事件中處理擾流板鏈接。使用
Handled屬性可以繞過擴展/崩潰行為。
您可以在擾流板細節div中使用其他擾流板。
它可以創建指向單個細節div的多個鏈接,並且可以創建一個指向多個細節divs的單個鏈接。
請勿在
<spoiler>標籤內使用鏈接標籤(<a>,<spoiler>,<sdetail>)!
TDHBASELINK有兩個兒童課程:
<a>標籤創建的鏈接。<spoiler>標籤創建的擾流板。特性:
Kind: TDHLinkKind = link Kind(lklinkref或lkspoiler)。
LinkRef: TDHLinkRef =引用link類是a a <a>標籤時tdhlinkref對象。
tdhlinkref對象:
Target: string =指定在<a:target>標籤的鏈接目標。Text: TStringBuilder =鏈接顯示文本指定在<a:target>Display Text</a>內部文本。 Spoiler: TDHSpoiler =引用link類是<spoiler>標籤時TDHSpoiler對象。
TDHSpoiler對象:
Name: string =擾流板名稱。Expanded: Boolean =如果擾流板的詳細信息擴展。鏈接事件
您可以使用OnLinkClick / OnlinkRightClick / OnLinkenter / OnLinkleave事件檢索此對象。您也可以致電GetSelectedLink或讀取LinkRefs和Spoilers列表。
您可以使用標籤:
<IMG:index>顯示tomagelist組件的圖像。只需將圖像屬性分配給圖像庫即可。然後使用index參數指示成像庫組件中圖像的索引。在FMX環境中,僅使用Delphi XE8或更高版本可用。
<IMGRES:name>顯示資源的圖像。將圖像包括在應用程序資源中,然後使用name參數指示資源的名稱。在VCL環境中,圖像必須為PNG格式。在FMX環境中,允許所有受支持的圖像。重要的是:僅在運行時顯示圖像。
例子:

在此示例中,圖像標籤應為<imgres:test>

上圖的語法:
< div:
margin = 40,
thick = 5,
pad = 20,
lncolor = clGray,
color = clWhite,
outcolor = clLime
> < bc:clYellow > Some text inside a div </ bc > </ div >該組件基於DIV區域。這意味著組件的主要區域是DIV,您可以插入子div,而在Divs內部插入另一個Div,依此類推。 DIV標籤允許您使用對齊,顏色,邊界,邊距進行工作,甚至可以使用多個DIV製作表。
當未指定任何位置時,DIV標籤可能會使用特定的X和Y位置浮動,或使用到當前文本的位置。
請,請參閱可用標籤中的所有可能參數。
您可以使用兩個標籤標籤:
<t:nnn> = =允許您精確地將文本定位在組件左邊框的像素中的“ nnn”位置上。如果文本包裹到新線路,則將其返回在組件的左邊框處對齊。<tf:nnn> =與上述相同,但是如果文本包裹到新行,它將以與選項卡啟動的第一行相同的位置對齊。此標籤將產生更好的視覺文本對齊。 如果要在文本中顯示字面特殊字符,只需鍵入HTML代碼:
& = &< = <> = >有兩個類功能可以處理HTML字符:
class function EscapeTextToHTML ( const aText: string): string;
class function UnescapeHTMLToText ( const aHTML: string): string;由於此組件不是完整的HTML語言調試器,因此無需逃脫其他特殊字符。因此,例如,例如強調或其他標誌等角色,您必須正常使用它們。
如果您的組件寬度小於文本,則根據某些特定的字符將破壞新線路。這些字符是: (空間), 和/ 。例如,如果您鍵入一些路徑,則將條視為單詞中斷,那麼如果它太大,則應該是將此路徑分為新線路的一種方法。
當您鍵入中文,日語或韓國角色時,這種行為會大不相同。在這種情況下,該組件將考慮任何字符作為完整的單詞。
所有測量結果將根據DPI設計(總是96像素)計算,並應用於當前的監視器DPI。示例:如果將標籤寬度指定為60像素,則在96 dpi,在120 dpi監視器上顯示文本時,標籤寬度將更大(75像素)。
為了使DPI自動縮放正確工作,必須使用Windows 8.1或更高的Windows,以及Delphi 10或更高或Lazarus。如果使用delphi以前的版本,則將禁用縮放率。如果使用Windows先前版本,則縮放將基於默認的監視器DPI,而不是基於應用程序當前監視器。
在FMX環境中,自動縮放由Fire Monkey Framework控制,自動縮放整個表單佈局及其組件。
當使用<fc:color>或<bc:color>之類的標籤時,您可以指定這些顏色符號選項:
$00BBGGRR ,其中bb =藍色,gg =綠色,rr =紅色。clColor >示例:clblack或clwindowText。#AARRGGBB ,其中AA = Alpha Chanel,RR =紅色,GG =綠色,BB =藍色(在VCL中使用時,Alpha Channel僅支持FF值)。Color - >示例:黑色(FMX TALPHACOLOR不支持系統顏色)。#RRGGBB ,其中rr =紅色,gg = green,bb = blue(在FMX中使用時,Alpha通道將設置為FF -solid)。您可以在使用FMX組件時指定VCL符號,甚至在使用VCL組件時使用FMX表示法。 HTML表示法也是如此。
請查看我的消息對話框組件,該組件使用此HTML組件顯示格式的消息。該組件將使管理應用程序消息變得更加容易。
https://github.com/digao-dalpiaz/dam
消息對話框示例:

該項目已經開發了幾年,我正在嘗試不斷對其進行更新。為此,我需要停止其他項目來騰出時間。
如果您喜歡這項工作,並且對您很有用,請考慮做出貢獻,因此我可以花更多的時間來增強代碼和功能。
非常感謝。 ?