Programımızın Amaçları
1 - gunler Adlı bir değişken tanımlayıp buna haftanın gunlerini değer olarak atıyacağız.
2- bu değişkenleri Bir döngü araçılığı ile ListBox1 nesnesinin öğeleri haline getireceği
3- gunler değişkenimize sonrada bir Değer daha ekleyerek
bunuda listemize eklemeyi deniyeceğiz.
--------------------------------------------------------------------
Programımızın Nesneleri :
1- Bir ListBox Nesnesi Ekleyerek , Name özelliğini ; "lstGunler" (Tırnak işaretleri yok) yapalım.
2- 3 adet Button Nesnesi Ekleyip alt alta hizalayalım ,
en üstteki yani ilk butonumuzun , Name özelliğini ; "btnEkle" (Tırnak işaretleri yok)
olarak değiştirelim. Text Özelliğini ise ; "İlk Değişkenleri Yükle" (Tırnak işaretleri yok) olarak değiştirelim
İkinci Buttonımızın , Name özelliğini ; "btnGuncel" (Tırnak işaretleri yok) olarak değiştirelim. Text özelliğini ise ; "Yeni Değişkeni Ekle"(Tırnak işaretleri yok) olarak değiştirelim.
Üçüncü buttonımızın , Name özelliğini ; "btnIlk"(Tırnak işaretleri yok) olarak değiştirip , Text özelliğinide "En Başa Dön" (Tırnak işaretleri yok) olarak değiştirelim
Bu özellikleri ve Arayüzü ayarladıktan sonra artık program
Kodunu Yazmaya geçebiliriz. Sonraki Adımlarıda Program Kodu içersinde açıklayarak ilerliyeceğim.
---------------------------------------------------------------------
Program Kodu : (Kodu Direkt VB'ye Kopyalarak Devam Edebilirsiniz.)
Dim gunler() As String = {"Pazartesi", "Salı", "Çarşamba", "Perşembe" _
, "Cuma", "Cumartesi", "Pazar"}
'Burada Array değişkenimi tanımlayıp değerlerini atadım.
'Değer atamaksızın tanımlasaydım Dim Gunler(6) olarak
'tanımlamam gerekirdi. Fakat değerleri sonra atanmak
'durumunda kalırdı. Kullanıcıdan bilgi girişi alınarak
'değişkenlerin değerini bellirlerken Array değişken
'bu şekilde tanımlanmalıdır. (Başka Bir örnekte açıklancaktır)
' gunler(6) yazmamın sebebi Değişkenler 0 (Sifir)dan başlayarak
'Tanımlanmasıdır. yani 8 öğeli değişken 7 yazılarak tanımlanır
' açılımı ise 0,1,2,3,4,5,6,7 dir. Sifir dahil olunca 8 adet
'Değişken elde etmiş oluruz.
Dim i As Byte ' Döngüde kullanacağım Değişkeni tanımladım
'İlk Butonumuzun Click olayını inceliyelim
Private Sub btnEkle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEkle.Click
lstGunler.Items.Clear() ' listemi olası Tekrarlardan korumak için temizliyorum
' bu ifade diğer button_Click olaylarındada vardır. bu kodu temizlerseniz
'Nasıl bir hataya sebeb olduğunu görüceksiniz.
For i = 0 To UBound(gunler) ' burada bir Döngü başlatıyorum
' UBOUND fonksiyonu ile gunler Dizi değişkeninin en son sayısını bulmak
' için kullandım LBOUND fonksiyonuda VB.NET'de mevcuttur fakat her zaman
' 0 (Sifir) değerini döndürür. VB 6 da OPTION BASE deyimi ile Dizi değişkenlerin
' başlangıç değerini 0 veya 1 olarak ayarlama imkanımız vardı ve bu Fonksiyonlar
'çok faydalıydı. Ancak VB.NET'te OPTION BASE desteklenmemektedir. ve Dizi
'Değişkenler Herzaman Sıfırdan Başlamaktadır.
'Neden oraya 6 yazmadımda UBOUND fonksiyonu ile buldurdum. Aslında Bu
'Uygulamada buna gerek olmamasına karşın ileride programlarımız büyükdükçe
' Döngünün ne kadar döndürüleceği veya Dizi değişkenimizin Boyutlarının
'her zaman sabit kalamayacağı gerçeği karşımıza çıkacaktır
'bundan dolayı ileride alışkanlık olması açısından ucu acık bir kod yazdım
' Diğer tabiriyle Programıma Esneklik Kattım.
With lstGunler.Items ' burada kodumuza pratiklik kazandıran With deyimini
'kullandım burada kullanmama gerek yok fakat başka zaman başka yerde
'işinize yarayacak olmasına karşın yazdım. Neden Gerek yok ?
' Çünkü Döngü 7 Kere Aynı Komutu çalıştıracaktır.
'Eğer Döngü kullanmadan yazmak isteseydim her seferinde
'lstGunler.Items.Add Yazarak öğe Eklemek durumunda Kalıcaktım
' ama With lstGunler.Items ..... End With Deyimini kullanarak
' programın kod yükünü Hafiflettim Bu deyimler arasında "." Noktaya
'basarsak VB Addsence özelliği sayesinde LstGunler.Items 'a ait
'özellik ve metodları listelenecektir.
.Add(gunler(i)) ' gunleri Listeme Ekledim.
End With ' With Deyimini sonlandırdım
Next ' dongumun basına donerek gereken kadar dondurulmesini sağladım.
End Sub
Private Sub btnGuncel_Click(ByVal sender As System.Object _
, ByVal e As System.EventArgs) Handles btnGuncel.Click
ReDim gunler(7) ' burada görüldüğü gibi ReDim ifadesini kullanarak
'Array (Dizi) Değişkenimin Boyutlarını büyüterek tekrar tanımladım.
' bir Preserve ifadesini ekleyerek önceden Yani En yukarıda Atadığım değerleri
'korumasını Söyledim. Buradan PreServe İfadesini kaldırırsanız ListBox'a
' herhangi bir değer eklenmmiyecek ve Program Hata verip Çalışmayı Durduracaktır.
'deneminizde fayda var !!
lstGunler.Items.Clear() ' burayı yukarıda anlattım
For i = 0 To UBound(gunler)
gunler(7) = "Tatil Günü" ' burada Arrayımın Genişlettiğim Kısımına değerini Atadım.
With lstGunler.Items
.Add(gunler(i)) ' ve Diğer değişkenlerle birlikte Bu değerinde liste Kutusuna
'eklenmesini Sağladım. Eğer Yukarda PreServe Komutunu Girmeseydim Burada Sadece
'tatil Gunleri eklenecekti. tabii Bir oncekilerin Değeri KAybedilceğinden
' dolayı prgoramım hata vericekti ama Gunler(7) ="Tatil Günleri" komutu işletilmiş
'olucaktı. Sonuc Diğer değerler kaybolmuş olucak sadece Gunler(7) değişkenimin
'değeri belli olucaktı. Bunu Engellemek ve bir önceki değerleri korumak namına
'PreServe deyimini ReDim ifadesine ekledim.
End With
Next
End Sub
Private Sub btnIlk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIlk.Click
ReDim Preserve gunler(6) ' burada Tekrar Array Değişkeni boyutlandırdım
lstGunler.Items.Clear() ' listemi Temizledim.
For i = 0 To UBound(gunler) ' Döngümü Başlattım.
With lstGunler.Items
.Add(gunler(i)) ' ve listeye İlk atadığım değerlerin Yüklenmesini sağladım
' peki burada Gunler(7) değişkenine ne oldu ? Sizinde Tahmin edeceğiniz üzere
'Sevgili arkadaşlar Gunler(7) değişkeni yandı bitti Kül oldu

End With
Next
End Sub
' Programımın Sonu
![[Resim: 114ld.jpg]](http://b1112.hizliresim.com/s/c/114ld.jpg)