WPTools 9.1 - History

  • *** WPTools 9.1..... ***

    A) General

    * updated and revised manual

    * new sample code

    * many code improvements, stability and handling enhancements

    B) Installation

    * we gave up the separation in runtime (RT) and design time (DS) packages to simplify the installation because the dependency to the RT package caused some trouble in the past. If you work with a WPTools 8 package, you can compile it with WPTools 9. Just make sure the compiler symbol

    WP9 is defined. You can keep the V8 files if you remove the directory from the search path.

    If you use C++Builder and upgrade to WPTools 9 we recommend to use your existing package project and simply re-build it with WPTools 9 units.

    B) GUI improvements

    ++ we provide all new glyphs are various resolutions and with the PRO version the SVG vector source

    ++ much enhanced WPImageList. It now also supportes vertical and horizontally arranged gylphs.

    Using the property editor (doubleclick) multiple files can be loaded into the Images collection.

    Also supported now are overlay rectangles for colors.

    ++ improved InsertSymbol dialog

    * The WPTools property editor now also supports the dark

    style in the Delphi IDE ($define DARKTHEME in package options)

    * Using the global variable WPDrawRectWithBitmap_bitmap the shading can be customized (BMP or PNG)

    + improved glyph drawing code for TWPToolButtons

    + ViewOptionsEx2: wpNoBlueRectsAroundHeaderFooterWhileEditing

    + ViewOptionsEx2: wpNoBlueRectsAroundTextboxWhileEditing

    + ViewOptionsEx2: wpPaintSymbolTextObjectsUsingD2D (for Emoji)

    + EditOptionsEx2: wpDontEnterHeaderOnClick

    + EditOptionsEx2: wpDontEnterFooterOnClick

    - improvement of auto hyperlink creation

    +++ included GLYPH files, as PNG and as resource files

    C) API

    + TParagraph.SetText now returns the paragraph itself for nested assignments

    + TParagraph.Append (3 overloads) now return the paragraph itself for nested assignments

    + TParagraph.SetProperty(WPAT_Code: Byte; Value: Integer) : TParagraph;

    + function InputTextbox

    + GotoBody - to leave editing a layer, such as text box

    + new colspan parameter in TParagraph.AppendNewCell

    function TParagraph.AppendNewCell(DontCopyStyle: Boolean = FALSE;colspan:Integer = 1): TParagraph;

    + TWPRTFDataBlock.LoadFromString

    * TWPRTFDataBlock.LoadFromStream now also has FormatString paramater

    + function GetSelStartEnd

    +++ many improvements to make API more intuitive.

    D) TableProducer

    + improved data access code

    + easier creation of template in code (for scripted creation)

    + new sample application

    + property AutoSelectEditMode in TWPBlockTemplateDB

    + added in 9.1.003: navigator property editor to locate the different elements of the template


    + support for chars>$FFFF

    + support for emoji painting

    ++ support for emoji dialog (WIN + .)

    + support for multi code emoji

    + improved HTML reading and writing

    + improved RTF reading and writing

    ++ function InputSymbol

    F) Formatting

    * Usually vertical alignment only works in cells which are not separated by a page break. Now vertical bottom alignment in table rows which span 2 pages is supported if the larger cell(s) are positioned left to the aligned cell and if the aligned cell only contains one paragraph.

    + FormatOptionsEx2: wpfAutomaticHeaderOnEachPage;

    + FormatOptionsEx2: wpfNeverLookForInheritedHeaderFooterInSections

    + TWPPagePropertyRange: wpraOnGivenPageNr

    - Improvement in selection inherited section header/footer

    G) Property Grids

    ++ AppendPropertyGrid

    ++ AppendPropertyRow

    ++ checkbox inplace editors

    H) Compatibility enhancements

    + copy HTML format to clipboard - this makes it possible to paste formatted text inside Chrome

    Requires activation in property ClipboardOptions: wpcoAlsoCopyHTML

    + RTF, HTML and DocX reader converts emoji codes to symbol objects

    * the HTML reader now reads 'target' property of links

    * improved compatibility when saving RTF with nested tables

    * improved RTF reading when loading section properties


    * TWPToolBar.DrawOptions now defaults to [wptPaintThemed]

    * SelectionAsString does not modify DefaultFont anymore

    * Clicks on TextObjects are ignored if they are inside a hyperlink and OneClickHyperlink = true and object selection was not activated in EditOptions

    * InsertGraphic sets the property StreamName if InsertLink=true. (Previously this property was set to '' if the image could be loaded right away with the OnRequestImage event)

    * ViewOptionsEx - wppNoBlueRectsAroundFootnotesWhileEditing now only works for footnotes as intended.

    * when loading RTF with nested table empty paragraphs after a nested table will be ignored (can be switched off with $define DONT_IGNORE_PAR_AFTER_NESTED_TABLE)

  • *** WPTools 9.1.001 - 13.7.2019 ***

    ++ support for emoticons with skin tone modifier

    ++ support for Windows Insert Emoticon Dialog (Windows Keys + '.')

    + Load Emoji from DocX files

    + Save Emoji to DocX

    * Improvements to position of IME Editor

    ++ Saving and loading of emoticons in RTF and HTML in compatible way

    * update SymbolDialogEx - show much more emojis

    * improvementto Emoji reading from RTF - detect more emojis

    * improvement to SYMBOL writing - Emojis will now be saved as dual unicodes

    - fix to unicode writing: write high unicodes as negative numbers

    - ParentParentTable was called in CombineCellsVertHorz instead of ParentTable

    - fixed some references to System.ImageList (thanks to Delphi IDE to add it all the time)

    - fixed problem with CombineCell procedure

    - fix loading color from DocX styles (rgb instead of bgr)

    - improved button display in case PNGImage was not loaded.

    - fixed issue with Delphi 5 - compiler did not handle * command

    - fixed an issue with C++Builder, use of reserved name for variable

    * updated description on how to install in C++Builder

    + added C++Builder package project under "Demos/H) C++\Package" (see readme)

  • *** WPTools 9.1.002 - 16.7.2019 ***

    + Support for combined emoji, such as families

    + function InputSymbol can now be used with a unicode string to insert one or more emoji

    + The UNICODE text writer now also writes the unicodes for symbols

    + Emoji Dialog now directly inserts the glyphs. (This mode is activated by $DEFINE DIRECT_IME)

  • *** WPTools 9.1.003 - 18.7.2019 ***

    + TWPTableProducer now has a property editor to navigate block and column templates.

    + The TWPTableProducer can now sum values in selected columns

    - Emoji painting did not respect paragraph and page color

    + experimental mapping of "blonde female person" to just "female person" since

    the blone woman is not displayed by Windows. Activate this mode

    with WPRichText1._EnableEmojiMapping := true.

    - fix some UTF8 characters which got into some of the source units.

    - fix problem with Self.ClassType.Create as ... which required new compiler

    * some improvements to support dark theme better

  • *** WPTools 9.1.004 - 27.7.2019 ***

    + TWPRichTextLabel.Assign(Source) to copy text and special text attributes

    + support for ViewOptionsEx wpDontClearPageBackground in RTFLabel

    + RTFLabel now has CPPosition property

    + RTFLabel now supports different LayoutModes

    + RTFLabel paints page frame in Transparent mode

    + RTFLabel has new event: OnMeasureTextPage

    + RTFLabel has new properties:









  • *** WPTools 9.1.010 - 5.9.2019 ***

    - improve D2D draw so all Emoji are now drawn correctly

    * draw cache for emoji when the same are used in a row

    - fHasShadingType in RTF reader - load RTF from Excell

    - skip ansi char in emoji dialog

    - emoji dialog closed after each symbol

    * some enhancements to API and fixes for older Delphi versions

  • *** WPTools 9.1.011 - 22.9.2019 ***

    * removed abstract ancestor of TWPCustomAttrDlg and replaced with interface

    * make sure the OnChange is triggered after object and table resize

    - fix problem with Emoji dialog to require 2 returns to add icon after search

    - improve Emoji width calculation

    * SetZoomMode now resets double page view if user selects FullWidth or FullPage

    + TextCursor.InsideSelection makes it easy to check if the cursor is currently located within a selection.

    * several changes to make release of WPTools for FireMonkey possible

    * DocX writer - fix image problem

  • *** WPTools 9.1.015 - 21.10.2019 ***

    + wpDontDrawLineForSoftPageBreak in ViewOptionsEx

    * improved UTF8 handling in XML Interface TWPXMLTree

    - IncIndent was not active for numbered lists

    - improve display of "normal" layout in vertical ruler



    integrated SVG render engine for toolbar and ruler images (WPSvgLight)

    requires Delphi XE2 and later.

    For general SVG support and more options and tools,

    please get our optimized product WPSVGPro. (Available in 11/2019)


  • *** WPTools 9.1.017 - 25.11.2019 ***

    * AppendAsSection: use wpDontSetPageBreak to avoid page break

    * update preview in ParagraphPropDialog

    * LayoutPageGap now also supports left and right margin lines (see ViewOptions)

    * improvement to DocX reader

    - fix problem with Overflow in MulDiv

    - fix problem with Ruler.Heigh was not persistent

  • *** WPTools 9.1.018 - 9.12.2019 ***

    * Save EURO Sign in RTF code with selected codepage 1252 in old way as '80

    - fix format problem while typing in center/right aligned text when soft line break was used.

    - fix wrong cursor position when soft line breaks were used.

    * improved column resizing

    * improved ruler

    - TParagraph.AMerge sometimes cleared tabstops

  • *** WPTools 9.1.019 - 19.1.2020 ***

    * GetSelectionAsString was ignoring TextSaveFomat property

    + The save format string '-alwaysembed' now works consisterntly to embed images in WPT, RTF and HTM format

    usage: s := WPRichText1.AsANSIString('HTML-alwaysembed,-nobinary');

  • *** WPTools 9.1.020 - 2.3.2020 ***

    + new event OnDrawUnderline. This powerful event makes it possible to customize background and underline of

    hyperlinks, i.e to draw a background for hyperlinks, record the position

    of hyperlinks on the canvas. Since this event is triggered for all kind of underlines, it can also be

    used to dynamically change the underline color.

    - the WPT loader didn't handle NumStyle=0 as undefined like WPTools 7

    - fix problem with DeleteHyperlink

    * improvements in colspan handling

    * changed the way grid lines are painted to avoid deletion of the previously painted borders

  • *** WPTools 9.1.800 - 17.6.2020 ***

    + Support for Delphi 10.4 Syndey

    * the concept of the "Default Actions" has been slightly modified to avoid frequent installation problems:

    The image lists are now created in code and filled from a resource file. This reduces the size of the DFM file.

    + AddToImagelistFromResource utility function since ImageList.ResourceLoad does not work correctly

    - bookmarks were not closed correctly when document was ending with a table

    - AllowMultiView was not working

    - fix problem with image in cell when par uses right alignment

    + when writing tagged PDF file (PDF/A) wptools can add tags for each element. Certain validators

    are not prepaired to find table/tr/td tags so it is not possible to set a flag

    WPRichText.Memo._WPDFOnlyWriteP := true to only write the "P" tag.

    * changed type of WPToUnicodeW from WideChar to Word to fix unexpected codepage conversion

    - improvement of base64 decoder for embedded images in HTML

    - fix rare case in which RTF writer did not write corrrect line spacing

    - fix for HTML reader - ignore unit img width/height

    + compiler symbol {$DEFINE CTRLTAB_EDITFIELDMOVE} // ON: Ctrl+Tab moves backwards in form, otherwise Shift+Tab

    + Forms can use a global font / size

    + wpUseAttributeEvenIfSingleParagraph

    + TWPRTFDataBlock.RtfText.LoadFromFile now implemented

    + event RTFData.OnReacalcText (must be assigned in code to allow custom recalculation of fields and cells)

    + new component TWPRTFBalloonHint to shae a RTF formatted hint. (Assign the string to propetrty "Text")

    * some improvements to TWPPaintEngine

    * check for font 'Segoe UI Emoji' to enable color emoji printing

    + The TWPSelectedTextAttrInterface now has a propetry CharAttr to quickly read and assign CharAttr index values.

    * disable Ctrl+Enter in header/footer (cannot create new page there)

    ** WPTools FMX - several improvements

    Currently it is still possible to get a 20% discount coupon when upgrading from WPTools 7.

    It is also still possible to upgrade from WPTools 8 at a reduced price.

    In both case the purchase will also include WPTools 9.2.