IBM Lotus Symphony
|
Nasleduje popis základného používania procedúr a funkcií v produkte Lotus® Symphony™ Basic.
![]() |
Keď vytvoríte nový modul, Lotus Symphony Basic automaticky vloží SUB s názvom "Main". Tento štandardný názov nijak neovplyvňuje poradie alebo počiatočný bod projektu Lotus Symphony Basic. Túto SUB môžete aj opatrne premenovať. |
Procedúry (SUBS) a funkcie (FUNCTIONS) vám pomáhajú udržiavať štruktúrovaný prehľad rozdelením programu na logické kusy.
Prínosom procedúr a funkcií je, že keď raz vytvoríte programový kód, obsahujúci komponenty úloh, môžete ho použiť v inom projekte.
Premenné je možné odovzdať do procedúr aj do funkcií. Ak chcete očakávať parametre, musí byť deklarovaná SUB alebo FUNCTION:
SUB SubName( Parameter1 As Type, Parameter2 As Type,... )
Kód programu
END SUB
SUB sa volá použitím nasledujúcej syntaxe:
SubName(Hodnota1, Hodnota2,...)
Parametre odovzdané do SUB musia vyhovovať parametrom špecifikovaným v deklarácii SUB.
Rovnaký proces platí pre FUNCTIONS. Navyše, funkcie vždy vracajú výsledok funkcie. Výsledok funkcie je definovaný priradením návratovej hodnoty k názvu funkcie:
FUNCTION Názov_funkcie(Parameter1 As Type, Parameter2 As Type,...) As Type
Kód programu
Názov_funkcie=Výsledok
End Funkcia
FUNCTION sa volá použitím nasledujúcej syntaxe:
Premenná=Názov_funkcie(Parameter1, Parameter2,...)
![]() |
Na volanie procedúry alebo funkcie môžete použiť aj jej úplný názov: Knižnica.Modul.Makro() Napríklad, ak chcete makro Autotext zavolať z knižnice Gimmicks, použite nasledujúci príkaz: Gimmicks.AutoText.Main() |
Parametre je možné odovzdať do SUB alebo FUNCTION buď podľa odkazu alebo podľa hodnoty. Pokiaľ nie je špecifikované inak, parameter je vždy odovzdávaný podľa odkazu. Znamená to, že SUB alebo FUNCTION získa parameter a môže čítať a upraviť jeho hodnotu.
Ak chcete postúpiť parameter podľa hodnoty, pred parameter vložte kľúčové slovo "ByVal", keď voláte SUB alebo FUNCTION, napríklad:
Výsledok = Funkcia( ByVal Parameter)
V tom prípade FUNCTION neupraví pôvodný obsah parametra, pretože získa len hodnotu a nie samotný parameter.
Premenná zadefinovaná v rámci SUB alebo FUNCTION zostáva platná len do ukončenia procedúry. Toto je známe ako "lokálna" premenná. V mnohých prípadoch potrebujete, aby premenná bola platná vo všetkých procedúrach, v každom module všetkých knižníc, alebo po ukončení SUB alebo FUNCTION.
GLOBAL VarName As TYPENAME
Premenná je platná počas trvania relácie Lotus Symphony.
PUBLIC VarName As TYPENAME
Táto premenná je platná vo všetkých moduloch.
PRIVATE VarName As TYPENAME
Táto premenná je platná len v tomto module.
DIM VarName As TYPENAME
Táto premenná je platná len v tomto module.
Aby boli súkromné premenné súkromnými vo všetkých moduloch si vynútite nastavením 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
STATIC VarName As TYPENAME
Táto premenná uchováva svoju hodnotu do ďalšieho zadania FUNCTION alebo SUB. Deklarácia musí existovať vo vnútri SUB alebo FUNCTION.
Tak ako v prípade premenných, za názov funkcie zadajte znak deklarácie typu alebo na koniec zoznamu parametrov zadajte typ indikovaný podľa "As" a príslušného kľúčového slova, čím zadefinujete typ návratovej hodnoty funkcie, napríklad:
Function WordCount(WordText as String) as Integer