CallByName-funksjon

Innhold

# CallByName-funksjonen

Anroper en subrutine ved hjelp av strengnavnet.

### Syntaks:

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

### Returtype:

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

### Parametre:

object: En grunnleggende modul, ClassModule-forekomst eller UNO-tjenesteholde egenskaper eller metoder.

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-egenskapen til com.sun.star.ui.dialogs.FilePicker UNO-tjenesten er satt til brukerens hjemmemappe, innholdet leses to ganger.

      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

Anropsuttrykk

ScriptForge.Plattform-tjeneste

Alternativ Compatible uttrykk

Alternativt ClassModule Uttrykk

Supporter oss!