CallByName Function

Nagpapatawag ng subroutine sa pamamagitan ng pangalan ng string nito.

Syntax:


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

Ibinalik na halaga:

resulta : Isang opsyonal na variable na naglalaman ng resulta ng tinatawag na method o property.

Mga Parameter:

bagay : Isang Pangunahing modyul, ClassModule halimbawa o serbisyo ng UNO na may hawak na mga katangian o pamamaraan.

ProcName : Ang Function , Sub o Ari-arian yan ang tinatawag.

CallType : Ang uri ng ginawang aksyon gaya ng Get, Let, Method at Set.

arg0, arg1 … : Ang Function mga opsyonal na parameter na ibinigay bilang mga positional na argumento.

Ang mga argumento ay ibinigay sa eksaktong parehong pagkakasunud-sunod na tinukoy sa lagda ng pamamaraan. Ang mga argumento ng keyword ay hindi posible.

Halaga

Paglalarawan ng CallType

1

Pamamaraan : Tumatawag sa isang pamamaraan bilang isang function o isang subroutine.

2

Kunin : Nagbabasa ng property o variable na nilalaman.

4

Hayaan : Magtalaga ng nilalaman sa a Ari-arian o variable.

8

Itakda : Nagtatalaga ng reference na halaga sa isang Bagay o Variant variable.


Halimbawa:

  1. A Calc.Maths ang modyul ay naglalaman ng a Paramihin function na umaasa sa iba't ibang listahan ng mga numero.

  2. ScriptForge.Platform.Architecture kinukuha ang impormasyon.

  3. DisplayDirectory ari-arian ng com.sun.star.ui.dialogs.FilePicker Ang serbisyo ng UNO ay nakatakda sa folder ng home user, ang nilalaman nito ay binabasa nang dalawang beses.


  Sub CallByName_example
      Const _Method = 1, _Get = 2, _Let = 4, _Set = 8
  
      BasicLibraries.loadLibrary("Calc") ' Calc.Maths user 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 module


  Opsyon na katugmang ' Calc.Maths module
  Option Explicit
  
  Public Function Multiply(ParamArray args() As Double) As Variant
      ''' Mag-multiply ng variable na listahan ng mga numero '''
      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()

Mangyaring suportahan kami!