? 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
消息对话框示例:

该项目已经开发了几年,我正在尝试不断对其进行更新。为此,我需要停止其他项目来腾出时间。
如果您喜欢这项工作,并且对您很有用,请考虑做出贡献,因此我可以花更多的时间来增强代码和功能。
非常感谢。 ?