IBM Lotus Symphony
|
A seguir é descrito o uso básico de procedimentos e funções no Lotus® Symphony™ Basic.
![]() |
Ao criar um novo módulo, o Lotus Symphony Basic insere automaticamente um SUB chamado "Main". Este nome padrão não está relacionado à ordem ou o ponto de início de um projeto Lotus Symphony Basic. Também é possível renomear com segurança essa SUB. |
Procedimentos (SUBS) e funções (FUNCTIONS) ajudam a manter uma visão geral estruturada, separando um programa em partes lógicas.
Um benefício de procedimentos funções é que, depois de desenvolver um código do programa contendo componentes de tarefa, é possível usar este código em outro projeto.
Variáveis podem ser transmitidas para procedimentos e funções. A SUB ou FUNCTION deve ser declarada para os parâmetros esperados:
SUB SubName(Parameter1 As Type, Parameter2 As Type,...)
Código de Programa
END SUB
A SUB é chamada usando a seguinte sintaxe:
SubName(Value1, Value2,...)
Os parâmetros transmitidos a uma SUB devem se ajustar aos parâmetros especificados na declaração da SUB.
O mesmo processo se aplica às FUNCTION. Além disso, funções sempre retornam um resultado. O resultado de uma função é definido com a designação do valor de retorno para o nome da função:
FUNCTION FunctionName(Parameter1 As Type, Parameter2 As Type,...) As Type
Código de Programa
FunctionName=Result
End Function
A FUNCTION é chamada usando a seguinte sintaxe:
Variable=FunctionName(Parameter1, Parameter2,...)
![]() |
Também é possível usar o nome completo para chamar um procedimento ou função: Library.Module.Macro() Por exemplo, para chamar a macro Autotext a partir da biblioteca Gimmicks, use o seguinte comando: Gimmicks.AutoText.Main() |
Parâmetros podem ser transmitidos a uma SUB ou a uma FUNCTION, pela referência ou pelo valor. A menos que haja especificação contrária, um parâmetro é transmitido sempre pela referência. Isso significa que uma SUB ou uma FUNCTION obtém o parâmetro e pode ler e modificar seu valor.
Se passar um parâmetro por valor, insira a palavra-chave "ByVal" na frente do parâmetro quando chamar uma SUB ou FUNCTION, por exemplo:
Result = Function( ByVal Parameter)
Nesse caso, o conteúdo original do parâmetro não será modificado pela FUNCTION, visto que ela obtém apenas o valor e não o parâmetro propriamente dito.
Uma variável definida em uma SUB ou FUNCTION só permanece válida enquanto não se sai do procedimento. Isso é conhecido como uma variável "local". Em muitos casos, é necessário que uma variável seja válida em todos os procedimentos, em cada módulo de todas as bibliotecas ou depois que se sai de uma SUB ou FUNCTION.
GLOBAL VarName As TYPENAME
A variável é válida contanto que a sessão Lotus Symphony persista.
PUBLIC VarName As TYPENAME
A variável é válida em todos os módulos.
PRIVATE VarName As TYPENAME
A variável é válida somente nesse módulo.
DIM VarName As TYPENAME
A variável é válida somente nesse módulo.
Force as variáveis privadas para serem privadas em módulos definindo CompatibilityMode(true).
REM ***** Módulo1 *****
Private myText As String
Sub initMyText
myText = "Olá"
print "no módulo1 : ", myText
End Sub
REM ***** Módulo2 *****
'Option Explicit
Sub demoBug
CompatibilityMode( true )
initMyText
' Agora retorna uma sequência vazia
' (ou sinaliza um erro para Option Explicit)
print "Agora no módulo2 : ", myText
End Sub
STATIC VarName As TYPENAME
A variável retorna seu valor até a próxima vez que a FUNCTION ou SUB for inserida. A declaração deve existir dentro de uma SUB ou uma FUNCTION.
Como com variáveis, inclua um caractere de declaração do tipo após o nome da função ou o tipo indicado por "As" e a palavra-chave correspondente no final da lista de parâmetros para definir o tipo do valor de retorno da função, por exemplo:
Function WordCount(WordText as String) as Integer