Usu de procedimientos y funciones

De siguío descríbese l'usu básicu de procedimientos y funciones en LibreOffice Basic.

Iconu de nota

Cuando se crea un módulu nuevu, LibreOffice Basic inxerta automáticamente una SUB llamada "Main". Esti nome predetermináu nun tien nada que ver col orde o'l puntu d'entamu d'un proyectu de LibreOffice Basic. Pue camudase ensin problemes.


Iconu de nota

Dalgunes restricciones aplíquenes nos nomes de les sos variables públiques, subs, y funciones. Nun tien d'usar el mesmu nome nos módulos de la mesma llibrería.


Los procedimientos (SUBS) y funciones (FUNCTIONS) ayuden a caltener un aspeutu estructurado dixebrando un programa en partes lóxiques.

Una ventaya de los procedimientos y funciones ye qu'en cuanto se desenvuelve un códigu de programa que contién componentes de xera, ésti pue usase n'otru proyectu.

Pasu de variables a procedimientos (SUB) y funciones (FUNCTION)

Les variables puen pasase a procedimientos y funciones. SUB o FUNCTION tienen de tar declaraos por que se-yos pueda pasar parámetros:


Sub SubName(Parameter1 As Type, Parameter2 As Type,...)
Códigu de programa
End Sub

A SUB llámase-y por aciu la sintaxis siguiente


SubName(Value1, Value2,...)

Los parámetros que se pasen a SUB tienen de coincidir colos especificaos na declaración de SUB.

El mesmu procesu aplícase a les FUNCIONES. Amás, les funciones siempre devuelven un resultáu de función. El resultáu d'una función defínese atribuyendo'l valor a devolver al nome de la función:


Function FunctionName(Parameter1 As Type, Parameter2 As Type,...) As Type
Códigu de programa
NomeFuncion=Resultáu
End Function

A FUNCTION se la llapada por aciu la sintaxis siguiente:


Variable=NomeFunción(Parámetru1, Parámetru2,...)
Iconu de conseyu

Coles mesmes, pue utilizar el nome completu pa llamar a un procedimientu o función:
Library.Module.Macro()
Por exemplu, pa llamar a la macro AutoTestu dende la biblioteca Gimmicks, utilice'l comandu siguiente:
Gimmicks.AutoText.Main()


Pasu de variables per valor o por referencia

Los parámetros puen pasase a SUB o FUNCTION por referencia o por valor. Nun siendo que s'especifique d'otra forma, los parámetros siempres se pasen por referencia. Esto significa que SUB o FUNCTION llogren el parámetru y que'l so valor pue lleese y modificar.

Pa pasar un parámetru por valor inxertar la pallabra clave "ByVal" delantre del parámetru cuando se llama a una SUB o FUNCTION, por exemplu:


Resultáu = Función(Parámetru ByVal)

Nesti casu, FUNCTION nun va modificar el conteníu orixinal del parámetru yá que namái llogra'l valor y non el parámetru en sí.

Ámbitu de variables

Un variable definida dientro un SUB o FUNCTION, ye válida solamente dientro de la función. Conocer como un variable "local". En dellos casos, precisa una variable que ye válida en tolos procedimientos, en tolos módulos de les biblioteques, o dempués qu'haya salida del SUB o FUNCTION.

Declaración de variables dende fora de SUB o FUNCTION


Global NomeVariable As NOMETIPU

La variable ye válida mientres tola sesión de LibreOffice.


Public NomeVariable As NOMETIPU

La variable ye válida en tolos módulos.


Private NomeVariable As NOMETIPU

La variable namái ye válida nesti módulu.


Dim NomeVariable As NOMETIPU

La variable namái ye válida nesti módulu.

Exemplu pa variables privaes

Forza variables quitaes permanecer privaes configurando'l módulu de compatibilidá como verdaderu CompatibilityMode(true).


' ***** Module1 *****
Private myText As String
Sub initMyText
    myText = "Hola"
    Print "Nel módulu1 : ", myText
End Sub
 
' ***** Module2 *****
'Option Explicit
Sub demoBug
    CompatibilityMode( true )
    initMyText
    ' Agora torna una cadena balera
    ' (o s'alza l'erru pa Opción Explicita)
    Print "Agora nel módulu2 : ", myText
End Sub

Guardáu de conteníu de variables dempués de salir de SUB o FUNCTION


Static NomeVariable As NOMETIPU

La variable caltién el so valor hasta la próxima vegada que s'ente na FUNCTION o SUB. La declaración tien d'esistir dientro de SUB o FUNCTION.

Especificación del tipu de valor de torna d'una FUNCTION

Al igual que coles variables, incluya un caráuter de declaración de tipu dempués del nome de la función o'l tipu indicáu por "As" y la pallabra clave correspondiente a la fin de la llista de parámetros pa definir el tipu del valor de torna de la función, por exemplu:


Function WordCount(WordText As String) As Integer