Posts by wpsupport

    Den Fehler kann ich übrigens nicht nachvollziehen.

    Dieser code läuft ganz normal:

    Wenn Sie dynamisch ein TWPRichText auf einem parent erzeugen, nach der Erzeugung 'Loaded' aufrufen. Dies passiert bei allen aus DFM geladenen controls.


    bzw...


    Wenn Sie ein control benötigen um dynamisch ein Dokument erstellen verwenden Sie als Konstruktor

    CreateDynamic

    bzw. in C++ nach dem "new" MakeDynamic aufrufen.


    Hierbei wird dem control ein Handle zugewiesen damit die Formattier Routinen funktionieren. Dann ist kein Parent erforderlich.

    Hallo,


    es gibt eine Sourcecode Variante, diese kann über unsere Website Lizensiert werden.


    Ebenso verfügbar ist wPDF PLUS. Das kostet 150 euro zusätzlich zur standard Editon und enthält die DCU Dateien für die meisten Delphi compiler: "DCUs to replace DLL – for Delphi 5,6,7,2006,2007, 2009, 2010, XE, XE2, XE3, XE4, XE5, XE6, XE7, XE8, 10.1, 10.2, 10.3".


    Die DLL methode hat sich aber seit Jahren bewährt.


    Viele Grüsse,

    Julian

    If it does not work, this must have other reasons.


    This is the code ReadPrinterProperties executes:


    Code
    1.   Header.Landscape := aPrinter.Orientation = poLandscape;
    2.   Header.PageWidth :=
    3.     MulDiv(GetDeviceCaps(aPrinter.Handle, PHYSICALWIDTH), 1440,
    4.     GetDeviceCaps(aPrinter.Handle, LOGPIXELSX));
    5.   Header.PageHeight :=
    6.     MulDiv(GetDeviceCaps(aPrinter.Handle, PHYSICALHEIGHT), 1440,
    7.     GetDeviceCaps(aPrinter.Handle, LOGPIXELSY));


    It is always executed after PrinterSetup.

    Ja, in meinen Tests hatte ich, wie oben geschrieben, TextObjectMouseDown verwendet. Das geht auch.

    WPTools Version 9 wird noch eine Option mitbringen das Editieren in Header/Footer größtenteils zu deaktivieren .

    Komplettes deaktivieren geht ja nicht, da dann die Objekte die dort verlinkt sind, nicht mehr aktiviert werden können.

    OnGetSpecialText kommt wenn eine Seite initialisiert wird, man kann dort nicht feststellen ob dort später eine Textbox von der Fomatierroutine platziert wird.


    Das Erstellen von Text oder Objekten im Body macht an dieser Stelle keinen Sinn. Der Event ist dafür da, einen Header oder Footer auszuwählen.



    .

    If you intend to read out / modify text inside of bookmarks I recommend to use the mail merge feature (yes, that operates alternatively on bookmarks) .


    I can check your text if you send it to me. You can also save it in WPT format, there the properties are usually clearly visible.


    Ihr code läd einen Text mit mehreren Absätzen in einen einzelnen Absatz:

    RTFData.FirstPar.LoadFromStream(Stream, 'WPT');


    Richtig wäre es, den Text in die Textbox selber zu laden


    RTFData.RTFText.LoadFromStream


    Nachdem das beschriebene Problem aber nicht nachvollziehbar ist, bitte ich um Überprüfung der übergebenen Daten. Vermutlich ist dort bereits eine Parent-Child Struktur vorhanden, was dann ein Problem darstellen würde. (Für das WPTools nichts kann!)

    Beim ersten klick auf eine Textbox wird diese markiert, dafür entsteht eine Selektion im Header, wenn die Textbox dort verankert ist. Das ist auch sInnvoll, da die Textbox ja dem Header "gehört".


    Ein zweiter klick wechselt dann direkt in die Textbox.


    Wenn Sie diese Verhalten abändern wollen dann tut es diese event handler im event TextObjectMouseDown:


    Quote

    ... und ich möchte es vor Veränderung (löschen, übertippen usw) schützen, was aber auch nicht wie bei MergeFields funktioniert!


    Das TextFeld soll gar nicht wie ein merge field funktionieren, es ist was komplett anderes und hat andere Vorzüge aber auch Schwächen. Z.b. kann der Text darin nicht umbrechen. Daher verstehe ich die Kritik nicht.


    Ein Textfeld ist schlicht ein Zeichen/Symbol


    um eine Seitennummer einzufügen mit einem bestimmten Aussehen geht das dann so


    WPRichText1.CurrAttr.BKColor := WPRichText1.CurrAttr.ColorToNr(clGray,true);

    WPRichText1.CurrAttr.AddStyle([afsProtected]);

    WPRichText1.InputTextFieldName('PAGE');

    WPRichText1.CurrAttr.DeleteStyle([afsProtected]);

    WPRichText1.ProtectedProp := WPRichText1.ProtectedProp + [ppProtected];

    OnMailMergeGetText wird nicht ausgelöst denn es handelt sich nicht im ein merge Feld. Diese Felder bestehen ja aus start- und end-tags und den text (oder Bild) dazwischen kann man ersetzen oder auslesen. U.a. in dem event OnMailMergeGetText.


    InputTextField(wpoPageNumber) fügt ein TextObjekt mit dem Namen "PAGE" ein. Diese Feld kann man im event TextObjGetTextEx sowohl mit Text belegen als auch rendern.


    Am einfachsten wäre es aber dem Textfeld einfach einen grauen Hintergrund zuzuweisen, wie es auch bei normalem text möglich ist.

    Generell werden einzelne Buchstaben die in einem Absatz "platz haben" sofort eingefügt. Wenn der Absatz (oder text in Zelle) umbricht muss neu formatiert werden, das ist komplex und kann etwas dauern, aber normalerweise nicht 1 sec. Generell ist WPTools eine der schnellsten WordProzessor Komponenten.


    Damit man schneller tippen kann, verwendet das TWPRichText einen puffer welcher beim Tippen Zeichen aufnimmt. Dieses Verhalten wird durch das $DEFINE USE_INPUTBUFFER in WPCTRMemo.pas aktiviert und kann somit durch Abschalten dieses symbols deaktiviert werden.

    Danke für die RTF Dateien.


    In diesen sind die Elemente gespeichert, z.b. Word wird sie aber nicht anzeigen da es proprietäre Erweiterungen sind.


    Sie können mit wPDF nach PDF ausgeben, dann wird es so wie im Editor erscheinen egal wo and wann Sie die PDF wieder anzeigen.

    Hallo,


    aufgrund des Konzepts von WPTools müsste eigentlich alles was auch im Editor angezeigt wird, auch beim Ausdruck erscheinen.


    Es kann aber sein, dass dazwischen ein Save&load stattfindet - hier könnten Elemente verloren gehen, die von Speicherformat nicht unterstützt werden. WPT würde alles speichern.


    wpraNotOnFirstAndLastPages macht eigentlich keinen Sinn, wenn Sie sowieso den event OnGetSpecialText verwenden, da würde ich immer wpraNamed nehmen.


    Wird denn OnGetSpecialText beim Ausdruck korrekt, also mit der richtigen Seitennummer aufgerufen? Wie ist die Anzeige?