Yordamları ve Fonksiyonları Kullanmak
Aşağıdaki açıklama LibreOffice Basic'de yöntem ve işlevlerin temel kullanımı ile ilgili açıklamalar içerir.
Yeni bir modül oluşturduğunuzda, LibreOffice Basic otomatik olarak "Main" adında bir SUB ekler. Bu varsayılan ismin LibreOffice Basic projesinin sırasıyla veya başlama noktasıyla ilgisi yoktur. İsterseniz bu SUB'ı yeniden adlandırabilirsiniz.
Ortak değişkenlerin, alt yordamların ve fonksiyonların isimleri için bazı kısıtlamalar uygulanır. Aynı kitaplıktaki bir modülle aynı ismi kullanmamanız gerekir.
Yordamlar (SUBS) ve fonksiyonlar (FUNCTION) bir programı mantıksal parçalara ayırarak yapılandırılmış bir genel bakış sağlarlar.
Yordamların ve fonksiyonların bir faydası, görev bileşenli bir program kodladığınızda onu başka bir projede de kullanabilmenizdir.
Prosedürlere (SUB) ve Fonksiyonlara (FUNCTION) Değişken Geçirme
Değişkenler yordamlar ve işlevlerin her ikisini de geçilebilir. Parametreleri kabul etmek için SUB ve FUNCTION tanımlanmış olmalıdır:
Sub SubName(Parameter1 As Type, Parameter2 As Type,...)
Program kodu
End Sub
SUB aşağıdaki söz dizimi ile çağrıldı:
SubName(Value1, Value2,...)
Bir SUB'a geçilecek parametreler SUB tanımlamasında belirtilenlere uygun olmalıdır.
Aynı süreç FUNCTION'lar için de geçerlidir. Ek olarak fonksiyonlar her zaman bir fonksiyon sonucu döndürürler. Bir fonksiyonun sonucu fonksiyon ismine atanan dönüş değeriyle tanımlanır.
Function FunctionName(Parameter1 As Type, Parameter2 As Type,...) As Type
Program kodu
FonksiyonAdı=Sonuç
End Function
FUNCTION aşağıdaki söz dizimi ile çağırıldı:
Variable=FunctionName(Parameter1, Parameter2,...)
Bir yordam veya fonksiyonu çağırmak için tam adını da kullanabilirsiniz:
Library.Module.Macro()
Örneğin, Autotext makrosunu Gimmicks kitaplığından çağırmak için aiağıdaki komutu kullanın:
Gimmicks.AutoText.Main()
Değer ya da Başvuru ile Değişken Geçirmek
Bir SUB'a veya bir FUNCTION'a parametreler başvuru veya değer ile geçilebilirler. Aksi belirtilmedikçe bir parametre her zaman başvuru ile geçilir. Bu bir SUB veya FUNCTION'ın bir parametre alıp ve onun değerini okuyup düzenleyebileceği anlamına gelir.
Bir parametreyi değeriyle geçmek isterseniz bir SUB veya FUNCTION çağırdığınızda "ByVal" anahtar kelimesini parametrenin önüne ekleyin, örneğin:
Sonuç = Function(ByVal Parametresi)
Bu durumda parametrenin asıl içeriği, parametrenin kendisini değil sadece değerini alacağından FUNCTION tarafından düzenlenmeyecektir.
Değişkenlerin Etki Alanı
Bir SUB veya FUNCTION içinde tanımlanan bir değişken yordamdan çıkılana kadar geçerli kalır. Bu "yerel" bir değişken olarak bilinir. Bir çok durumda tüm yordamlarda, tüm kitaplıkların tüm modüllerinde veya bir SUB ya da FUNCTION'dan çıkıldığında geçerli olacak bir değişkene ihtiyacınız olur.
Bir SUB ya da FUNCTION Dışında Değişken Tanımlamak
GLOBAL VarName As TYPENAME
Bu değişken LibreOffice oturumu sonlanana kadar geçerlidir.
PUBLIC VarName As TYPENAME
Bu değişken tüm modüllerde geçerlidir.
PUBLIC VarName As TYPENAME
Bu değişken sadece bu modülde geçerlidir.
Dim VarName As TYPENAME
Bu değişken sadece bu modülde geçerlidir.
Özel değişkenler için örnek
CompatibilityMode(true) ayarı ile özel değişkenlerin modüller arasında özel olmasını zorla.
' ***** Module1 *****
Private myText As String
Sub initMyText
myText = "Selam"
print "modul1de : ", myText
End Sub
' ***** Module2 *****
'Option Explicit
Sub demoBug
CompatibilityMode( true )
initMyText
' Şimdi boş karakter dizisi döner
' (or raises error for Option Explicit)
print "Şimdi module2 : ", myText
End Sub
Bir SUB veya FUNCTION'dan Çıkarken Değişken İçeriği Kaydediliyor
STATIC VarName As TYPENAME
FUNCTION veya SUB girilene kadar değişken değerini korur. Bildirim bir SUB veya FUNCTION içinde yapılmalıdır.
Bir FUNCTION için Geri Dönüş Değer Türü Belirleniyor
Değişkenlerde olduğu gibi fonksiyonun türünü tanımlamak için fonksiyon adından sonra bir tür belirleme karakteri ekleyin veya parametre listesinin sonuna "As" ve karşılık gelen anahtar kelimeyi ekleyin.
Function WordCount(WordText As String) As Integer