IBM Lotus Symphony


Utilizar procedimentos e funções

Segue-se uma descrição da utilização básica dos procedimentos e funções no Lotus® Symphony™ Basic.

ícone de Nota Ao criar um novo módulo, o Lotus Symphony Basic insere automaticamente uma SUB denominada "Principal". Este nome predefinido não tem qualquer relação com a ordem ou o ponto de partida de um projecto do Lotus Symphony Basic. É também possível mudar o nome desta SUB em segurança.

Procedimentos (SUBS) e funções (FUNCTIONS) ajudam a manter uma descrição geral estruturada ao separar um programa em partes lógicas.

Um dos benefícios dos procedimentos e funções é que, após ter criado um código que contenha componentes de tarefa, pode utilizar este código noutro projecto.

Passar variáveis para procedimentos (SUB) e funções (FUNCTION)

As variáveis podem ser transferidas tanto para os procedimentos como para as funções. Terá de ser definido SUB ou FUNCTION para se obter os parâmetros:

SUB SubName(Parameter1 As Type, Parameter2 As Type,...)

Código do programa

END SUB

A SUB é chamada utilizando a seguinte sintaxe:

SubName(Value1, Value2,...)

Os parâmetros transferidos para uma SUB têm de corresponder aos especificados na declaração SUB.

O mesmo processo é aplicado a FUNCTIONS. Além do que foi referido, as funções devolvem sempre o resultado de uma função. O resultado de uma função é definido atribuindo o valor de retorno ao nome da função:

FUNCTION FunctionName(Parameter1 As Type, Parameter2 As Type,...) As Type

Código do programa

FunctionName=Result

End Function

A FUNCTION é chamada utilizando a seguinte sintaxe:

Variable=FunctionName(Parameter1, Parameter2,...)

ícone de Sugestão Pode também utilizar o nome totalmente qualificado para invocar um procedimento ou função: Library.Module.Macro() Por exemplo, para invocar a macro de AutoText a partir da biblioteca Gimmicks, utilize o seguinte comando: Gimmicks.AutoText.Main()

Passar variáveis por valor ou referência

Os parâmetros podem ser transferidos para uma SUB ou FUNCTION tanto por referência como por valor. Salvo especificação em contrário, um parâmetro é sempre transferido por referência. Isso significa que uma SUB ou uma FUCTION controla o parâmetro e pode ler e modificar o valor deste.

Se pretender transferir um parâmetro por valor, insira a palavra-chave "ByVal" em frente do parâmetro quando invocar uma SUB ou FUNCTION, por exemplo:

Result = Function( ByVal Parameter)

Neste caso, o conteúdo original do parâmetro não será alterado pela FUNCTION, visto que só obtém o valor e não o próprio parâmetro.

Âmbito das variáveis

Uma variável definida numa SUB ou numa FUNCTION, só permanece válida até que se saia do procedimento. Esta variável é denominada de "local". Em muitos casos, é necessário que exista uma variável válida em todos os procedimentos, em todos os módulos de todas as bibliotecas ou depois de se sair SUB ou de uma FUNCTION.

Declarar variáveis fora de uma SUB ou uma FUNCTION

GLOBAL VarName As TYPENAME

A variável é válida enquanto a sessão do Lotus Symphony não for terminada.

PUBLIC VarName As TYPENAME

A variável é válida em todos os módulos.

PRIVATE VarName As TYPENAME

A variável só é válida neste módulo.

DIM VarName As TYPENAME

A variável só é válida neste módulo.

Exemplo de variáveis privadas

Reforce o estatuto privado das variáveis em todos os módulos, definindo CompatibilityMode(true).

REM ***** Module1 *****

Private myText As String

Sub initMyText

myText = "Hello"

print "in module1 : ", myText

End Sub

REM ***** Module2 *****

'Option Explicit

Sub demoBug

CompatibilityMode( true )

initMyText

' Now returns empty string

' (or rises error for Option Explicit)

print "Now in module2 : ", myText

End Sub

Guardar o conteúdo de uma variável depois de sair de uma SUB ou de uma FUNCTION

STATIC VarName As TYPENAME

A variável retém o respectivo valor até à próxima vez que a FUNCTION ou a SUB seja executada. A declaração tem de existir dentro de uma SUB ou de uma FUNCTION.

Especificar o valor de retorno de uma FUNCTION

Tal como no caso das variáveis, é necessário incluir um carácter de declaração de tipo depois do nome da função, ou o tipo indicado por "As" e a correspondente palavra-chave no final da lista de parâmetros para definir o tipo de valor de retorno correspondente à função', como por exemplo:

Function WordCount(WordText as String) as Integer


Comentários sobre o produto | Documentação adicional | Marcas comerciais