Neuer Wert eines Platzhalters in der Aufgabenpalette, in Textgestaltungsregeln und in Skripten zur Berechnung von Trenntexten eines Platzhalters.
Neuer Wert eines Platzhalters in der Aufgabenpalette, in Textgestaltungsregeln und in Skripten zur Berechnung von Trenntexten eines Platzhalters.
Die Variable darf nicht mit mehr als 2 GB Zeichen beschrieben werden.
Mit gNewValue wird der neue Wert eines Platzhalters in der Aufgabenpalette definiert. Sie ist in Laden-Skripten definiert, kann aber nur in Aufrufen der Aufgabenpalette gefüllt werden. Sonst ist sie 0. Beachten Sie, dass in Aufrufen, in denen gNewValue ungleich 0 ist, keine Änderungen am Dokument gemacht werden dürfen. Insbesondere dürfen textmodel::replace u.ä. nicht verwendet werden, da hier die Laden-Skripte automatisch wieder gerufen werden können - was zu Endlosschleifen führen kann.
Hier ein sehr einfaches Laden-Skript mit Unterstützung der Aufgaben-Palette.
int main () { char str[256];
strcpy (str, "My New Value");
if (gNewValue) { strcpy (gNewValue, str); return 0; }
textmodel::replace (str); return 0; }
[Ab v3.3.1 R3609, 9. Apr 2013] In Textgestaltungsregeln ist die Variable ebenfalls definiert. Hintergrund ist, dass Gestaltungsregeln den Platzhaltertext ändern können. So kann etwa an einen Preis automatisch eine Währung angefügt werden. Werden diese Platzhalter mit Hilfe des Aufgaben-Managements geprüft, würden dann jedesmal Abweichungen vom Datenbestand gefunden (der ja die Währung nicht enthält). Die Gestaltungsregel muss also dem Aufgaben-Management "mitteilen", wie es Texte verändert. Zu diesem Zweck erhält die Regel den aktuellen Wert des Datenbestandes in der Variable gNewValue - und schreibt alle Änderungen auch wieder dorthin zurück. Es werden drei Fälle unterschieden:
[Ab v4.3 R36180, 19. Feb 2025] In Skripten für Trenntexte können Sie die Varibale mit dem gewünschten Trenntext füllen. Der Inhalt darf TaggedText sein. Beachten Sie hier auch die Art des Trenntextes, die in gDelimiterType angegeben ist.
Hier ein Beispielskript:
#pragma plain
#include "internal/text.h"
int main () { if (gDelimiterType == kPrefix) // Growing ABC strcpy (gNewValue, "%!TT<cSize:4>A<cSize:><cSize:6>B<cSize:><cSize:8>C"); else if (gDelimiterType == kPrefixIfEmpty) // Shrinking ABC strcpy (gNewValue, "%!TT<cSize:8>A<cSize:><cSize:6>B<cSize:><cSize:4>C"); else if (gDelimiterType == kPostfix) // Shrinking CBA strcpy (gNewValue, "%!TT<cSize:8>C<cSize:><cSize:6>B<cSize:><cSize:4>A"); else if (gDelimiterType == kPostfixIfEmpty) // Growing CBA strcpy (gNewValue, "%!TT<cSize:4>C<cSize:><cSize:6>B<cSize:><cSize:8>A");
return 0; }
Alphabetic index HTML hierarchy of classes or Java