VISUAL BASIC 6.0 Yordamlar (Procedures) [ResimLi Anlatım]

Visual Basic bölümünde yer alan bu konu CaPTaNBLaCK tarafından paylaşıldı.

  1. CaPTaNBLaCK

    CaPTaNBLaCK Yeni Üye

    VISUAL BASIC 6.0 Yordamlar (Procedures)

    ResimLi Anlatım

    Yordamlar aslında bize o kadar da yabancı değil çünkü bu güne kadar uygulamalarımızda farkında olmadan bir çok olay yordamı kullandık örneğin "Command1" adlı komut düğmemiz "Click" olayını algıladığı zaman yapacağı işlemleri,

    şeklinde gösteriyorduk. Burada olay yordamımız "Private Sub" ile başlıyor ve "End Sub" ile bitiyor. Programımızı yazarken bazen bir olay yordamının içine çok uzun kodlar yazmak zorunda kalırız bu da bize hata yakalamada ve programa hakim olmamızda zorluk çıkarır işte bu durumda yazacağımız kodları ünitelere bölerek bunları yordam olarak tanımlarız ve olay yordamından oluşturduğumuz kodlar zincirini çağırırız. Bu ünitelere de genel yordamlar ismini veririz dolayısıyla genel yordamlar bir olaya bağlı olmaksızın geliştirilen yordamlar olur. Genel yordamlar bulundukları ortam bakımından ikiye ayrılırlar
    A.) Forma bağlı genel yordamlar : Bunlar form içinde tanımlı ve geçerli olan yordamlardır
    B.) Modül Yordamları : Bunlar modüller içinde kayıtlıdırlar ve bütün formlar tarafından çağırılabilirler
    Yordamlar kendi içlerinde dört kısıma ayrılırlar;
    1.) Function tipi yordamlar : Bu tip yordamlar bir değer hesaplayarak bunu geri gönderirler
    2.) Sub Tipi yordamlar : Bunlar belli bir değer göndermezler sadece tanımlanan işlemi yerine getirirler
    3.) Property tipi yordamlar : Bunlar VB bileşenlerine ek özellikler eklemeye yarayan yordamlardır bu sayede yeni bileşenler oluşturma imkanı verirler.
    4.) Event tipi yordamlar : Bir olay algılandığında tanımlanmış olan işlemi yerine getirir
    --------------------------------------------------------------------------
    A.) Forma bağlı genel yordamlar
    Bu tip yordamları oluşturmak için "kod penceresini" açtıktan sonra Tools / Add Procedure seçeneğini seçeriz

    karşımıza gelen ekranda ise "Name" kısmına yordamımızın ismini sonrada tipini (Type) belirleriz. Hareket alanı (Scope) kısmında ise yordamımızın Genel (Public) ya da Özel (Private) mi olduğunu belirtiriz. Eğer yordamımız Genel ise bu yordama programımızın her yerinden ulaşabiliriz ama Özel ise sadece bulunduğu formdan ulaşılabilir.Genel olarak tanımlanmış bir yordama diğer formlardan ulaşmak için yordamın bulunduğu formu referans vermek gereklidir. Örneğin,
    FormAdi.KDVliFiyat() gibi
    B.) Modül Yordamları
    Yazdığımız kod parçalarını eğer formlardan bağımsız olarak yazarsak bunları daha sonra geliştireceğimiz diğer uygulamalar içerisinde de kullanabiliriz bu sayede zamandan büyük tasarruf etmiş oluruz bunu yapabilmek için ise yazdığımız yordamları bir modül içine kayıt etmeliyiz VB 'de bunu "Project / Add Module" seçeneğini tıklayarak projemize bir modül ekleyerek daha sonrada yordamlarımızı buraya yazarak gerçekleştirebiliriz. Modül içerisine yazdığımız yordamlar bütün formlar tarafından çağırılabilir eğer bazı yordamların sadece bulunduğu modül içerisinden çağırılmasını istiyorsak yordamın Hareket Alanını (Scope) Özel (Private) olarak atamalıyız. Örnek verecek olursak DLL dosyaları içerisinde bir çok yordam bulunan modüllerdir ( Bir DLL dosyasının nasıl oluşturulacağı konusunu ileriki derslerimizde öğreneceğiz) ve biz bir program yazarken Windows 'un bazı DLL dosyalarını kullanarak bunları tekrardan yazma zahmetinden kurtuluruz.
    1.) Function tipi yordamlar Function tipi yordamların geriye değer gönderebilen yordamlar olduğundan bahsetmiştik isterseniz şimdide kullanım şeklini verdikten sonra bunu bir örnekle pekiştirelim

    Kısım Ve Açıklamar:
    Public:İsteğe bağlı. Yordamımızın bütün formlar ve modüller tarafından çağırılabileceğini gösterir
    Private:İsteğe bağlı. Yordamımızın sadece bulunduğu formdan veya modülden çağırılabileceğini gösterir
    Friend:İsteğe bağlı. Sadece Class Modül (*) içerisinde kullanılabilir. Yordamımız projemiz tarafından çağırılabilir fakat bileşenler tarafından çağırılamaz
    Static:İsteğe bağlı. Yordamımızda ki yerel değişkenlerin değerlerini koruyacağını belirtir.
    isim:Gerekli. Yordamımıza vereceğimiz isim
    ArgümanListesi:İsteğe bağlı. Yordamımızda kullanacağımız değişken vb. neler olduğunu tanımlar eğer birden fazla argüman kullanacaksak bunlar birbirinden virgül ile ayrılır
    ifadeler:İsteğe bağlı. Yordamımızda çalışmasını istediğimiz kod parçaları
    * Class Modüllerinin neler olduklarını "Bir DLL dosyasının nasıl oluşturabiliriz" adlı dersimizde öğreneceğiz Şimdi de küçük bir iki örnekle öğrendiklerimizi pekiştirelim



    Yukarda ki örneğimizde Function tipi yordamımız "BombaSayisi" değişkenine bağlı olarak kaç kişinin öleceğini hesaplayan ve bu hesapladığı değeri MsgBox fonksiyonuna geri gönderen bir yordam sanırım burada Function tipi yordamların geriye nasıl değer gönderdiği açıkça görülüyor
    Şimdi de notlarımızın ortalamasını hesaplayan bir program yazalım

    2.) Sub Tipi yordamlar Sub tipi yordamların kullanım şekli aşağıdaki gibidir

    Bu tip yordamların sadece belirli bir işlemler dizisini yerine getiren yordamlar olduğundan bahsetmiştik isterseniz şimdi bunları bir kaç örnekle pekiştirelim

    Yukarda ki örneğimizde Sub tipi yordamımız geriye değer gönderemediği için sonucu gene "Toplam" yordamı içerisinden MsgBox fonksiyonu ile görüntülüyoruz. Sub tipi yordamları genelde dosya işlemlerinde (açma,kapatma,kaydetme vb) ve veritabanı işlemleri gibi geriye değer gönderilmesi zorunlu olmayan durumlarda kullanıyoruz
    3.) Property tipi yordamlar
    Bu tip yordamların detaylı açıklamasını "Bir OCX dosyası nasıl oluşturulur" adlı dersimizde ele alacağız.
    Yordamlarla Haberleşme Yöntemleri
    Yordamlara haberleşmek için kullanılan argümanların yordama gönderilmesi için kullanılan iki yol vardır bunlar "Değer" ile argüman gönderme ve "Referans" ile argüman gönderme
    Değer (ByVal) ile argüman gönderme
    Bu metot kullanılırsa çağıran programın gönderdiği değerin bir kopyası çağırılan program içerisinde oluşturulur çağırılan program içinde, değişkenin değeri değişse bile çağıran program içerisindeki değer bundan etkilenmez. Bu tip işlemlerde anahtar sözcük "ByVal" 'dır

    Örneğimizde de görüldüğü gibi "y" değeri değişmemiş sadece "d" değeri değişmiştir.Eğer "ByRef" kullansaydık bu durumda "y" değeri de 14 olacaktı bunun uygulamasını da sizlere bırakarak Yazımınızı bitiriyoruz.
     
    Son düzenleme moderatör tarafından: 16 Eylül 2011