ShapeValueFormatting Funktion

Alternativ zur ShapeValueFormatter Funktion kann eine benutzerdefinierte Formatter-Funktion erstellt werden, um andere Shape Informationen in der Infobar anzuzeigen. Das folgende Beispiel zeigt, wie eine solche Funktion angelegt wird und welche Schnittstellen diese haben muss.

ShapeValueFormatting Funktion 1:

Die allgemeine Verwendung von Funktionen wird in der HMI-Dokumentation erklärt.

Nach dem Erstellen der TypeScript Funktion müssen zwei Parameter angelegt werden. Der erste bekommt die Shape-Beschreibung analog zur ShapeData-Eigenschaft übergeben, sowie sie auch vom Control abrufbar ist. Dieser Parameter muss als Typ Any angelegt werden. Der zweite Parameter bekommt den Shape-Typ analog zur ShapeType-Eigenschaft übergeben. Dieser Parameter muss als Typ TcHmi.Controls.Beckhoff.Vision.ShapeType angegeben werden. Es ist zu beachten, dass sich diese übergebenen Parameter zum Zeitpunkt der Funktionsausführung aus Timing-Gründen von den Werten der entsprechenden Control-Eigenschaften unterscheiden können.

Die Funktion muss einen Wert vom Typ String zurückgeben, der dann in der Infobar angezeigt wird. Die Funktion wird immer aufgerufen, wenn sich die Shape-Beschreibung ändert und somit der String in der Infobar aktualisiert werden muss.

ShapeValueFormatting Funktion 2:

Im folgenden Codebeispiel wird die Breite und Höhe zurückgegeben, sofern die Objekte in den Formdaten enthalten sind:

namespace TcHmi {
    export namespace Functions {
        export namespace TcHmiProject {
            export function Formatter(shapeData: any, shapeType: any) {
                if (shapeData.stSize != null && shapeData.stSize.fWidth != null &&
                    shapeData.stSize.fHeight != null) {
                    return 'w: ' + shapeData.stSize.fWidth.toFixed(0) + ' h: ' +
                        shapeData.stSize.fHeight.toFixed(0);
                }
                else {
                    return '';
                }
            }
        }
    }
}
TcHmi.Functions.registerFunctionEx('Formatter', 'TcHmi.Functions.TcHmiProject', TcHmi.Functions.TcHmiProject.Formatter);

Um eine selbst-erstellte Formatter-Funktion zu benutzen, klicken Sie bei der ShapeValueFormat-Eigenschaft auf den Auswahl-Button und wählen in dem Function Editor ihre soeben erstellte Funktion aus.

ShapeValueFormatting Funktion 3: