Usu de procedimientos y funciones
De siguío descríbese l'usu básicu de procedimientos y funciones en LibreOffice Basic.
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.
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,...)
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