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.

Not Simgesi

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.


Not Simgesi

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,...)
Öneri Simgesi

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

Please support us!