Korištenje Procedura i Funkcija
Slijedeće opisuje osnovnu upotrebu procedura i funkcija u LibreOffice Basic-u.
Kada kreiraš novi modul , LibreOffice Basic automatski unosi SUB zvani "Osnovni". Ovo dodijeljeno ime nema veze sa poretkom početne tačke LibreOffice Basic projekat. Također možeš sigurno preimenovati ovaj SUB.
Some restrictions apply for the names of your public variables, subs, and functions. You must not use the same name as one of the modules of the same library.
Procedure (SUBS) i funkcije (FUNCTIONS) pomažu pri održavanju strukturalnog pregleda rastavljanjem programa u logične dijelove.
Prednost procedura i funkcija je što, kada razviješ program koji sadrži kompnente zadatka, možeš koristiti kod u drugom projektu.
Prenošenje Varijabli Procedurama (SUB) i Funkcijama (FUNCTION)
Variable se mogu prenijeti objema procedurama i funkcijama. SUB ili FUNCTION mora biti deklarisana da očekuje parametre:
Sub SubName(Parameter1 As Type, Parameter2 As Type,...)
Kod programa
End Sub
SUB je pozvan koristeći slijedeću sintaksu:
SubName(Value1, Value2,...)
Parametri preneseni SUB-u moraju odgovarati onima koji su određeni pri SUB deklaraciji.
Isti proces se primjenjuje FUNKCIJAMA. Uz to, funkcije uvijek vraćaju rezultate funkcije.Rezultat funkcije je definisan dodjelom povratne vrijednosti imenu funkcije:
Function FunctionName(Parameter1 As Type, Parameter2 As Type,...) As Type
Kod programa
FunctionName=Result
End Function
Funkcija je pozvana koristeći slijedeću sintaksu:
Variable=FunctionName(Parameter1, Parameter2,...)
Također možete koristiti potpuno kvalifikovano ime da bi pozvali proceduru ili funkciju
Library.Module.Macro()
FNa primjer, da bi pozvali Autotext macro iz biblioteke Gimmicks, koristite ovu komandu:
Gimmicks.AutoText.Main()
Prenos Varijabli Vrijednošću ili Referencom
Parametri se mogu dodijeliti SUB-u ili FUNCTION referencom ili vrijednošću. Ukoliko nije drukčije odrđeno, parametar je uvijek prenesen referencom. To znači da SUB ili FUNCTION dobiva parametar i može čitati i mijenjati vrijednost.
Ako želiš prenijeti parameter sa vrijednošću unesi ključnu riječ "ByVal" ispred parametra kada pozivaš SUB ili FUNKCIJU, na primjer:
Result = Function(ByVal Parameter)
U ovom slučaju, originalni sadržaj parametra neće biti promjenjen FUNKCIJOM jer uzima samo vrijednost a ne sami parametar.
Domena Varijabli
Varijabla definisana unutar SUB ili FUNKCIJE je ispravna samo do izlaza iz procedure. Ovo je poznato kao "lokalna" varijabla. U mnogim slučajevima, potrebna je varijabla koja je ispravna u svim procedurama, u svakom modulu svih biblioteka, ili nakon što se izađe iz SUB ili FUNKCIJE.
Deklarisanje Varijabli izvan SUB ili FUNKCIJE
Global VarName As TYPENAME
varijabla je ispravna sve dok LibreOffice sesija traje.
Public VarName As TYPENAME
Varijabla je ispravna u svim modulima.
Private VarName As TYPENAME
Varijabla je ispravna u svim modulima.
Dim VarName As TYPENAME
Varijabla je ispravna u svim modulima.
Primjer privatnih varijabli
Nametni da privatne varijable budu privatne u svim modulima postavljajuci CompatibilityMode(true).
' ***** Module1 *****
Private myText As String
Sub initMyText
myText = "Hello"
Print "In module1 : ", myText
End Sub
' ***** Module2 *****
'Option Explicit
Sub demoBug
CompatibilityMode( true )
initMyText
Sada vraća prazan string
(ili ističe pogrešku za Option Explicit)
Print "Now in module2 : ", myText
End Sub
Sačuvati sadržaj varijable nakon izlaza iz SUB ili FUNCTION
Static VarName As TYPENAME
Varijabla zadržava vrijednost sve dok se idući put otvori FUNCTION ili SUB. Deklaracija mora postojati unutar SUB ili FUNKCIJE.
Određivanje Tipa Povratne Vrijednosti za FUNKCIJU
Kao i sa varijablama, uključi slovo za deklaraciju tipa poslije imena funkcije, ili tip označen sa "As" i odgovarajućom ključnom rječju na kraju liste parametara da bi definisali tip povratne vrijednosti za funkciju, na primjer:
Function WordCount(WordText As String) As Integer