Sorry, currently that is not possible.
The pdf-workbench does not have a HWND handle and therefor does not get the error messages.
A more complete workbench interface is planned for the future.
Sorry, currently that is not possible.
The pdf-workbench does not have a HWND handle and therefor does not get the error messages.
A more complete workbench interface is planned for the future.
wPDF is based on GDI, not GDI+.
It also depends that paths and world transformations are correctly encapsulated with SaveDC/RestoreDC. If this is not done, it has to make assumptions since PDF does not allow the definitiopn of a World, but just incremental changes to it. The same is true for clipping.
You can activate EMF writing for debug purposes
wPDF.DebugMode := true
You can send the created EMF to support to reprodce the problem.
The quickrepot support can be odered from our order page. But i is not for QuickReport 4.
Further more the architecture has been changed 20 years ago, and that support works different to the one in WPTools 4.
Hi,
I think I answered this per e-mail as well.
You can use the event OnTextObjectPaint event to modify the display. There is a demo installed under Demos which does it.
The update is online
There is the event OnTextObjectPaint which can be used for this. In my projects I sometimes use it event to load the image data since thic can increase the sepped when scrolling through a database with textes which also load images.
OnTextObjectPaint can be used to show
procedure TForm1.WPRichText1TextObjectPaint(Sender: TObject;
pobj: TWPTextObj; toCanvas: TCanvas; XRes, YRes, X, Y, W, H, BASE: Integer;
PageRef: TWPVirtPage; Modes: TWPTextObjectPaintModes;
const CanvasExtraAttr: TWPPaintExtraParams;
var ContinueMode: TWPTextObjectPaintResult);
begin
if (pobj.ObjType=wpobjImage) and (pobj.ObjRef=nil) then
begin
toCanvas.Brush.Color := clRed;
toCanvas.Rectangle(Rect(X,Y, X+W, Y+H));
ContinueMode := ContinueMode + [wpobjPaintRedCross];
end
else include(ContinueMode,wpObjPaintContents);
end;
Alles anzeigen
I see, the problem is an inverted mask used for that image. I check what can be done here.
Version 7 - which is current - comes with 64bit DLLs. (not OCX)
There is some complicated code in place to detect multy character emojies.
That can be disabled in 9.3 by disabling the $DEFINE DIRECT_IME. Hopefully this solves your issue.
Sure, you may send it to me.
But please use the latest V5, it introduced a repair mode a build ago which caused problems in the beginning. Those have been resolved.
Yes, it does
Dafür muss man die entsprechenden Events abfragen.
Man kann im OnKeyDown etc. IsSelected abfragen ob etwas ausgewählt ist, und dann nichts machen.
Vielleicht besser dem support (support@wptools.de) die speziellen Anforderungen schildern?
drei Schutzstufen sind nicht vorgesehen.
Man kann aber die Anbindung der Toolbar selbst herstellen oder sich dazwischenhängen über event OnToolbarIconSelection und so das Formatieren unterbinden.
Der Schutz wird für tabellen und Zellen noch feiner eingestellt über die property EditOptions
Das geht in der property Header, also
WPRichText.Header.DefaultPagesSize :=
Dafür gibt es derzeit keine Option, ppNoNewParagraphsInEditFields geht ja nur in formular feldern. Also speziell markierten MergeFeldern und dann nur in den Forumar Ausfüll Modus. (Siehe MailMerge Demo)#
wpAutoInsertRow ist für Tabellen, wenn man also am Ende einer Zeile ist und CR drückt kann automatisch eine neue Zeile erstellt werden.
>> Nachdem ich die Eingabetaste gedrückt habe, wird mein Absatz in zwei Teile geteilt (Eltern-Kind).
Diese Eltern/Kind Beziehung passiert in der Tat in Tabellen Zellen.
Man könnte aber in OnKeyPress die Return Taste #13 abfangen und =#0 setzen:
if (key=#13) and (paprIsTable in WP.ActiveParagraph.prop) then
key := #0;
Man könnte das vertikale alignment verwenden:
WPRichText1.ActiveParagraph.ASet(WPAT_VertAlignment, 2 );
Da bietet sich der Absatz Schutz an:
call.ASet(WPAT_ParProtected, 1);
Diesen schutz muss man noch aktivieren:
WP.ProtectedProp := WP.ProtectedProp + [ppParProtected];
Dies sind die flags:
TProtectProps = (
ppParProtected,
// the complete paragraph cannot be deleted --> WPAT_ParProtected
ppCheckAllText, // Trigger event for the complete text
ppAllExceptForEditFields,
// Only allow editing in edit fields. Cursor jumps between edit fields
ppNoNewParagraphsInEditFields,
// Do not allow par insertion/deletion in EditFields
ppProtected, // Text with the style afsProtected cannot be overridden
ppHidden, // Text which uses the style 'hidden'
ppIsInsertpoint, // Protect the field start or end markers (wpobjMergeField)
ppIsMergedText,
// used to be 'ppAutomatic', The oposite of ppAllExceptForEditFields
ppIsBookmark, // Protect the bookmark start or end markers (wpobjBookmark)
ppIsTextObject, // Protect the fields (such as PAGE numbers) (wpobjTextObj)
ppIsImageObject, // Protected the images (wpobjImage)
ppProtectionTextObjects, // WPTools 7: used with TWPTextObj.Mode 'wpobjWithinProtected'
ppIsInvisible, ppAllowEditAtTextEnd, // Allow typing at text end
// These flags are not checked in "function TWPRTFEngineBasis.IsProtected()"
ppProtectSelectedTextToo,
ppProtectSelectedWholeTextToo, // Also protect text if whole text is selected
// Must be combined with ppProtectSelectedTextToo
ppDontProtectAttributes,
// V5.15 - if defined it is possible to change the attributes of protected text
// ppDontCopyProtectedAttribute - obsolte, see ClipboardOptions
ppDontUseAttrOfProtected,
// do not use the charattr if the text is protected
ppNoEditAfterProtection,
// Do not allow editing at the end of the paragraph if the last char is protected
ppInsertBetweenProtectedPar,
// Allow the insertion between protected paragraphs
ppIsTextObjectCustom, // Protect the fields, but not "PAGE", "NUMPAGES"
// obsolete: ppNotUsedForSpellAsYouGo // any text which is protected is not spellchecked!
ppBookmarkKeepStructure,
// Used with ppIsBookmark. Recreate Bookmark structure
ppInsertpointKeepStructure,
// Used with ppIsInsertpoint. Recreate Field structure
ppIsHyperlink,
// Protect the hyperlink start or end markers (wpobjHyperlink)
ppNoEditBeforeProtection
// Disable insertion if protected text is first in paragraph
);
Alles anzeigen