CallByName-funksjon

Innhold
Innholdsliste 🔎︎

# CallByName-funksjonen

Anroper en subrutine ved hjelp av strengnavnet.

### Syntaks:

      CallByName(objekt som objekt, ProcName som streng, CallType som heltall [,arg0 [,arg1 …]])

### Returverdi:

resultat: En valgfri variabel som inneholder resultatet av den kalte metoden eller egenskapen.

### Parametre:

object: A Basic module, ClassModule instance or UNO service holding properties or methods.

ProcName: Funksjonen, Sub eller Property som anropes.

CallType: Typen utført handling som Get, Let, Method og Set.

arg0, arg1 …: Funksjon valgfrie parametere gitt som posisjonsargumenter.

Argumentene er gitt i nøyaktig samme rekkefølge definert i metodesignaturen. Søkeordargumenter er ikke mulige.

Verdi | CallType Beskrivelse
--- | ---
1 | Metode: Anroper en prosedyre som en funksjon eller en subrutine.
2 | Få: Leser en egenskap eller variabel-innhold.
4 | La: Tildeler et innhold til en Egenskap eller variabel.
8 | Sett: Tildeler en referanseverdi til en Objekt eller Variant variabel.

### Eksempel:

1. En Calc.Maths-modul inneholder en Multiply-funksjon som forventer en varierende liste med tall.

2. ScriptForge.Platform.Architecture informasjon er hentet.

3. DisplayDirectory property of com.sun.star.ui.dialogs.FilePicker UNO service is set to the user home folder, its content is read twice.

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

          BasicLibraries.loadLibrary("Calc") ' Calc.Maths brukerbibliotek.modul
          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

### Calc.Maths-modul

      Alternativ kompatibel ' Calc.Maths-modul
      Option Explicit

      Public Function Multiply(ParamArray args() As Double) As Variant
          ''' Multipliser en variabel liste med tall '''
          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()

Lignende emner

Call Statement

ScriptForge.Plattform-tjeneste

Option Compatible Statement

Option ClassModule Statement