Edukiak
Indizea 🔎︎

# CallByName funtzioa

Azpierrutina bati deitzen dio bere kate-izenaren bidez.

### Sintaxia:

      CallByName(Objektua As Object, ProzIzena As String, DeiMota As Integer [,arg0 [,arg1 …]])

### Itzulera-balioa:

emaitza: Deitutako metodoaren edo propietatearen emaitza duen aukerako aldagai bat.

### Parametroak:

Objektua: Propietateak edo metodoak dituen Basic modulu bat, ClassModule instantzia bat edo UNO zerbitzu bat.

ProzIzena: Deitu den Function, Sub edo Property prozedura.

DeiMota: Gauzatutako ekintza, alegia Get, Let, Method edo Set.

arg0, arg1 …: Function funtzioaren aukerako parametroak, posizio-argumentu gisa emanak.

Argumentuak metodoaren sinaduran definitutako ordena beran eman behar dira. Ezin dira gako-hitzen bidezko argumentuak erabili.

Balioa | CallType deskribapena
--- | ---
1 | Method: Prozedura bati funtzio edo azpierrutina gisa deitzen dio.
2 | Get: Propietate bat edo aldagai-eduki bat irakurtzen du.
4 | Let: Eduki bat esleitzen dio Property propietate bati edo aldagai bati.
8 | Set: Erreferentziako balio bat esleitzen dio Object edo Variant aldagai bati.

### Adibidea:

1. Calc.Maths moduluek zenbakien zerrenda aldakorra espero duen Multiply funtzio bat dute.

2. ScriptForge.Platform.Architecture informazioa atzitzen da.

3. com.sun.star.ui.dialogs.FilePicker UNO zerbitzuaren DisplayDirectory propietatean erabiltzaile-karpeta ezartzen da, bere edukia bi aldiz irakurtzen da.

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

          BasicLibraries.loadLibrary("Calc") ' Calc.Maths funtzioaren erabiltzailearen library.module
          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 modulua

      Option Compatible ' Calc.Maths modulua
      Option Explicit

      Public Function Multiply(ParamArray args() As Double) As Variant
          ''' Biderkatu zenbakien zerrenda aldakor bat '''
          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()

Erlazionatutako gaiak

Call instrukzioa

ScriptForge.Platform zerbitzua

Option Compatible instrukzioa

Option ClassModule instrukzioa