IBM Lotus Symphony


Bruke prosedyrer og funksjoner

Denne delen beskriver grunnleggende bruk av prosedyrer og funksjoner i Lotus Symphony Basic.

Merknadsikon Når du oppretter en ny modul, setter Lotus Symphony Basic automatisk inn en sub (subrutine) som har navnet "Main". Dette standardnavnet har ingenting å gjøre med rekkefølgen eller startpunktet til et Lotus Symphony Basic-prosjekt. Du kan også trygt endre navnet på denne subrutinen.

Prosedyrer (SUBS) og funksjoner (FUNCTIONS) hjelper deg å opprettholde en strukturert oversikt ved å dele inn et program i logiske deler.

En fordel med prosedyrer og funksjoner er at når du først har utviklet en programkode som inneholder oppgavekomponenter, kan du bruke denne koden i andre prosjekter.

Sende variabler til prosedyrer (SUB) og funksjoner (FUNCTION)

Variabler kan sendes både til prosedyrer og funksjoner. En SUB eller FUNCTION må deklareres for å forvente parametere:

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

Programkode

END SUB

En SUB blir kalt ved hjelp av følgende syntaks:

SubNavn(Verdi1, Verdi2,...)

Parameterne som sendes til en SUB, må stemme overens med de som er spesifisert i SUB-deklarasjonen.

Den samme prosessen gjelder for funksjoner (FUNCTION). I tillegg returnerer funksjoner alltid et funksjonsresultat. Resultatet av en funksjon defineres ved å tildele returverdien til funksjonsnavnet:

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

Programkode

FunksjonsNavn=Resultat

End Function

Funksjonen blir anropt ved hjelp av følgende syntaks:

Variabel=FunksjonsNavn(Parameter1, Parameter2,...)

Tipsikon Du kan også bruke et fullstendig navn til å kalle opp en prosedyre eller funksjon: Library.Module.Macro() Hvis du for eksempel skal kalle opp Autotext-makroen fra Gimmicks-biblioteket, bruker du følgende kommando: Gimmicks.AutoText.Main()

Sende variabler ved verdi eller referanse

Parametere kan sendes til en SUB eller en FUNCTION enten ved referanse eller ved verdi. Med mindre noe annet er spesifisert, blir en parameter alltid sendt ved referanse. Det betyr at en SUB eller en FUNCTION mottar parameteren og kan lese og endre verdien for den.

Hvis du vil sende en parameter ved verdi, setter du inn nøkkelordet "ByVal" foran parameteren når du kaller opp en SUB eller FUNCTION, for eksempel:

Resultat = Funksjon(ByVal Parameter)

I dette tilfellet vil ikke originalinnholdet i parameteren bli endret av funksjonen siden den bare får verdien og ikke selve parameteren.

Omfang til variabler

En variabel som er definert innenfor en SUB eller FUNCTION, er bare gyldig inntil prosedyren er avsluttet. Dette kalles en "lokal" variabel. Ofte har du bruk for at en variabel er gyldig i alle prosedyrer, i alle moduler i alle Biblioteker, eller etter at en SUB eller FUNCTION er avsluttet.

Deklarere variabler utenfor en SUB eller FUNKSJON

GLOBAL VarName As TYPENAME

Variabelen er gyldig så lenge Lotus Symphonysesjonen varer.

PUBLIC VarName As TYPENAME

Variabelen er gyldig i alle moduler.

PRIVATE VarName As TYPENAME

Variabelen er bare gyldig i denne modulen.

DIM VarName As TYPENAME

Variabelen er bare gyldig i denne modulen.

Eksempel på private variabler

Definer private variabler som private for alle moduler ved å angi CompatibilityMode(true).

REM ***** Modul1 *****

Private myText As String

Sub initMyText

myText = "Hallo"

print "in module1 : ", myText

End Sub

REM ***** Modul2 *****

'Option Explicit

Sub demoBug

CompatibilityMode( true )

initMyText

' Returnerer nå tom streng

' (eller det oppstår feil for Option Explicit)

print "Nå i modul2 : ", myText

End Sub

Lagre variabelinnhold etter avslutning av en SUB eller FUNCTION

STATIC VarName As TYPENAME

Variabelen beholder sin verdi inntil neste gang funksjonen eller subrutinen blir angitt. Deklarasjonen må finnes innenfor en SUB eller en FUNKSJON.

Spesifisere returverditypen for en FUNCTION

På samme måte som med variabler kan du inkludere et typedeklarasjonstegn etter funksjonsnavnet, eller typen angitt med "As" og det tilsvarende nøkkelordet til slutt i parameterlisten, for å definere typen til funksjonens returverdi, for eksempel:

Function WordCount(WordText as String) as Integer


Tilbakemelding om produktet | Annen dokumentasjon | Varemerker