ProsedürBağı
Bir prosedürü çalıştırmak için her zaman prosedürün kendi adını girmek gerekiyor. Fakat bazı durumlarda çalıştırılması öngörülen prosedürler önceden bilinemeyebiliyor, özellikle bu çalıştırılması istenen prosedürler bir Kütüphaneden bağlanacak ise. Bu ve buna benzer durumlarda ProsedürBağı devreye giriyor.
ProsedürBağı bir değişken gibidir, ama gerçek bir prosedüre işaret eder. Bir ProsedürBağını kullanmadan önce her zaman geçerli bir işareti olup olmadığını kontrol etmek gerekir. Eğer ProsedürBağı geçersiz bir adrese işaret ediyor veya sıfır değerini veriyor ise, uygulama kendini hata vererek sonlandırır.
Örnek:
Prosedür birProsedür ( Rakam rak1; rak2 ) Rakamdır
Sonuç rak1 + rak2
ProsedürSon
Prosedür Başlat ()
? Bir ProsedürBağı tanımlanıyor
ProsedürBağı yapBirşey ( Rakam rak1; rak2 ) Rakamdır
? Gerçek bir prosedüre işaret ediliyor
yapBirşey = birProsedür
? Bağlantının geçerliliği kontrol ediliyor
Eğer yapBişey = Evet İse
? Bağlantı varsa, işaret edilen prosedür çalıştırılıyor
Denetim yapBirşey( 15; 8 )
EğerSon
ProsedürSon
ProsedürBağı iki şekilde belirlenebilir. Birinci model yukardaki örnekte olduğu gibi, işaret edeceği prosedürün parametre ve sonuç verme türüyle aynı olmak zorundadır. Bu yöntem önerilen yöntemdir. Böylece uyumsuz prosedürleri yanlışlıkla bağlayamaz ve çalıştıramazsın ve hata derleme yapılacak esnada otomatik olarak tespit edilir.
İkinci modelde ProsedürBağı bellir bir parametre ve sonuç verme yapısına sahip değildir. Bu tür ProsedürBağı her türlü prosedüre işaret edebilir. Fakat çalıştırılacak prosedür yinede doğru parametre yapısıyla çalıştırılmalıdır. Aksi taktirde derleyici uygulama hata vererek sonlanabilir ve temiz çalışmaz ve beklenmedik sonuçlar doğurabilir.
Bu yöntemde bir prosedür örneği şöyle:
Prosedür birProsedür ( Rakam rak1; rak2 ) Rakamdır
Sonuç rak1 + rak2
ProsedürSon
Prosedür başkaProsedür ( Metin mesajMetni ) Metindir
Sonuç "Deki: " & mesajMetni
ProsedürSon
Prosedür Başlat ()
? Bir ProsedürBağı tanımlanıyor
ProsedürBağı yapBirşey
? Gerçek bir prosedüre işaret ediliyor
yapBirşey = birProsedür
? Bağlantının geçerliliği kontrol ediliyor
Eğer yapBişey = Evet İse
? Bağlantı varsa, işaret edilen prosedür çalıştırılıyor
Denetim yapBirşey( 15; 8 )
EğerSon
? Gerçek bir prosedüre işaret ediliyor
yapBirşey = başkaProsedür
? Bağlantının geçerliliği kontrol ediliyor
Eğer yapBişey = Evet İse
? Bağlantı varsa, işaret edilen prosedür çalıştırılıyor
Denetim yapBirşey( "Merhaba Dünya" )
EğerSon
ProsedürSon