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()

Podprite nas!