Posts by wpsupport

    It happens often that despite calling Invalidate the control is not painted.

    This is usually the case when the Invalidate routine is called in the context of user input.

    To solve the issue you need to set a flag in "Invalidate" and as soon as the application is idle call Invalidate.

    This code can be used to create a procedure which is called when the application is Idle:

    This is the message handler which is called when in the Idle cycle:

    1. procedure TCustomTool.IdleMessageHandler(const Sender: TObject; const Msg: System.Messaging.TMessage);
    2. begin
    3.   if FNeedInvalidate then
    4.   begin
    5.     FNeedInvalidate := false;
    6.     InvalidateRect(RectF(0,0,Width,Height));
    7.   end;
    8. end;

    I hope this is helpful,


    Die TWPToolbar hat eine property ButtonHeight welche man an die aktuelle Auflösung anpassen kann.

    Wenn Sie dann auch die erneuerte TWPImageList verwenden die teil von WPTools 9.1 ist, dann können automatisch Icons in höherer Auflöung geladen werden.

    Bei WPTools 9.1 reicht es oft bereits aus, die unit WPICONS dem Projekt hinzuzufügen. Dann werden die Icons als Resource geladen. Eine WPImageList instanz wird dann automatisch erstellt.


    if you have a linked image this effect is normal. The images are linked to a file and stay that way.

    You get around this by using the OnRequestHTTPImage event and there set the image Filename and Streamname to ''

    You can also use SaveToFile( filename, false, 'RTF-AlwaysEmbed')



    Ein TWPRichText ist nie "echt" transparent. Die Transparenz wird simuliert indem der Hintergrund zwischengespeichert wird und vor der Ausgabe des Textes ausgegeben. Mit ViewOptionsEx := [wpDontClearPageBackground] wird der Seitenhintergrund nicht gezeichnet, sofern man einen solchen mittels LayoutMode ausgewählt hat. Aus technischen Gründen führt die Wahl von Transparenz dazu, dass auch die Scrollbar verschwindet. Aus diesem Grund kann es sinnvoll sein, anstatt Transparenz zu verwenden, selber einen passenden Hintergrund in das TWPRichText zu zeichnen. Dafür bietet sich das Event OnPaintDesktopBackground an.

    Ein TWPRichText label hat kein Fenster und ist daher schon von Natur aus "echt" transparent. Allerdings kann es dadurch nicht den Focus erhalten und bekommt keine Windows messages. Ist daher nicht vergleichbar.

    Sie müssen command aufrufen mit dieser command id:

    COMPDF_RenderDrawobjects = 522; // Renders the objects. IntPar is the mode.

    // Returns the number of rendered objects. (Use IntPar=128 to count only)

    // This are the bits:

    // 1 : RenderAnnotations - Render the annotations which are not widgets and not Popups

    // 2 : RenderWidgets - Render widgets annotations/

    // 4 : RenderPopups - Render popup annotations

    // 8 : DeleteRenderedObjects and Annotations

    // 16 : UseOriginalDataForRendering (use originla field values for widgets)

    // 32 : UnderPageLayer - Render the draw objects under the page

    // 64 : OverPageLayer - Render the draw objects over the page (or document draw objects)

    // 128: Do not render or delete. Just count how many objects would be affected

    Thanks for your input.

    There is now a new version which also solves most of the issues you reported so far.

    Now the toolbar icons are updated when the user moves the cursor and double- and tripple click are working. There is now a popup menu fur regular text a different one for embedded graphics, just as in the VCL edition.

    The setup now also includes an executable for OSX.

    Please note that the 3. and 4. COMPDF_GetTextFilterRect parameters are X1 and Y1 values, not Width and Height.

    I used this code to test:

    *** 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