"ShowMergeFieldNames" Rechteck (Farbe / Werte)

  • Hallo,

    Hintergrund: Ich habe "ShowMergeFieldNames" auf True gesetzt. Dadurch werden die Fields in einem grauen Rechteck angezeigt. Über eine Checkbox kann man zwischen Field- und Werte-Ansicht wechseln:

    Code
    WPRichText1.ShowMergeFieldNames := (not CheckBox1.Checked);if (CheckBox1.Checked)then WPRichText1.MergeText;

    Hierzu habe ich ein paar Fragen:

    1) Ist es möglich auch die Werte in diesem grauen Rechtecken anzuzeigen (natürlich nur in der UI, nicht im Print)?
    2) Kann man die Farbe des Rechtecks ändern?
    EDIT: 3) Ist es möglich die Display Names in diesem grauen Rechtecken anzuzeigen?

    Hinweis: Ich arbeite ohne "TWPMMDataProvider" direkt mit "OnMailMergeGetText".

    Ich habe bereits unter folgendem Link gesucht, jedoch nichts passendes gefunden.
    https://www.wpcubed.com/manuals/wp5man…graphstyles.htm

    Passend zum Thema:
    Meine Print-Methode sieht wie folgt aus:

    Code
    WPRichText1.ShowMergeFieldNames := (False);
    WPRichText1.MergeText;
    WPRichText1.PrintDialog;
    WPRichText1.ShowMergeFieldNames := (not CheckBox1.Checked);

    Kann man den TWPRichText so konfigurieren, dass vor dem Print automatisch "gemerged" wird (natürlich nur für den Print nicht in der UI)?

    Vielen Dank :)
    /Steven

    • Offizieller Beitrag

    Über das Ereignis OnTextObjGetTextEx kann man den text den ein text objekt, sowohl das start als auch das end objekte eines MergeFeldes ist ein solches, anpassen. Es ist auch möglich eigenen paint code zuzuweisen.

    Sie auch die demo I) \ EditFields

    anderer Beispiel cod für bookmarks:

    Der Text bei ShowFields ist derzeit fixiert auf den Namen.

  • Vielen Dank für die Antwort,

    Damit bin ich schon einen Schritt weiter, jedoch noch nicht am Ziel. Es gibt noch einige Fehler/Unschönheiten in meinem Beispielcode (siehe unten). Ich habe verschiedene Varianten ausprobiert (mit umsetzen von "ShowMergeFieldNames" und ohne).

    - Die Breite eines MergeField-Objects wird immer anhand des "Names" berechnet obwohl ich "WidthInPix" auf die Breite des "Display Names" (TXTObject.Params) setze. Sprich, der Parameter "w" von "OnPaintObject" entspricht der Breite des "Names", nicht "WidthInPix".
    - Wenn "ShowMergeFieldNames" auf False gesetzt ist, wird neben meinem selbstgezeichneten Rechteck+Text, der Display Name nochmal angezeigt.

    Ich möchte "MailMergeGetText" ungern aushebeln (so wie momentan leider in meinem Beispiel). Wahrscheinlich habe ich das Verhalten/die Bedeutung von "TextObjGetTextEx" noch nicht richtig verstanden. Vielleicht könnten Sie mir noch ein paar Tipps geben.

    Grundsätzlich möchte ich folgendes:
    Entweder den "Display Name" oder den Wert eines Mergefields in einem Rechteck anzeigen. Beim Print soll das Rechteck nicht sichtbar sein und sich die Mergefields nahtlos der Text in einfügen. Beides könnte man mit einer Checkbox realisieren:
    - Show Display Name/Value
    - Show Border around Merge Fields

    Hinweis: Wir verwenden technische IDs für den Mergefield-Namen und können diesen deshalb nicht in der UI verwenden. Daher würde ich gerne den "Display Name" verwenden.

    Hier mein Code:

    • Offizieller Beitrag

    Früher war grundsätzlich vorgesehen abhängig vom Zustand des Programmes mittels OnMergeTextGetText event Displaytext oder Inhalt zu setzen.

    Ich werde in Zukunft die Möglichkeiten von ShowMergeField ausbauen. Das ist recht einfach zu machen.

    ShowMergeField ist grundsätzlich inkompatibel zu TextObjGetTextEx - also etweder ShowMergeField =true oder den event verwenden. Mir ist allerdings klar, dass es dann das Problem mit dem Inhalt des feldes gibt - die Anzeige geht also mit TextObjGetTextEx nur equivalent wie ShowMergeField wenn es noch leer ist.

  • Zitat von wpsupport

    Früher war grundsätzlich vorgesehen abhängig vom Zustand des Programmes mittels OnMergeTextGetText event Displaytext oder Inhalt zu setzen.

    Ich werde in Zukunft die Möglichkeiten von ShowMergeField ausbauen. Das ist recht einfach zu machen.

    Das hört sich super an! Vielen Dank.

    Können Sie uns eine Einschätzung geben, wann mit der neuen Implementierung von "ShowMergeField" zu rechnen ist?
    Ich bräuchte dieses Feature für das nächstes Release (geht um die Abschätzung und Planung).

    Mit freundlichen Grüßen
    Steven