Inhalt |
Dieses Thema beschreibt, wie eine Origin C-Funktion geschrieben wird, so dass sie im Menü F(x) des Dialogfelds Werte setzen aufgeführt wird.
Allgemeine Informationen zum Hinzufügen Ihrer eigenen OC-Funktionen zu Origin finden Sie im Thema: Aufrufen von OC-Funktionen von LabTalk aus.
Damit auf OC-Funktionen vom Dialogfeld Werte setzen aus zugegriffen werden kann, müssen folgende zusätzliche Bedingungen erfüllt werden:
Sobald die Funktion kompiliert ist, wird sie im Auswahlmenü F(x) des Dialogfelds Werte setzen verfügbar.
Das Folgende ist ein Beispiel für eine Zeichenkettenfunktion:
string AddSomethingToStr(string str) { str += " test"; return str; }
Sobald sie kompiliert ist, könnte diese Funktion dann im Dialogfeld Werte setzen wie unten verwendet werden:
Col(B) = AddSomethingToStr(Col(A))$;
Das Folgende ist ein Beispiel einer Funktion, die eine ganze Zahl zurückgibt:
int CopyNumeric(int nn) { return nn; }
Auf die Funktion kann dann vom Dialogfeld Werte setzen aus zugegriffen werden, um numerische Daten aus einer Spalte in eine andere zu kopieren:
Col(B) = CopyNumeric(Col(A));
Fügen Sie eine der folgenden #pragma-Anweisungen in Ihre OC-Quelldatei ein, um den Zugriff auf Ihre OC-Funktionen von LabTalk aus zu deaktivieren, erlauben oder zu begrenzen.
Da das Standardverhalten von Origin darin besteht, das Aufrufen von OC-Funktionen von LabTalk aus zu erlauben, wird #pragma labtalk(1) in Ihrem OC-Code nicht wirklich gebraucht. Beachten Sie, dass #pragma labtalk(...) Einfluss auf alle Funktionen in dieser Datei hat bis zum nächsten #pragma labtalk(...). Daher können Sie, wenn Sie keine C-Funktionen in das Menü F(x) eingeben möchten, #pragma labtalk(0) vor der Funktion verwenden. Und Sie können #pragma labtalk(1) wieder eingeben, um die Eingabe von Funktionen in das Menü F(x) wieder aufzunehmen. Durch Verwenden dieser Methode können Sie die Funktionsnamen im Menü F(X) steuern und verwalten.
Damit Ihre OC-Funktionen im Menü F(x) unter einer geeigneten Kategorie erscheinen, sollten Sie eine Pragma-Aussage wie unten hinzufügen:
Die Funktion(en) wird/werden dann im Menü F(x) von Werte setzen unter dem Menü F(x) wie unten angezeigt, wobei das Beispiel hier eine Funktion darstellt, die eine Zeichenkette akzeptiert und zurückgibt:
Date and Time : FunctionName(str)$
Wenn Sie eine Kategorie für Ihre OC-Funktion festlegen, wird die Funktion unter der Kategorie Benutzerdefiniert gezeigt.
Im Folgenden wird eine Vorgehensweise zum Hinzufügen einer benutzerdefinierten Funktion im Menü F(x) des Dialogfelds Werte setzen dargestellt. Außerdem befinden sich in internal.c im Unterordner \OriginC\System\ Ihres Programmverzeichnisses von Origin die entsprechenden Beispielcodes.
Schritte:
#pragma labtalk(1,Math) double add2num(double a, double b) { return a + b; }
|
Hinweis: Die Zeile "pragma" vor der Funktionsdefinition ist dazu da, die Funktion in der Kategorie Math im Menü F(x) zu setzen. |
| Hinweis: Weitere Informationen um Kompilieren finden Sie unter: "Vier Methoden zum Erstellen des Code Builder-Arbeitsbereichs" and "Laden und Kompilieren der Origin C-Funktion". |
add2num(col(1),col(2))
|
Hinweis: Auch diese Funktion "add2num" besitzt zwei (double) Skalierungsargumente und gibt einen Skalierungswert zurück, wenn Sie diese Funktion im Dialogfeld Werte setzen mit zwei Spalten (z.B. Vektoren) als ihre Argumente ausführen, die Ergebnisse werden in die Zielspalte geschrieben, da das Dialogfeld Werte setzen die Formel automatisch auf jedes Element (durch i implizit indiziert) anwendet. |