digao-dalpiaz / DzHTMLText

Delphi and Lazarus HTML Label component
MIT License
194 stars 53 forks source link

Obsolete tags #90

Closed antonydanby closed 7 months ago

antonydanby commented 7 months ago

We are using this component right throughout our firemonkey handheld application. This application is fed from a whole heap of SQL Server procs via a REST server middle tier.

We have been using TDzHTMLText since v4 and we have loads of T:, TF: and some FLOAT: statements. We started to convert all of these to use but found we have to use all sorts of x and worse still y co-ordinate calculations in SQL Server involving ROW_NUMBER OVER statements. These are proving to be very painful and time consuming.

We can see you have these marked as:

OBSOLETE TAGS: T:123 - Tab - left margin offset TF:123 - Tab with continuous lines aligned FLOAT:X,Y[,Width] - Floating div area

From our perspective we can see a valid use case for keeping these tag types in that we can quickly display formatted text using these tags in combination with others like L, C, R and BR without needing to revert to using ROW_NUMBER OVER statements. This reduces the complexity of our code.

We were wondering if we could appeal to your good nature and ask if you would leave these tags in permanently as part of the valid tags to use and not as tags that are obsolete or deprecated.

Thank you

digao-dalpiaz commented 7 months ago

Hello,

The tags T, TF, and FLOAT have been marked as obsolete because with the implementation of the new DIV tag, formatting and alignment of content work better.

But don't worry, the obsolete tags will continue to work normally. They have only been indicated as obsolete in the documentation to make it clear that it is better, if possible, to use the DIV tag.

For example, internally, when you use a FLOAT tag, the component converts it to a DIV tag with absolute position X and Y.

About the T and TF tags, there is no internal conversion, as they work in their own way. However, these tags do not provide features such as alignment, for example. This is available in the DIV tag, which provides the same type of alignment.

If you use a tabulation tag (T or TF), and the text before the tabulation exceeds the position of the tabulation, it will be overwritten, resulting in a bad appearance in the text. With the DIV tag, this does not happen, as it is able to resize or even break lines internally when you want to have a fixed width.

In any case, in summary, don't worry because the T, TF, and FLOAT tags will continue to work in the component.

digao-dalpiaz commented 7 months ago

Just an important note:

From our perspective we can see a valid use case for keeping these tag types in that we can quickly display formatted text using these tags in combination with others like L, C, R and BR without needing to revert to using ROW_NUMBER OVER statements. This reduces the complexity of our code.

Note that in this new version of the component it is not possible to use alignment (<C>, <R>) combined with a tab <T> or <TF>

antonydanby commented 7 months ago

Rodrigo,

Thank you so much for your answer. We will sort our T and TF tags to work with strict HTML and will try to use DIV for new HTML requirements. This makes our conversion from version 4.2 to the latest version so much easier. Once again thank you