IBM Lotus Symphony
|
A continuación se describe el uso básico de los procedimientos y funciones de Lotus® Symphony™ Basic.
![]() |
Cuando se crea un módulo nuevo, Lotus Symphony Basic inserta de forma automática un SUB denominada "Main". Este nombre predeterminado no tiene nada que ver con el orden o el punto de inicio de un proyecto de Lotus Symphony Basic. Se puede cambiar sin problemas. |
Los procedimientos (SUBS) y funciones (FUNCTIONS) ayudan a mantener una visión general estructurada separando un programa en partes lógicas.
Una ventaja de los procedimientos y funciones es que, una vez que se ha desarrollado un código de programa que contiene componentes de tarea, éste puede usarse en otro proyecto.
Las variables pueden pasarse a procedimientos y funciones. SUB o FUNCTION deben estar declarados para que se les pueda pasar parámetros:
SUB NombreSub(Parámetro1 As Tipo, Parámetro2 As Tipo,...)
Código de programa
End Sub
A SUB se le llama mediante la sintaxis siguiente
NombreSub(Valor1, Valor2,...)
Los parámetros que se pasan a SUB deben coincidir con los especificados en la declaración de SUB.
El mismo proceso se aplica a FUNCTION, para que devuelva el resultado de la función. Además, las funciones siempre devuelven un resultado de función. El resultado de una función se define asignando el valor de retorno al nombre de función:
FUNCTION NombreFunción(Parámetro1 As Tipo, Parámetro2 As Tipo,...) As Tipo
Código de programa
NombreFunción=Resultado
End Function
A FUNCTION se la llama mediante la sintaxis siguiente:
Variable=NombreFunción(Parámetro1, Parámetro2,...)
![]() |
Puede utilizar el nombre completo para llamar a un procedimiento o función: Library.Module.Macro() Por ejemplo, para llamar a la macro Autotext desde la biblioteca Gimmicks, utilice el mandato siguiente: Gimmicks.AutoText.Main() |
Los parámetros pueden pasarse a SUB o FUNCTION por referencia o por valor. A menos que se especifique de otra forma, los parámetros siempre se pasan por referencia. Esto significa que SUB o FUNCTION obtienen el parámetro y que su valor se puede leer y modificar.
Para pasar un parámetro por valor se inserta la palabra clave "ByVal" delante del parámetro cuando se llama a un SUB o FUNCTION, por ejemplo:
Resultado = Función(parámetro ByVal)
En este caso, FUNCTION no modificará el contenido original del parámetro ya que sólo obtiene el valor y no el parámetro en sí.
Una variable definida dentro de SUB o FUNCTION sólo permanece válida hasta que se sale del procedimiento. A estas variables se las conoce como "locales". En muchos casos se necesita una variable que sea válida en todos los procedimientos, en todos los módulos de las bibliotecas o después de salir de SUB o FUNCTION.
GLOBAL NombreVar As NOMBRETIPO
La variable es válida durante toda la sesión de Lotus Symphony.
PUBLIC NombreVar As NOMBRETIPO
La variable es válida en todos los módulos.
PRIVATE NombreVar As NOMBRETIPO
La variable sólo es válida en este módulo.
DIM NombreVar As NOMBRETIPO
La variable sólo es válida en este módulo.
Aplique las variables privadas para que sean privadas en los módulos estableciendo CompatibilityMode(true).
REM ***** Módulo1 *****
Private myText As String
Sub initMyText
myText = "Hola"
print "in module1 : ", myText
End Sub
REM ***** Módulo2 *****
'Opción explícita
Sub demoBug
CompatibilityMode( true )
initMyText
' Ahora devuelve una cadena vacía
' (o plantea un error para Opción explícita)
print "Ahora en el módulo2: ", myText
End Sub
STATIC NombreVar As NOMBRETIPO
La variable conserva su valor hasta la próxima vez que se entre en la FUNCTION o SUB. La declaración debe existir dentro de SUB o FUNCTION.
Al igual que con las variables, incluya un carácter de declaración de tipo después del nombre de la función o el tipo indicado por "As" y la palabra clave correspondiente al final de la lista de parámetros para definir el tipo del valor de retorno de la función, por ejemplo:
Function RecuentoPalabras(TextoPalabra as String) as Integer