IBM Lotus Symphony


Korzystanie z procedur i funkcji

Ta sekcja zawiera podstawowe informacje na temat korzystania z procedur i funkcji w języku Basic programu Lotus® Symphony™.

Ikona Uwaga 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.

Przekazywanie zmiennych do procedur i funkcji

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,...)

Ikona Wskazówka 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().

Przekazywanie zmiennych przez wartość lub referencję

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.

Zasięg zmiennych

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.

Deklarowanie zmiennych poza procedurą lub funkcją

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.

Przykład dla zmiennych prywatnych

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

Zapisywanie treści zmiennej po wyjściu z procedury lub funkcji

STATIC NazwaZmiennej As NAZWATYPU

Zmienna zachowuje wartość do następnego wejścia do procedury lub funkcji. Deklaracja musi znajdować się w procedurze lub funkcji.

Określanie typu wartości zwracanej przez funkcję

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


Opinia na temat produktu | Dodatkowa dokumentacja | Znaki towarowe