LibreOffice 7.2 Hjælp
Det følgende beskriver den basale brug af proceurer, funktioner og egenskaber i LibreOffice Basic.
Når du opretter et nyt modul, indsætter LibreOffice Basic automatisk en Sub kaldet "Main". Dette standardnavn har intet at gøre med rækkefølgen i eller udgangspunktet for et LibreOfficeBasic-projekt. Du kan også trygt omdøbe denne Subrutine.
Nogle restriktioner gælder navnene på dine delte variabler, subrutiner, funktioner og egenskaber. Du må ikke bruge det samme navn som på et af modulerne i det samme bibliotek.
Procedurer (Subrutiner), funktioner (Function) og egenskaber (Property) hjælper dig med at opretholde et struktureret oveblik ved at opdele et program i logiske stykker.
En fordel ved procedurer, funktioner og egenskaber er at, når du én gang har udviklet en programkode, der indeholder opgave-komponenter, kan du bruge denne kode i et andet projekt.
Variabler kan overføres til både procedurer, funktioner og egenskaber. Sub Function eller egenskab skal være erklæret for at forvente parametre:
Sub SubName(Parameter1 As TYPENAME, Parameter2 As TYPENAME,...)
' din kode sættes her
End Sub
Sub-rutinen kaldes med følgende syntaks:
[Call] SubName( [Parameter1:=]Value1, [Parameter2:=]Value2, ...)
Parametre, der er overført til en Sub, skal passe til dem, der er angivet i sub-erklæringen.
Den samme proces gælder en Function. Derudover returnerer funktioner altid et funktionsresultat. Resultatet af en funktion defineres ved at tildele funktionsnavnet den returnerede værdi.
Function FunctionName(Parameter1 As TYPENAME, Parameter2 As TYPENAME,...) As TYPENAME
' din kode skrives her
FunctionName=Result
End Function
Function kaldes med den følgende syntaks:
Variable = FunctionName( [Parameter1:=]Value1, [Parameter2:=]Value2, ...)
Properties combine the syntax of procedures and functions. A Property usually requires up to one parameter.
Private _IsApproved As TYPENAME
Property Get IsApproved As TYPENAME
' din kode skrives her
IsApproved = some_computation
End Property
Property Let IsApproved(value As TYPENAME)
' din kode skrives her
_IsApproved = computed_value
End Property
Property kaldes med den følgende syntaks:
var = IsApproved
IsApproved = some_value
You can also use the fully qualified name to call a procedure, function or property:
[Call] Library.Module.Macro(), where Call is optional.
For example, to call the Autotext macro from the Gimmicks library, use the following command:
Gimmicks.AutoText.Main()
Parametre kan overføre til en procedure, en funktion eller en egenskab enten med henvisning eller med værdi. Med mindre det er specificeret anderledes, overføres en parameter altid med henvisning. Det betyder, at en Sub, en Function eller en Property får parameteren og kan læse og ændre dens værdi.
Hvis du vil overføre en parameter med værdi, indsætter du nøgleordet ByVal foran parametren, når du kalder en Sub, en Function eller en Property, for eksempel:
Function ReadOnlyParms(ByVal p2, ByVal p2)
' din kode skrives her
End Function
result = ReadOnlyParms(parm1, parm2)
I dette tilfælde vil parameterens oprindelige indhold ikke blive ændret af Function -en, eftersom den kun modtager værdien og ikke parameteren selv.
Funktioner, procedurer eller egenskaber kan defineres med valgfrie parametre, for eksempel:
Sub Rounding(number, Optional decimals, Optional format)
' din kode skrives her
End Sub
When you call a function or a subroutine, you may pass its arguments by position or by name. Passing by position means just listing the arguments in the order in which the parameters are defined in the function or subroutine. Passing by name requires you to prefix the argument with the name of the corresponding parameter followed by a colon and an equal sign (:=). Keyword arguments may appear in any order. Refer to Basic Replace() function for such examples.
When needing to pass less parameters, use keywords arguments. Passing values for fewer parameters by position requires to supply values for all parameters before them, optional or not. This ensures that the values are in the correct positions. If you pass the parameters by name - using keyword arguments - you may omit all other intermediate arguments.
En variabel, der er defineret inden for en Sub, en Function eller en Property, forbliver kun gyldig, indtil proceduren forlades. Dette er kendt som en "lokal" variabel. I mange tilfælde har du brug for, at en variabel er gyldig i alle procedurer, i hvert modul i alle biblioteker eller efter at en Sub, en Function eller en Property er forladt.
Global VarName As TYPENAME
Variablen er gyldig, så længe LibreOffice-sessionen varer.
Public VarName As TYPENAME
Denne variabel er gyldig i alle moduler.
Private VarName As TYPENAME
Denne variabel er kun gyldig i dette modul.
Dim VarName As TYPENAME
Denne variabel er kun gyldig i dette modul.
Håndhæv, at private variabler er private på tværs af moduler ved at sætte CompatibilityMode(True).
' ***** Module1 *****
Private myText As String
Sub initMyText
myText = "Hej"
Print "I modul1: ", minTekst
End Sub
' ***** Module2 *****
'Option Explicit
Sub demoBug
CompatibilityMode( True )
initMyText
' Returnerer nu en tom streng
' (eller markerer fejl ved Option Explicit)
Print "Nu i modul2: ", minTekst
End Sub
Static VarName As TYPENAME
Variablen beholder sin værdi, indtil næste gang der gås ind i en Function, Sub eller Property. Erklæringen skal findes i en Sub, en Function eller en Property.
Ligesom med variabler inkluderer du et typeerklærings-tegn efter funktionsnavnet eller typen antydet med As og den tilsvarende datatype i slutningen af parameterlisten for at definere typen på funktionens eller egenskabens returværdi, for eksempel:
Function WordCount(WordText As String) As Integer