Vsebina

# Funkcija CallByName

Prikliče podprogram z nizom njegovega imena.

### Skladnja:

      CallByName(predmet As Object, ImeProc As String, VrstaKlica As Integer [,arg0 [,arg1 …]])

### Vrnjena vrednost:

Rezultat: neobvezna spremenljivka, ki vsebuje rezultat klicane metode ali lastnosti.

### Parametri:

predmet: modul Basic, predmet razrednega modula ClassModule ali storitev UNO, ki vsebuje lastnosti ali metode.

ImeProc: klicana funkcija Function (funkcija), Sub (podprogram) ali Property (lastnost).

VrstaKlica: vrsta izvedenega dejanja, kot so Get, Let, Method in Set.

arg0, arg1 ... : neobvezni parametri funkcije Function, podani kot položajni argumenti.

Argumenti so podani v natanko istem zaporedju, kot so določeni v podpisu metode. Argumenti ključnih besed niso možni.

Vrednost | Opis VrstaKlica
--- | ---
1 | Method: kliče proceduro kot funkcijo ali podprogram.
2 | Get: prebere vsebino lastnosti ali spremenljivke.
4 | Let: dodeli vsebino lastnosti Property ali spremenljivki.
8 | Set: dodeli referenčno vrednost spremenljivki Object ali Variant.

### Primer:

1. Modul Calc.Maths vsebuje funkcijo Multiply, ki pričakuje spremenljivi seznam števil.

2. Pridobljeni so podatki ScriptForge.Platform.Architecture.

3. Lastnost DisplayDirectory storitve UNO com.sun.star.ui.dialogs.FilePicker je nastavljena na domačo mapo uporabnika, njena vrednost je prebrana dvakrat.

      Sub CallByName_example
          Const _Method = 1, _Get = 2, _Let = 4, _Set = 8

          BasicLibraries.loadLibrary("Calc") ' uporabniški knjižnica.modul Calc.Maths
          Dim cm As Object : cm = Calc.Maths
          MsgBox CallByName(cm, "Multiply", _Method, 3, 45, 1, 89)		' 12015
          MsgBox CallByName(cm, "Multiply", _Method, 1.85e15, 44, 10^8)	' 8.14E+24

          GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
          Dim p As Object : p = CreateScriptService("ScriptForge.Platform")
          MsgBox CallByName(p, "Architecture", _Get) ' 32bit/64bit

          Dim uno As Object : uno = CreateUnoService("com.sun.star.ui.dialogs.OfficeFilePicker")
          Dim fs As Object  : fs  = CreateScriptService("ScriptForge.FileSystem")
          CallByName(uno, "DisplayDirectory", _Let, fs.HomeFolder)
          MsgBox CallByName(uno, "DisplayDirectory", _Get)
          var = CallByName(uno, "getDisplayDirectory", _Get)
      End Sub

### Modul Calc.Maths

      Option Compatible ' Modul Calc.Maths
      Option Explicit

      Public Function Multiply(ParamArray args() As Double) As Variant
          ''' Zmnožek spremenljivega seznama števil '''
          Dim ndx As Integer
          If UBound(args) >= 0 Then
              Multiply = 1.0
              For ndx = 0 To UBound(args)
                  Multiply = Multiply * args(ndx)
              Next ndx
          End If
      End Function 'Calc.Maths.Multiply()

Podobne teme

Ukaz Call

Storitev ScriptForge.Platform

Ukaz Option Compatible

Ukaz Option ClassModule