.. highlightlang:: us .. index:: UniPlot.Call2 .. _uniplot.call2: UniPlot.Call2 ============= .. us.tag UniPlot.Call2 NOTREADYGERMAN Programming.ActiveX New330 Mit der :ref:`UniPlot.Call2`-Methode können Sie UniPlot-Funktionen aus anderen Programmen heraus (ActiveX-Controllern) aufrufen. :ref:`UniPlot.Call` liefert eine Matrix zurück, während :ref:`UniPlot.Call2` einen Vektor zurückliefert. .. function:: ret = UniPlot.Call2(ssFuncName, arg1, arg2, ...) .. us.return **Returnwert** *ret* ist der Return-Wert. Folgende Datentypen werden unterstützt: Falls *ssFuncName* einen Skalar (1 x 1 Matrix) zurückliefert, enthält *ret* einen skalaren Wert des Typs ``VT_R8``. Falls *ssFuncName* einen Vektor zurückliefert, (1 x n-Matrix oder n x 1-Matrix) enthält *ret* einen 1 x n-Vektor. Falls *ssFuncName* eine Matrix zurückliefert (n x m-Matrix, n, m != 1), enthält *ret* eine n x m-Matrix. UniScript-Stringmatrizen werden in ``VT_BSTR`` umgewandelt. Die Dimensionalität ist wie oben beschrieben. Andere UniScript-Typen (UniScript-Variant-Matrizen, Objekte, komplexe Zahlen) werden nicht unterstützt. .. us.params **Parameter** .. uparam:: ssFuncName *ssFuncName* ist der Name der UniScript-Funktion, die aufgerufen werden soll. .. uparam:: arg1 *arg1* ist der erste Parameter, der an die Funktion mit dem Namen *ssFuncName* übergeben wird. Die Anzahl der Parameter die an die Funktion übergeben werden kann liegt zwischen 0 und 16. Für die Parameter werden die folgenden Datentypen unterstützt: Skalare Elemente: VT_UI1, VT_I2, VT_I4, VT_R4, VT_R8, VT_VARIANT, VT_BSTR, VT_DISPATCH. Vektoren (Arrays mit Dimension 1): VT_R8, VT_VARIANT, VT_BSTR. .. us.example **Beispiel** Das folgende Excel-Programm (VBA) ruft die UniScript-Funktion :ref:`MessageBox` auf: .. highlight:: none :: ssMessage$ = "This is a Test" Dim svStyles(2) As String svStyles(0) = "Test" svStyles(1) = "ICONSTOP" svStyles(2) = "YESNO" Set upApp = CreateObject("UniPlot.Application") YesNo = upApp.Call("MessageBox", ssMessage$, svStyles) .. highlight:: us .. us.example **Beispiel** Das folgende Excel-Programm (VBA) ruft die UniScript-Funktionen :ref:`UniPlot.Call` und :ref:`UniPlot.Call2`, sowie die Funktionen :ref:`UniScript.Call` und :ref:`UniScript.Call2` des UniScript-Servers ``usserv32.exe`` auf. .. image:: S:/uniplot-obj/images/VBA.* Der VBA-Debugger zeigt die Rückgabewerte der ``Call``- und ``Call2``-Funktionen. ``Call`` liefert eine Matrix zurück, während ``Call2`` einen Vektor zurückliefert. .. highlight:: basic :: Sub Test() Dim a(1 To 3) As Double Set up = CreateObject("UniPlot.Application") Set us = CreateObject("UniScript32") a(1) = 1 a(2) = 2 a(3) = 3 b = up.Call("sin", a) c = up.Call2("sin", a) d = us.Call("sin", a) e = us.Call2("sin", a) End Sub .. highlight:: us .. seealso:: :ref:`uberblick-programmierung`, :ref:`UniPlot.Visible`, :ref:`UniPlot.Caption` :sub:`id-537400`