IBM Lotus Symphony
|
Ta sekcja zawiera podstawowe informacje na temat korzystania z procedur i funkcji w języku Basic programu Lotus® Symphony™.
![]() |
Podczas tworzenia nowego modułu w języku Basic programu Lotus Symphony automatycznie jest wstawiana procedura (SUB) o nazwie Main. Ta domyślna nazwa nie ma nic wspólnego z kolejnością lub punktem początkowym projektu w języku Basic programu Lotus Symphony. Można również bezpiecznie zmienić nazwę tej procedury. |
Procedury (SUB) i funkcje (FUNCTION) ułatwiają tworzenie struktury programu, dzieląc go na logiczne części.
Jedną z zalet używania procedur i funkcji jest to, że kod programu zawierającego komponenty danego zadania może zostać użyty w innych projektach.
Zmienne można przesyłać zarówno do procedur, jak i do funkcji. Aby zdefiniować parametry, należy zadeklarować procedurę (SUB) lub funkcję (FUNCTION):
SUB NazwaProcedury(Parametr1 As Typ, Parametr2 As Typ,...)
Kod programu
END SUB
Procedura jest wywoływana przy użyciu następującej składni:
NazwaProcedury(Wartość1, Wartość2,...)
Parametry przekazywane do procedury muszą odpowiadać parametrom określonym w deklaracji.
To samo dotyczy funkcji. Poza tym funkcje zawsze zwracają wynik. Wynik funkcji jest definiowany poprzez przypisanie zwracanej wartości do nazwy funkcji:
FUNCTION NazwaFunkcji(Parametr1 As Typ, Parametr2 As Typ,...) As Typ
Kod programu
NazwaFunkcji=Wynik
End Function
Funkcja jest wywoływana przy użyciu następującej składni:
Zmienna=NazwaFunkcji(Parametr1, Parametr2,...)
![]() |
W celu wywołania procedury lub funkcji można również użyć jej pełnej nazwy: Biblioteka.Moduł.Makro(). Aby na przykład wywołać makro Autotext z biblioteki Gimmicks, należy użyć komendy Gimmicks.AutoText.Main(). |
Parametry można przekazywać do procedury lub funkcji przez referencję lub przez wartość. Jeśli nie określono jawnie innego sposobu, parametr jest zawsze przekazywany przez referencję. Oznacza to, że procedura lub funkcja może odczytać i zmodyfikować wartość przekazanego do niej parametru.
Aby przekazać parametr przez wartość, podczas wywoływania procedury lub funkcji przed parametrem należy wstawić słowo kluczowe ByVal, na przykład:
Wynik = Funkcja(ByVal Parametr)
W tym przypadku oryginalna treść parametru nie zostanie zmieniona przez funkcję, ponieważ pobiera ona tylko wartość, a nie parametr.
Zmienna zdefiniowana w procedurze lub funkcji obowiązuje do momentu wyjścia z tej procedury. Jest to zmienna "lokalna". W wielu przypadkach zmienna musi obowiązywać we wszystkich procedurach, w każdym module wszystkich bibliotek lub po wyjściu z procedury lub funkcji.
GLOBAL NazwaZmiennej As NAZWATYPU
Zmienna obowiązuje w czasie trwania sesji programu Lotus Symphony.
PUBLIC NazwaZmiennej As NAZWATYPU
Zmienna obowiązuje we wszystkich modułach.
PRIVATE NazwaZmiennej As NAZWATYPU
Zmienna obowiązuje tylko w tym module.
DIM NazwaZmiennej As NAZWATYPU
Zmienna obowiązuje tylko w tym module.
Aby wymusić prywatność zmiennych prywatnych w modułach, należy ustawić wartość CompatibilityMode(true).
REM ***** Moduł 1 *****
Private mojTekst As String
Sub inicjujMojTekst
mojTekst = "Witaj"
print "w module 1: ", mojTekst
End Sub
REM ***** Moduł 2 *****
'Option Explicit
Sub demoBlad
CompatibilityMode( true )
inicjujMojTekst
' Zwróć pusty łańcuch
' (lub błąd instrukcji Option Explicit)
print "Teraz w module 2: ", mojTekst
End Sub
STATIC NazwaZmiennej As NAZWATYPU
Zmienna zachowuje wartość do następnego wejścia do procedury lub funkcji. Deklaracja musi znajdować się w procedurze lub funkcji.
Aby zdefiniować typ wartości zwracanej przez funkcję, należy (podobnie jak w przypadku zmiennych) po nazwie funkcji podać znak deklaracji typu lub określić typ, używając słowa kluczowego "As" i odpowiedniego słowa kluczowego na końcu listy parametrów. Na przykład:
Function LicznikZnakow(Tekst as String) as Integer