IBM Lotus Symphony
|
I det følgende beskrives i korte træk brugen af procedurer og funktioner i Lotus® Symphony™ Basic.
![]() |
Når du opretter et nyt modul, indsætter Lotus Symphony Basic automatisk en underrutine ved navn "Main". Dette standardnavn har ikke noget at gøre med rækkefølgen i eller udgangspunktet for et Lotus Symphony Basic-projekt. Der sker ikke noget ved at omdøbe denne underrutine. |
Med procedurer (underrutiner) og funktioner kan du opdele et program i logiske bestanddele og dermed skabe en struktureret oversigt over programmet.
En af fordelene ved procedurer og funktioner er, at så snart du har udviklet programkode med opgavekomponenter, kan du benytte koden i et andet projekt.
Der kan overføres variabler til både procedurer og funktioner. I erklæringen af underrutinen eller funktionen skal det angives, at den forventer parametre:
SUB RutineNavn(Parameter1 As Type, Parameter2 As Type,... )
Programkode
End Sub
Underrutinen kaldes med følgende syntaks:
RutineNavn(Værdi1, Værdi2,...)
De parametre, der overføres til en underrutine, skal passe med dem, der er angivet i erklæringen af underrutinen.
Det samme gælder funktioner. Derudover returnerer funktioner altid et funktionsresultat. Resultatet af en funktion defineres ved, at returværdien tildeles funktionsnavnet:
Function FunktionsNavn(Parameter1 As Type, Parameter2 As Type,...) As Type
Programkode
FunktionsNavn=Resultat
End Function
Funktionen kaldes med følgende syntaks:
Variabel=FunktionsNavn(Parameter1, Parameter2,...)
![]() |
Du kan også bruge det fuldstændige navn til at kalde en procedure eller funktion: Library.Module.Macro() Hvis du f.eks. vil kalde makroen Autotext fra biblioteket Gimmicks, skal du bruge følgende kommando: Gimmicks.AutoText.Main() |
Parametre til en underrutine eller funktion kan enten overføres som reference eller som værdi. Medmindre andet angives, overføres en parameter altid som reference. Det betyder, at en underrutine eller funktion modtager parameteren og kan læse og ændre dens værdi.
Hvis du vil overføre en parameter som værdi, skal du indsætte nøgleordet "ByVal" foran parameteren, når du kalder en underrutine eller funktion. Eksempel:
Resultat = Funktion(ByVal parameter)
I det tilfælde kan funktionen ikke ændre parameterens oprindelige indhold, da den kun modtager værdien og ikke selve parameteren.
En variabel, der defineres i en underrutine eller funktion, gælder kun, indtil proceduren afsluttes. Det kaldes en "lokal" variabel. Der er ofte brug for, at en variabel gælder i alle procedurer i alle moduler i alle biblioteker, eller efter underrutinen eller funktionen er afsluttet.
GLOBAL VarNavn As TYPENAVN
Denne variabel gælder, så længe sessionen med Lotus Symphony varer.
PUBLIC VarNavn As TYPENAVN
Variablen gælder i alle moduler.
PRIVATE VarNavn As TYPENAVN
Variablen gælder kun i det pågældende modul.
DIM VarNavn As TYPENAVN
Variablen gælder kun i det pågældende modul.
Gennemtving, at private variabler er private på tværs af moduler ved at angive CompatibilityMode(true).
REM ***** Modul1 *****
Private minTekst As String
Sub initMinTekst
minTekst = "Hallo"
print "i modul1 : ", minTekst
End Sub
REM ***** Modul2 *****
'Option Explicit
Sub demoBug
CompatibilityMode( true )
initMinTekst
' Returnerer nu tom streng
' (eller fremkalder fejl for Option Explicit)
print "Nu i modul2 : ", minTekst
End Sub
STATIC VarNavn As TYPENAVN
Variablen bevarer sin værdi, indtil funktionen eller underrutinen startes næste gang. Erklæringen skal foretages i en underrutine eller funktion.
Ligesom ved variabler definerer du typen af en funktions returværdi ved at indsætte et tegn til typeerklæring efter funktionsnavnet eller ved at skrive "As" efterfulgt af det relevante nøgleord sidst i parameterlisten. Eksempel:
Function AntalOrd (OrdTekst as String) as Integer