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ü.
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ü
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ğ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.
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.
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.
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 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"
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" 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
Sıralı Dosya Erişimi
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]