CallByName (funktion)

Indhold

# Funktionen CallByName (kald_ved_navn)

Kalder en subrutine med dens strengnavn.

### Syntaks:

      CallByName(object As Object, ProcName As String, CallType As Integer [,arg0 [,arg1 …]])

### Returtype

result (resultat): En valgfri variabel, der indeholder resultatet af den kaldte metode eller egenskab.

### Parametre:

object (objekt): Et Basic-modul, en instans af et ClassModule (klassemodul), eller en UNO-tjeneste med egenskaber eller metoder.

ProcName (procedurenavn): Den funktion, Sub eller Egenskab, der bliver kaldt.

CallType: Den udførte handlings type såsom Get (hent), Let (lad), Method (metode) og Set (sæt).

arg0, arg1 …: Functionens valgfrie parametre opgivet som positionsargumenter.

Argumenter leveres i den præcis rækkefølge, der er defineret i metodesignaturen. Nøgleordsargumenter er ikke mulige.

Værdi | CallType Beskrivelse
--- | ---
1 | Method (metode): Kalder en procedure som en funktion eller en subrutine.
2 | Get (Hent): Læser et egenskabs- eller variabelindhold.
4 | Let (lad): Tildeler et indhold en Property (egenskab) eller variabel et indhold.
8 | Set (sæt): Tildeler et Object (objekt) eller en variable Variant (variant) en referenceværdi.

### Eksempel:

1. Et Calc.Maths-modul indeholder funktionen Multiply (multiplicer) og forventer en varierende liste over tal.

2. ScriptForge.Platform.Architecture oplysninger er hentet.

3. Egenskaben DisplayDirectory (vis_mappe) i UNO-tjenesten com.sun.star.ui.dialogs.FilePicker er sat til brugerens hjemmemappe, dens indhold læses to gange.

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

          BasicLibraries.loadLibrary("Calc") ' Bruger-biblioteks.modulet 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

### Calc.Maths (modul)

      Option Compatible ' Calc.Maths (modul)
      Option Explicit

      Public Function Multiply(ParamArray args() As Double) As Variant
          ''' Multiplicer en variabelliste over tal '''
          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()

Relaterede emner

Udtrykket Kald

Tjenesten ScriptForge.Platform

Option Compatible-udtryk

Option ClassModule-udtryk

Støt os venligst!