Seitennummer grau hinterlegen

  • Hallo,

    mit

    Code
    txtObj := RTFRichtext.InputMergeField(fnam, inhalt);

    füge ich ein Mergefield ein, welches im Text grau hinterlegt ist weil so in AutomaticTextAttr festgelegt.

    Ein mit

    Code
    txtObj := RTFRichtext.InputTextField(wpoPageNumber);

    erzeugtes Textfeld mit Seitennummer hat keinen grauen Hintergrund, ich möchte aber dass es optisch genau so aussieht wie das Mergefield!

    OnMailMergeGetText, wo ich Zugriff auf Content hätte, wird für dieses Textfeld nicht gefeuert, gibt es einen Trick?

    Ciao

    Stefan

    Einmal editiert, zuletzt von skoschke (3. Mai 2019 um 08:05)

    • Offizieller Beitrag

    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.

  • Zitat

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

    Das versuche ich seit Stunden ;-)

    Wie bekomme ich einem Textfeld einen Hintergrund zugewiesen?

    Ich habe es mit Styles versucht, ParentPar.AsetColor (was die gesamte Zeile mit der Nummer gefärbt hat) usw...

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

    Ciao

    Stefan

    • Offizieller Beitrag
    Zitat

    ... 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];