- Visual Basic Editörü
Bilgisayar programlarını geliştirmek için kullandığımız araçlara editör deriz.Visual Basic için kullandığımız editör sadece visual basic için tasarlanmıştır ve 4 versiyondan oluşur. Bunlar;
Learning Edition
Standart Edition
Professional Edition
Enterprise Edition
Bu editörlerin kullanım açısından hiç bir farkı yoktur. Farklılıkları ise içerdikleri programlama modülleri, araçları ve nesnelerden ibarettir.
Visual Basic editörünü çalıştırmak için Başlat->Programlar->Microsoft Visual Studio->Microsoft Visual Basic menülerini kullanabilirsiniz veya daha önceden kaydetmiş olduğunuz Visual Basic Proje dosyalarına çift tıklama yolunu kullanabilirsiniz. Eğer proje dosyasını kullanarak Visual Basic editörünü çalıştırırsanız direk olarak seçtiğiniz proje açılacaktır. Başlat menüsü ile Visual Basic editörünü çalıştırısanız karşınıza yeni proje türünü seçmenizi, en son çalışılan projelerden birini açmanızı veya daha önce çalıştığınız proje dosyasının yerini göstermenizi amaçlayan bir diyalog karşınıza gelecektir (Resim 1.1).
Resim 1.1 Visual Basic başlangıç diyalog penceresi.
Bu ders kapsamında göreceğiniz konuları uygularken Standart EXE türündeki proje türünü seçebilirsiniz. Standart EXE proje türünü seçtikten sonra "Aç" düğmesine tıkladığınızda yeni bir projeyi Visual Basic editörü sizin için hazırlar(Resim 1.2).
Resim 1.2 Visual Basic editörü.
Visual Basic projelerini geliştirken en çok kullanılan editör araçları Resim 1.2'de gösrterilen Toolbox, Project Manager, Properties Window, Form Penceresi dir.
ToolBox : Form Penceresi üstüne yerleştireceğimiz nesneleri eklemek için kullanılan araç çubuğudur. Form üstüne bir nesne eklemek için üstündeki simgelerden istenilen nesnenin simgesine tıklanıp form üstüne resim çizilir gibi eklenir.
Project Manager : Üstünde çalıştığılan projenin form, modül vb. temel nesneleri arasında geçiş yapmak, projeye yeni form, modül vb.nesneleri eklemek ve projeye eklenmiş olan form, modül vb. nesneleri projeden çıkarmak için kullanılan proje yönetim penceresidir.
Properties Window : Proje içindeki nesnelere ait özelliklerin görüntülendiği ve değerlerinin değiştirilmesi için kullanılan penceredir. Kullanımda özellikleri değiştirilecek nesne(ler) seçildikten sonra değişiklik Properties Window içindeki iki sütunlu tablonun sağ sütunundaki değer değiştirilir.
Form Penceresi : Proje dahilinde istenilen sayıda form kullanılabilir. Proje doğrultusunda geliştirilen programın arayüzlerini oluşturduğumuz tasarımları oluşturduğumuz bölümdür.
Editör ile çalışırken kullanılmayan pencere ve araç çubuklarını saklamak için veya kullanılacak pencere veya araç çubuğu saklı ise tekrar görünür hale getirmek için View menüsünü kullanalır.(Resim 1.3 )
Resim 1.4 View Menüsü
- Nesne
Programlar hazırlanırken kullanıcı arayüzünde kullanıcı ile programın iletişime geçmesini sağlayan veya bir amaç doğrultusunda hazırlanmış programlama araçlarıdır. Örneğin Label nesnesi programın arayüzüne yerleştirilen ve kullanıcı tarafından değiştirilemeyen metinleri kullanıcıya sunmayı amaçlayan görsel bir nesneyken, Timer nesnesi kullanıcının göremeyeceği fakat belirtilen zaman aralıklarında istenilen görevleri yerine getiren bir nesnedir.
Nesnelerin Özellikleri : Bir program geliştirirken veri girişini, sunumlarını ve özel uygulamaları nesneleri kullanarak gerçekleştiririz. Bir nesneyi kullanmak o nesnenin özelliklerini amaçlar doğrultusunda değiştirebilmek ve olaylarını iş akışını sağlayacak şekilde kullanmak anlamındadır. Bir nesnenin yatay ve düşey konumu, adı, görünürlüğü ve erişelebilirliği bir nesnenin temel özellikleridir. Nesnelere ait özellikler değiştirilirken aşağıdaki ifade kullanılır :
Nesnenin adı = Label1
Nesnenin özelliği = Caption
Nesnenin özelliğinin yeni değeri = "Visual Basic" ise
Label1.Caption = "Visual Basic"
Komut satırı Label1 nesnesinin Caption özelliğini "Visual Basic" olarak değiştirecektir. Nesnelerin bir çok özelliği çalışma anında (Run Time) değiştirilebilirken adı (Name) özelliği gibi bazı özellikleri sadece tasarım anında (Design Time) değiştirilebilir.
Nesnelere Ait Olaylar : Bir nesneye kullanıcının müdahalesi veya sistemin müdahalesi anında nesnenin programı yönlendirmesi için hazırlanmış alt programlar (Sub Routine) olay olarak adlandırılır. Örneğin bir bilgi girişi ekranında bütün bilgileri girdikten sonra "Kaydet" düğmesine mouse ile tıklandığında "Kaydet" düğmesinin (Caption özelliği "Kaydet" olan düğmenin ismi Command1 varsayılmıştır.) Private Sub Command_Click olayı çalışır ve programcı programın "Kaydet" düğmesine tıklanıldığında yapması gerekenleri bu alt programa kodlar. Aşağıdaki örneği inceleyiniz.
Private Sub Command1_Click()
Label1.Caption = Text1.Text
End Sub
Yukarıdaki programın açıklaması : Programın ekranında adı yani Name özelliği Label1 olan bir Label, adı Text1 olan bir TextBox ve adı Command1 olan bir CommandButton bulunmaktadır. Command1 düğmesine tıklanıldığında Label1'in içeriğini (Ekranda görünen statik metni) Text1'in içeriği (Kullanıcının Text1'e yazdığı metin) yap.
- Temel Visual Basic Nesneleri
Label Nesnesi : Label nesnesi ekranda yani kullanıcı arayüzünde kullanıcının değiştiremeyeceği sabit metinleri kullanıcıya sunar. Label nesnesinin en çok kullanılan özellikleri;
Name : Her nesnenin olduğu gibi Label nesnesinin de Name özelliği vardır. Bir nesnenin Name özelliği nesnenin programın içindeki adıdır. Bu özellik sadece tasarım anında değiştirilebilir.
Caption : Label nesnesinin ekranda görünen metnini içeren özelliğidir. Caption özelliği değiştiğinde ekrandaki metinde aynı anda değişecektir. Name özelliği ile Caption özelliği karıştırılmamalıdırlar.
Label nesnesine ait olaylar;
Click : Kullanıcı mouse ile nesnesinin üstüne tıkladığında oluşan bir olaydır. Herhangi bir parametresi yoktur.
DblClik : Kullanıcı mouse ile nesnesinin üstüne çift tıkladığında oluşan bir olaydır. Herhangi bir parametresi yoktur.
MouseMove : Kullanıcı mouse imlecini nesnenin üstünde hareket ettirdiği zaman oluşan olaydır. Parametreleri;
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
End Sub
Button : Integer veri tipinde bir parametredir ve mouse'un hangi tuşuna basıldığını gösterir. Parametrenin değerlerine göre ifade ettikleri;
Button Parametresinin değeri |
Basılı olan düğme |
0 |
Hiçbiri |
1 |
Sol |
2 |
Sağ |
3 |
Sol ve Sağ |
Shift : Integer veri tipinde bir parametredir ve klavyenin hangi fonksiyon tuşuna basıldığını gösterir. Parametrenin değerlerine göre ifade ettikleri;
Shift Parametresinin değeri |
Basılı olan tuş
|
0 |
Hiçbiri |
1 |
Shift |
2 |
Ctrl |
4 |
Alt |
3 |
Shift+Ctrl |
5 |
Shift+Alt |
6 |
Ctrl+Alt |
7 |
Shift+Ctrl+Alt |
X ve Y : Single veri tipindeki parametrelerdir ve mouse'un ekran üstündeki koordinatlarını verirler.
MouseDown : Kullanıcı nesnenin üstündeyken mouse'un bir tuşuna bastığı zaman oluşur. Parametreleri MouseMove olayının parametreleri ile aynıdır ve aynı şekilde çalışırlar.
MouseUp : Kullanıcı nesnenin üstündeyken mouse'un basılı tuşunu serbest bıraktığı zaman oluşur. Parametreleri MouseMove olayının parametreleri ile aynıdır ve aynı şekilde çalışırlar.
TextBox Nesnesi : TextBox nesnesi kullanıcı arayüzünde kullanıcının değiştirebiceği dinamik metinleri kullanıcıya sunar ve düzenlemesini bekler. TextBox nesnesinin en çok kullanılan özellikleri;
Name : Bir nesnenin Name özelliği nesnenin programın içindeki adıdır. Bu özellik sadece tasarım anında değiştirilebilir.
Text : TextBox nesnesinin ekranda görünen metnini içeren özelliğidir. Text özelliği değiştiğinde ekrandaki metinde aynı anda değişecektir veya kullanıcı metni düzenlediğinde Text özelliğinin değeri değişecektir. Name özelliği ile Text özelliği karıştırılmamalıdırlar.
MaxLenght : Bu özellik ile TextBox nesnesinin içereceği metnin maksimum uzunluğudur. Örneğin Bir şifre alanına kullanıcı 8 haneden fazla karakter girmesini engellemek istersek maxlenght özelliğini 8'e eşitleyebiliriz. Girilecek metni sınırlandırmamak için de maklenght özelliğini 0'ra eşilenir.
PassChar : Kullanıcının yazdığı karakterlerin yerini alan karakteri içerir. Örneğin bir programa girilirken kullanıcı adı ve parola sorulur ve kullanıcı adı girilirken kullanıcı girdiği kullanıcı adını birebir görebilirken, parolayı girerken parolanın her karakteri için "*" karakterini görür. Bu örnekte parolanın girildiği textbox nesnesinin PassChar özelliği "*" içerir. Bu sayede üçüncü şahıslar girilen parolaları göremezler.
Locked : Kullanıcının ekrandaki metinleri belirli işlemler süreci içinde değiştirmesi engellenmesi için kullanılan özelliktir. Locked özelliğinin değeri True ise kulanıcı metni düzenleyemez ancak False ise düzenleyebilir.
MultiLine : Metnin TextBox içinde birden fazla satırda görüntülenmesine olanak verir.
ScrollBars : MultiLine özelliği True yapıldığında görüntülenmek istenen kaydırma çubuklarını göstermenize veya saklamanıza olanak tanır.
TextBox nesnesine ait olaylar;
Click : Kullanıcı mouse ile nesnesinin üstüne tıkladığında oluşan bir olaydır. Herhangi bir parametresi yoktur.
DblClik : Kullanıcı mouse ile nesnesinin üstüne çift tıkladığında oluşan bir olaydır. Herhangi bir parametresi yoktur.
Change : Kullanıcı TextBox'ın içindeki metni düzenlediği an oluşur. Herhangi bir parametresi yoktur.
MouseMove : Bakınız Label nesnesi MouseMove Olayı.
KeyPress : Kullanıcıdan veya sistemeden programa bir karakter gittiği zaman oluşan olaydır. Parametreleri;
Private Sub Text1_KeyPress(KeyAscii As Integer)
End Sub
KeyAscii : Sistemden veya klavyeden programa gönderilen karakterin Ascii tablosundaki numarasıdır.
KeyDown : Odak nesnenin üstündeyken kullanıcının klavye'nin bir tuşuna bastığı zaman oluşur. Parametreleri;
KeyCode : Klavye üstünde kullanılan tuşun sistemde ilişkilendirildiği numarasıdır.
Shift : Integer veri tipinde bir parametredir ve klavyenin hangi fonksiyon tuşuna basıldığını gösterir. Parametrenin değerlerine göre ifade ettikleri;
Shift Parametresinin değeri |
Basılı olan tuş
|
0 |
Hiçbiri |
1 |
Shift |
2 |
Ctrl |
4 |
Alt |
3 |
Shift+Ctrl |
5 |
Shift+Alt |
6 |
Ctrl+Alt |
7 |
Shift+Ctrl+Alt |
KeyUp : Odak nesnenin üstündeyken kullanıcının klavyede bastığı tuştan parmağını kaldırdığı an oluşur. Parametreleri KeyDown olayının parametreleri ile aynıdır ve aynı şekilde çalışırlar.
CommandButton : Kullanıcı arayüzünde gerekli veriler girildikten sonra bir işlemi başlatmak için kullanılan nesnedir. CommandButton nesnesinin en çok kullanılan özellikleri;
Name : Bir nesnenin Name özelliği nesnenin programın içindeki adıdır. Bu özellik sadece tasarım anında değiştirilebilir.
Caption : Command nesnesinin ekranda görünen metnini içeren özelliğidir. Name özelliği ile Caption özelliği karıştırılmamalıdırlar.
Default : Bir diyalog penceresinde bulunan onay tuşunun Default özelliğine True değerini atarsak, diyalog penceresini kullanan kullanacı pencere üstünde herhangi bir yerde {ENTER} tuşuna basarsa onay tuşuna basmış sayılır. Bir Form üstünde sadece bir CommandButton nesnesinin Default özelliği True değerini alabilir.
Cancel : Bir diyalog penceresinde bulunan iptal tuşunun Cancel özelliğine True değerini atarsak, diyalog penceresini kullanan kullanacı pencere üstünde herhangi bir yerde {ESC} tuşuna basarsa iptal tuşuna basmış sayılır. Bir Form üstünde sadece bir CommandButton nesnesinin Cancel özelliği True değerini alabilir.
CommandButton nesnesine ait olaylar;
Click : Kullanıcı mouse ile nesnesinin üstüne tıkladığında oluşan bir olaydır. Herhangi bir parametresi yoktur.
Private Sub Command1_Click()
End Sub
Not :Diğer Visual Basic nesneleri ileride açıklanacaklardır.
ListBox : Arayüz içinde basit anlamda (tek sütun) listeleri görüntülemekte kullanılan nesnelerdir. ListBox nesnesi içindeki liste elemanları ekrana sığmayacak kadar fazlaysa ListBox nesnesinin sağ tarafında düşey bir kaydırma çubuğu belirir ve bu sayede listenin bütün elemanları görüntülenebilir. Kullanıcı ListBox nesnesindeki bir elemanı seçebileceği gibi duruma göre birden fazla elemanı seçmesi de istenebirilir. ListBox nesnesinin en önemli metodları ve özellikleri aşağıda listelenmiştir. Ayrıca liste elemanlarının görünmeyen bir değerleri vardır. Görünen değer bir String değerdir fakat görünmeyen değer bir Long değerdir.
Özellikleri
ListIndex : Tek seçimli modda seçili olan liste elemanının, çoklu seçim modunda en son seçilen liste elemanının index numarasını saklar. Türü Integer'dır. 1. Liste elemanının ListIndex değeri 0'dır. n. elemanın ListIndex değeri n-1 dir.
ListCount : Liste elemanlarının sayısını verir. Türü Integer'dır.
Text : Seçili Liste elemanın görünen liste değerini verir ve değiştirir. Türü String'dir.
ItemData([ListIndex]) : ListIndex değeri ile belirtilen liste elemanının görünmeyen değerini verir ve değiştirir. Türü Long'dur.
Selected([ListIndex]) : ListIndex değeri ile belirtilen liste elemanın seçli olup olmadığını belirtir ve atar. Türü Boolean'dır.
Sorted : Liste elemanlarının görünen değerlerine göre sıralanıp sıralanmayacağını belirtildiği özelliktir. Türü Boolean'dır.
List([ListIndex]) : ListIndex değeri ile belirtilen liste elemanının görünen değerini verir ve değiştirir.
MultiSelect : Kullanıcının liste içinde birden fazla kayıt seçip seçemeyeceğini belirtildiği özelliktir. Türü Integer'dır.
Metodları
Clear : Liste içindeki bütün elemanları silen metoddur.
ListBox1.Clear
AddItem [Görünen Değer] : Görünen değeri parametre olarak alan bu metod ile listeye eleman eklenir.
ListBox1.AddItem "Visual Basic"
Refresh : Listenin ekran görüntüsünü güncelleyen metoddur.
ListBox1.Refresh
RemoveItem([ListIndex]) : ListIndex ile belirtilen liste elemanını listeden siler.
ListBox1.Remove(0)
ComboBox : Arayüz içinde basit anlamda (tek sütun) listeleri tek satırda (sadece seçili liste elemanını) görüntülemekte kullanılan nesnelerdir. ComboBox nesnesi içindeki liste elemanları birden fazlaysa ComboBox nesnesinin sağ tarafındaki düşey ok tüşüna basılınca sağ tarafında duruma göre kaydırma çubuğu olan bir liste belirir ve bu sayede listenin bütün elemanları görüntülenebilir. ComboBox nesnesinin en önemli metodları ve özellikleri aşağıda listelenmiştir. Ayrıca liste elemanlarının görünmeyen bir değerleri vardır. Görünen değer bir String değerdir fakat görünmeyen değer bir Long değerdir.
Özellikleri
ListIndex : Tek seçimli modda seçili olan liste elemanının, çoklu seçim modunda en son seçilen liste elemanının index numarasını saklar. Türü Integer'dır. 1. Liste elemanının ListIndex değeri 0'dır. n. elemanın ListIndex değeri n-1 dir.
ListCount : Liste elemanlarının sayısını verir. Türü Integer'dır.
Text : Seçili Liste elemanın görünen liste değerini verir ve değiştirir. Türü String'dir.
ItemData([ListIndex]) : ListIndex değeri ile belirtilen liste elemanının görünmeyen değerini verir ve değiştirir. Türü Long'dur.
Selected([ListIndex]) : ListIndex değeri ile belirtilen liste elemanın seçli olup olmadığını belirtir ve atar. Türü Boolean'dır.
Sorted : Liste elemanlarının görünen değerlerine göre sıralanıp sıralanmayacağını belirtildiği özelliktir. Türü Boolean'dır.
List([ListIndex]) : ListIndex değeri ile belirtilen liste elemanının görünen değerini verir ve değiştirir.
Style : ComboBox'ın ekran üstündeki görünümünü ve kullanımını değiştirir. Sadece tasarım anında değiştirilebilir.
Metodları
Clear : Liste içindeki bütün elemanları silen metoddur.
ComboBox1.Clear
AddItem [Görünen Değer] : Görünen değeri parametre olarak alan bu metod ile listeye eleman eklenir.
ComboBox1.AddItem "Visual Basic"
Refresh : Listenin ekran görüntüsünü güncelleyen metoddur.
ComboBox1.Refresh
RemoveItem([ListIndex]) : ListIndex ile belirtilen liste elemanını listeden siler.
ComboBox1.Remove(0)
Horizantal ve Vertical ScrollBar : Arayüz içine sığmayan bilgilerin veya listelelerin görünmeyen yerlerinde dolaşmak için kullanılan nesnelerdir. Bu nesnelerin tek yaptıkları arayüzde minimum ve maximum değeri belli olan kaydırma çubuklarının tutamaçlarının kullanıcı tarafından yerleri kullanıcı tarafından değiştirilmesi durumunda oluşacak olayla programcı kendi bilgilerini birleştirir ve ekran üstünde bütün bilgileri kademeli olarak kullanıcıya aktarabilir. Buna örnek olarak bir harita üstünde kullanıcıyı dolaştırmak verilebilir. Bu nesnelerin en önemli özellikleri ve olayları aşağıda açıklanmıştır.
Özellikleri
Value : Kaydırma çubuğu tutamacının mevcut konumunu belirtir. Türü Integer'dır.
Min : Kaydırma çubuğu tutamacının en solda veya en altta olduğu zaman aldığı Value değeridir. Türü Integer'dır.
Max : Kaydırma çubuğu tutamacının en sağda veya en üstta olduğu zaman aldığı Value değeridir. Türü Integer'dır.
Olayları
Change Olayı : Kaydırma tutamacının konumunun değişmesiyle olurur.
Scroll Olayı : Kaydırma tutamacının konumunun fare ile sürüklenerek değiştirilmesi sırasında oluşur.
CheckBox : Kullanıcıdan bir onay alınması gerektiğinde veya bir bilginin olup olmadığında (Doğru/Yanlış) kullanıcıya bilgi vermek için veya kullanıcıdan bilgi almak amacıyla kullanılan nesnedir. CheckBox'a ait önemli özellikler ve olaylar aşağıda açıklanmıştır.
Özellikleri
Caption : CheckBox'ın yanındaki metni içeren özelliktir.
Value : CheckBox'ın seçili olma durumunu gösteren ve değiştiren özelliktir. Türü Integer'dır.
Olayları
Click Olayı : Kullanıcı tarafından CheckBox nesnesinin seçilme durumunun değiştirilmesiyle gerçekleşir.
RadioButton : Kullanıcıdan birden çok seçenek içinden sadece birini seçmesi istenildiğinde kullanılan nesnedir. Bir form içinde gruplanmamış olan RadioButton'lar içinden sadece bir tanesi seçilebilir. RadioButton'a ait önemli özellikler ve olaylar aşağıda açıklanmıştır.
Özellikleri
Caption : RadioButton'ın yanındaki metni içeren özelliktir.
Value : RadioButton'ın seçili olma durumunu gösteren ve değiştiren özelliktir. Türü Boolean'dır.
Olayları
Click Olayı : Kullanıcı tarafından RadioButton nesnesinin seçilme durumunun değiştirilmesiyle gerçekleşir.
- Visual Basic Nesnelerinin Ortak Özellikleri
Görsel Özellikler : Nesnenin görselliği ile ilgili özelliklerdir.
Alignment : Nesne içindeki metnin yatay hizalama şeklini içerir.
BackColor : Nesnenin arkaplan rengini içerir.
Enabled : Nesnenin erişilebilirliğini belirleyen özelliktir.
Font : Nesne üstündeki metnin yazı biçimini yapıandıran özelliktir.
MousePointer : Mouse'un ekran üstündeki şeklini belirler. önceden tanımlanmış şekillerin yanısıra 99-Custom özelliği ile istenilen cursor şeklini elde edebilirsiniz.
MouseIcon : Mouse'un ekran üstündeki özel (Custom) şeklini içeren özelliktir.
TabStop : Kullanıcı Tab tuşunu kullandığında odağın nesne üstünde durup durmayacağını belirler.
TabIndex : Nesnenin Tab sırasını kontrol eder.
Tag : Gerektiğinde kullanılması amacıyla programcı için açıklama yeri.
ToolTipText : Nesnenin açıklamasını kullanıcıya göstermek amacı ile kullanılan TollTip'lerin yazıldığı özelliktir.
Diğer Özellikler :
Index : Nesnenin nesne dizileri içindeki numarasıdır.
- Değişkenler
Değişkenler içlerinde veri saklayan programlama arçlarıdır. Bir programı geliştirirken programcı iki türlü veri kullanır bunlar karakter dizileri ve sayısal verilerdir. Bu da bir programlama dilinde verileri depolayan araçları ikiye ayırmayı zorunlu kılmıştır. Diğer programlama dillerinde olduğu gibi Visual Basic'te de veri depolayan araçlar yani değişkenler ikiye ayrılırlar. Bunlar : Karakter dizileri ve sayısal değişkenlerdir. Değişkenlerle ilgili daha ayrıntılı bilgi için aşağıdaki tabloyu inceleyiniz.
Karakter Dizileri
|
|
Sayısal Değişkenler |
|
Byte |
0-255 arası tam sayı |
1 Byte |
Integer |
Kısa tam sayı |
2 Byte |
Long |
Uzun tam sayı |
4 Byte |
Single |
Kısa rasyonel sayı |
4 Byte |
Double |
Uzun rasyonel sayı |
8 Byte |
Currency |
19 haneli rasyonel sayı |
8 Byte |
|
|
Diğer |
|
Boolean |
True/False mantıksal tip |
1 Byte |
Variant |
Her türlü veriyi depolayan değişken tipi |
8 Byte |
|
|
Değişken Tanımlama
Visual Basic'te herhangi bir olay veya alt programda geçerli olacak bir değişkeni tanımlamaya gerek yoktur. Kullanılan değişken olay veya alt program çalışmaya başladığında otomatik olarak Visual Basic tarafından tanımlanır. Bu yöntem ile program geliştirmek kolay olmasının yanısıra büyük uygulamalarda yetersiz kalmaktadır. Bu yöntemin bir dezavantajı ise kod yazımı sırasında programcının yapacağı değişkenlere bağlı yazım (syntax) hatalarını derleyicinin farkedememesidir. Visual Basic Code Window içindeyken en üste Option Explicit yazıldığında Visual Basic derleyicisi kullanılan bütün değişkenlerin tanımlanmasını şart kılar. Visual Basic'te üç türlü değişken tanımlama yöntemi vardır bunlar;
Dim : Kullanıldığı ortamda geçerliliğini sürdüren değişkenler tanımlamak için kullanılır. Değişkenler Dim ile bir olayın içinde tanımlandığında sadece o olay içinde geçerli olurlar. Formun veya Modülün General Declarations bölümünde tanımlanan değişkenler tanımlandıkları form veya modülün içindeki bütün olay, alt program ve fonksiyonlarda geçerli olurlar. Aşağıdaki örnekte x değişkeni Dim deyimi ile tanımlanan bir Integer'dır. Kullanıcı Command1 isimli düğmeye bastığında doğar, sadece Command1_Click() olayı içinde geçerlidir ve olay bittiğinde ölür.
Private Sub Command1_Click()
Dim x as Integer
x=3
End Sub
Static : Kullanıldığı ortamda geçerliliğini sürdüren ve alt programın içinde olduğu form veya modül bellekten silinene kadar yaşamını sürdüren değişkenler tanımlamak için kullanılır. Aşağıdaki örnekte x değişkeni Static deyimi ile tanımlanan bir Integer'dır. Kullanıcı Command1 isimli düğmeye ilk basışında doğar, olay bitti ğinde uyur ve içindeki değeri saklar, sadece Command1_Click() olayı içinde geçerlidir ve Command1 isimli CommandButton'ın üstünde olduğu form bellekten silindiğinde ölür. Aşağıdaki örnekte düğmeye üç kez basıldığında Label1 nesnesi ekranda 9 gösterecektir.
Private Sub Command1_Click()
Static x as Integer
x=x+3
Label1.Caption=x
End Sub
Redim : Esnek boyutlu dizi değişkenler tanımlamak veya tanımlanmış bir dizi değişkenin boyutlarını değiştirmek için kullanılır. Ayrıntılı bilgi sonraki bölümlerde verilecektir.
Global : Sadece Modüllerin General Declarations bölümünde kullanılabilir. Projenin heryerinde geçerli olan, program çalıştığında doğan ve program bellekten silindiğinde ölen değişkenler tanımlamak için kullanılır.
Not: Global tanımlanmış x değişkeniniz varsa ve herhangi bir olayın, alt programın veya fonksiyonun içinde de bir x değişkeni tanımlarsanız. O olayın, alt programın ve fonksiyonun içinden global olan x değişkenine erişemezsiniz.
Değişken dönüşüm fonksiyonları
CStr() : Herhangi bir veri tipini String veri tipine dönüştürmek için kullanılır.
CByte() : Herhangi bir veri tipini Byte veri tipine dönüştürmek için kullanılır.
CInt() : Herhangi bir veri tipini Integer veri tipine dönüştürmek için kullanılır.
CLng() : Herhangi bir veri tipini Long veri tipine dönüştürmek için kullanılır.
CSng() : Herhangi bir veri tipini Single veri tipine dönüştürmek için kullanılır.
CDbl() : Herhangi bir veri tipini Double veri tipine dönüştürmek için kullanılır.
Str() : Herhangi bir sayı veri tipini String veri tipine dönüştürmek için kullanılır.
Int() : Herhangi bir sayı veri tipini tam sayıya dönüştürmek için kullanılır.
Val() : Herhangi bir String veri tipini sayıya dönüştürmek için kullanılır.
String İşleme Fonksiyonları
Trim() : Bir String ifadenin başında ve sonunda bulunan boşlukları siler.
LTrim() : Bir String ifadenin başında bulunan boşlukları siler.
RTrim() : Bir String ifadenin sonunda bulunan boşlukları siler.
Mid(String,start,lenght) : Bir String ifadenin bir bölümünü kesmek için kullanılır. Örneğin Mid("ABCDEF",3,2)="CD"
Right(String,Lenght) : Bir String ifadenin sondan istenilen sayıda karakterinin kesilmesi anlamına gelir. Örneğin Right("ABCDEF",3)="DEF"
Left(String,Lenght) : Bir String ifadenin baştan istenilen sayıda karakterinin kesilmesi anlamına gelir. Örneğin Left("ABCDEF",3)="ABC"
Yeni Değişken Türü Oluşturma (Type)
Mevcut kullanılan değişken türleri yetersiz kaldığında veya yapılan çalışmayı sadeleştirmek istendiğinde yeni bir değişken türü tanımanır. Yeni değişken türü bir veya birden fazla mevcut değişken türlerinde tanımlanmış alt değişkenlerden oluşur. Bu işlemi gerçekleştirebilmek için aşağıdaki yazım kuralına uygun Type komutu kullanılır. Type komutu sadece modül içinde kullanılabilir. Form içinde kullanılamaz.
Type [Yeni Değişken Türü Adı]
AltDeğişken1 As MevcutTür
AltDeğişken2 As MevcutTür
.
.
AltDeğişken3 As MevcutTür
End Type
Yeni oluşturulmuş bir değişken türü programın her yerinde diğer değişkenlerden farksız olarak kullanılabilirler.
Not: Rasgele erişimli dosyalarda kullanılacak olan bir değişken türü içinde tanımlanan String türünde alt değişkenlerin uzunlukları aşağıdaki örnek koddaki belirtilmelidir.
Type Ogrenci
Adı As String * 25
Soyadı As String * 25
Yaşı As Integer
AnneAdı As String *25
BabaAdı As String * 25
End Type
= |
Atama Operatörü |
x=3 |
+ |
Toplama Operatörü |
x=y+5 |
- |
Çıkarma Operatörü |
x=y-3 |
* |
Çarpma Operatörü |
x=y*3 |
/ |
Bölme Operatörü |
x=y/2 |
^ |
Üs Operatörü |
x=y^2 |
> |
Mantıksal Büyüktür Operatörü |
x>5 |
< |
Mantıksal Küçüktür Operatörü |
x<3 |
<> |
Mantıksal Farklı Operatörü |
x<>6 |
Not |
Mantıksal Değil Bağlacı |
Not x>5 |
And |
Mantıksal VE Bağlacı |
x>3 And y<>2 |
Or |
Mantıksal VEYA Bağlacı |
x=5 OR y<9 |
Nesne temelli programlamada program akışı sadece olaylar ile yapılmaz. Olaylar içinde yazılan kodun mantık çerçevesinde yönlendirilmesi gereklidir. Visual Basic'te büyük çoğunlukla yönlendirme işlemi if blokları ile gerçekleştirilir. If bloklarının yazım (syntax) kuralı aşağıdadır.
If Şart1 Then 'Blok Başlangıcı
............. 'Şart1 doğru ise yapılacak işlem
ElseIf Şart2 Then
................ 'Şart1 Yanlış ve Şart2 doğruysa yapılacak işlem
ElseIf Şart3 Then
............... 'Şart1 ve Şart2 Yanlış Şart3 doğruysa yapılacak işlem
ElseIf Şart4 Then
...............
ElseIf Şart(n) Then
............... 'Bütün Şartlar Yanlış ve Şart(n) doğruysa yapılacak işlem
Else
............... 'Bütün Şartlar Yenlış ise yapılacak işlem
End If 'Blok Sonu
If bloklarını kullanırken programcının yukarıdaki gibi Else veya ElseIf alt If bloklarını kullanma zorunluluğu yoktur. Aşağıdaki örnekleri iyice inceleyiniz.
If x=8 Then
................ ' x=8 ise
End If
'--------------------------------------------------------------
If x=8 Then
................ 'x=8 ise
ElseIf x=9 Then
................ 'x=8 değil ve x=9 ise
End If
'--------------------------------------------------------------
If x=8 Then
................ 'x=8 ise
Else
................ 'x=8 değilse
End If
'--------------------------------------------------------------
If x=8 Then
................ 'x=8 ise
ElseIf x=9 Then
................ 'x=8 değil ve x=9 ise
Else
................ ' x=8 değilse ve x=9 değilse
End If
- Select Case
"Select case" komutu ikiden fazla durumun söz konusu olduğu şartlarda program akışını yönlendirmek için kullanılan yönlendirme komutudur. "Select Case" komutu durum değişkenine göre hareket eder. Aşağıda "Select Case" komutunun yazım kuralı açıklanmıştır.
Select Case [Durum Değişkeni]
Case [Durum1]
............... ' Durum1 oluşursa çalışacak kod
Case [Durum2],[Durum3]
............... ' Durum2 veya Durum3n oluşursa çalışacak kod
Case Is > [Durum4]
............... ' Durum değişkeni Durum4'den büyükse
' çalışacak kod
Case Is < [Durum5]
............... ' Durum değişkeni Durum5'den küçükse
' çalışacak kod
Case Else
............... ' Yukarıdaki durumların hiçbiri gerçekleşmiyorsa
' çalışacak kod
End Select
- Output : Sıralı erişim dosya açma yöntemlerinden biridir. Sabit disk üstünde var olmayan bir dosyayı oluşturur. Var olan dosyaların içeriğini silerek açar. Yazım kuralı aşağıdaki gibidir.
Open [Dosya Yolu] For Output As #[Dosya No]
[Dosya Yolu] : Açılacak dosyanın sabit disk üstündeki adresidir. Türü String'dir.
[Dosya No] : Açılacak dosyaya program içinde erişilirken kullanılan 0-255 arasındaki sayıdır. Farklı iki dosya için aynı sayı kullanılamaz
Dosyaya bilgi yazmak için Print# veya Write# komutları kullanılır.
Print #[Dosya No], [String Değişken]
Write #[Dosya No], [String Değişken]
- Append : Sıralı erişim dosya açma yöntemlerinden bir diğeridir. Dosyanın içindeki var olan satırların sonuna satır eklemek için kullanılan yöntemdir. Açılmak istenen dosya sabit disk üstünde yoksa hata verir. Yazım kuralı aşağıdaki gibidir.
Open [Dosya Yolu] For Append As #[Dosya No]
[Dosya Yolu] : Açılacak dosyanın sabit disk üstündeki adresidir. Türü String'dir.
[Dosya No] : Açılacak dosyaya program içinde erişilirken kullanılan 0-255 arasındaki sayıdır. Farklı iki dosya için aynı sayı kullanılamaz.
Dosyaya bilgi yazmak için Print# veya Write# komutları kullanılır.
Print #[Dosya No], [String Değişken]
Write #[Dosya No], [String Değişken]
- Input : Sıralı erişim dosya açma yöntemlerinden biridir. Sadece okuma amaçlı dosya açılırken kullanılır. Dosyayı Input şeklinde açabilmek için dosyanın sabit disk üstünde var olması gerekmektedir.yapılan her okuma işleminde yeni okuma için otomatik olarak bir alt satıra konumlanılır. Aksi halde hata oluşur. Yazım kuralı aşağıdaki gibidir.
Open [Dosya Yolu] For Append As #[Dosya No]
[Dosya Yolu] : Açılacak dosyanın sabit disk üstündeki adresidir. Türü String'dir.
[Dosya No] : Açılacak dosyaya program içinde erişilirken kullanılan 0-255 arasındaki sayıdır. Farklı iki dosya için aynı sayı kullanılamaz .
Dosyadan okuma yapmak için Input# veya Line Input# komutları kullanılır.
Input #[Dosya No], [String Değişken]
Line Input #[Dosya No], [String Değişken]
Rasgele dosya erişim yöntemini kullanabilmek için öncelikle dosya içinde saklanacak veriler modellenmelidir. Veriler modellendikten sonra herbir veri grubu için bir değişken türü oluşturulmalıdır. Değişken türü oluşturmak için Type komutu kullanılır.
Rasgele erişimli dosyanın sıralı erişimli dosyalardan program kodlama açısından en büyük farkı dosyaya yazma ve okuma için tek bir yöntem kullanılmasıdır ve sabit disk üstünde bulunmayan bir dosyayı oluşturmak işlemininde bu yöntem tarafından yapılmasıdır. Rasgele erişimli dosyalarda kayıtların uzunluğu sabit olduğundan dosya içindeki her kaydın byte cinsinden adresi bellidir. Buyüzden dosya içindeki istenilen kayda ait bilgiler direkt olarak değiştirilebilir. Bu özellik bu yöntemin en önemli özelliğidir. Rasgele Erişimli dosya kullanma yönteminde dosya açma işlemi aşağıdaki şekilde kullanılır.
Open [Dosya Adresi] For Random As #[Dosya No] Len=[Kayıt Uzunluğu]
[Dosya Adresi] : Türü String'tir. Açılacak olan dosyanın sabit disk üstündeki adresini belirtir.
[Dosya No] : Türü Integer'dır. Açılacak dosyaya daha sonra program içinde bu dosyayı temsil edecek olan ve başka bir dosya tarafından kullanılmayan bir dosya numarasıdır.
[Kayıt Uzunluğu] : Türü Integer'dır. Açılacak olan dosyada kayıtların adreslenmesinde kullanılan üzere her bir kaydın byte cinsinden boyutudur.
Dosya içindeki kayıt sayısı dosyanın byte cinsinden olan boyutunu kaydın byte cinsinden olan boyutuna bölümünden ibarettir. Aşağıda bu işlemi gerçekleştiren program kodu verilmiştir.
Ks = LOF([Dosya No])/[Kayıt Uzunluğu]
Dosya içine kayıt eklemek için put değimi kullanılır. Put değiminin yazım şekli aşağıda belirtilmiştir.
Put #[Dosya No],[Kayıt No],[Kayıt Değişkeni]
[Dosya No] : Dosya açarken kullanılan doaya numarasıdır.
[Kayıt No] : Kaydın kaçıncı sıraya yazılacağını belirtir. Bilgisayar sabit kayıt uzunluğu sayesinde belirtilen kaydın byte cinsinden adresini hesaplar.
[Kayıt Değişkeni] : Kayın No sayesinde hesaplanan kayıt adresine Kayıt değişkeninin içerdiği bilgiler yazılır.
Dosya içinden bir kaydı okumak için Get değimi kullanılır. Get değiminin yazım kuralı aşağıda belirtilmiştir.
Get #[Dosya No],[Kayıt No],[Kayıt Değişkeni]
[Dosya No] : Dosya açarken kullanılan doaya numarasıdır.
[Kayıt No] : Kaydın kaçıncı sıradan okunacağını belirtir. Bilgisayar sabit kayıt uzunluğu sayesinde belirtilen kaydın byte cinsinden adresini hesaplar.
[Kayıt Değişkeni] : Kayın No sayesinde hesaplanan kayıt adresinden okunan bilgiler Kayıt değişkenine yazılır.
Program içinde kullanılmayan dosyalar Close değimi ile kapatılmalıdır.
Close [Dosya No]