You are on page 1of 9

VĐSUAL BASĐC 6.

0 (9)
Merhaba arkadaşlar, Visual Basic 6.0 derslerimize kaldığımız yerden devam edelim isterseniz. (8).
Dersimizde “PictureBox” nesnesini detaylı olarak incelemiştik hatırlarsanız. Önceki derslerimizin
tamamını dergimizin sitesinin “Download” bölümünden indirebilirsiniz. Bu bölümde ders (8)’de
anlattığımız gibi basit bir uygulama geliştirelim ve ardından yeniden derslerimize kaldığımız yerden
devam edelim.

Formumuza bir adet Label ve Textbox yerleştirelim; Label’ın caption’ına “bir kaç yazı girin” yazalım
(Örneğin Yukarıdaki form).

Kod bölümümüzü açarak aşağıdaki kodları girelim.

Option Explicit
Private Sub Text1_Change()
SendKeys "{left}"
End Sub

“F5” ile projemizi çalıştıralım. Textbox’ımızın içine bir şeyler


yazalım. Ne oldu? Evet yazıları tersten yazmayı başardık. Birkaç
kod ile bunu nasıl yaptığımızı hemen anlatayım.

Şimdi yukarıda yazan kodların ne anlama geldiğini tek tek inceleyelim.

Text1_Change()
Text kutusunun içerdiği metin değiştiği zaman bu olay meydana gelir. Bu olay kutu içerisinde tuş
vuruşlarıyla kullanıcı tarafından meydana getirilebileceği gibi program vasıtasıyla Text kutusuna
atama yapılırken de meydana gelir.
Sendkeys
Sendkeys; Klavyeden sanal olarak tuş basma bilgisini gönderen bir fonksiyondur. Yani basılan tuşu
Textbox’a gönder diyoruz. SendKeys "{left}" ise soldan sağa doğru yazıları textbox’a gir dedik.
Şimdi komutlarımızı tek tek bir daha inceleyelim.

Ücretsiz Bilgisayar Dergisi www.pdfdergi.com için Hakan Hızlı tarafından hazırlanmıştır.


Private Sub Text1_Change()
Text kutusunun içerdiği metin değiştiği zaman yada Text kutusuna atama yapılırken
SendKeys "{left}"
Bbasılan tuşları Textbox’a soldan sağa doğru gönder.
End Sub
Olayı bitir.

Evet arkadaşlar şimdi isterseniz. Bir sistem ile bundan sonraki yazılarımıza devam edelim. Đlk önce
karar bloklarının tümünü bir gözden geçirelim.

IF karar bloğu;
Bir koşulun oluşması yada oluşmaması durumuna göre yapılması gereken işlemlerin yapılmasını
sağlayan komut bloğudur. Çok sık kullanılır.

If Koşul 1 Then ‘Koşul1 in gerçekleşmesi durumunda yapılacak olanlar;


………yapılacak komutlar
Else
Koşul1’in gerçekleşmemesi durumda yapılacak işlemler
End If
Karar bloğunu sonlandır.

Bunu bir örnek ile pekiştirelim isterseniz. Formumuza bir TextBox ve bir adet Button koyalım ve
aşağıdaki kodları kod bölümümüze yapıştıralım.

Private Sub Command1_Click()


Button1’e tıklandığında
Dim Sonuc As Integer
Bir integer türünde bir değişkenim var (daha önceki derslerimizde değişken türlerini inceledik)
Sonuc = Text1.Text
Sonuc değişkenim textbox’ın içine girilen verilerden oluşuyor.
If Sonuc < 50 Then
Eğer sonuc değişkenim 50’den küçükse
MsgBox ("bu ogrenci zayif not aldi") ‘Đşlem 1
Mesaj kutusu çıksın ve “bu ogrenci zayif not aldi” yazısı çıksın
Else
Eğer sonuc değişkenim 50’ye eşit ve 50’den büyükse, yada yukarıdaki şart yerine getirilmediyse
MsgBox ("bu ögrenci gecer not aldi")‘Đşlem 2
Mesaj kutusu çıksın ve “bu ogrenci gecer nok aldi” yazısı çıksın
End If
Karar bloğunu sonlandır.
End Sub
Bitir.

Bu karar bloğunu akış şeması ile


gösterirsek eğer;

Ücretsiz Bilgisayar Dergisi www.pdfdergi.com için Hakan Hızlı tarafından hazırlanmıştır.


Birden fazla koşulumuz varsa, ElseIF metodu ile karar bloğumuzu zenginleştirebiliriz.

If Koşul 1 Then ‘Koşul1 in gerçekleşmesi durumunda yapılacak olanlar;


………yapılacak komutlar
ElseIf Koşul 2 Then ‘Koşul1 in gerçekleşmediği, Koşul2’nin gerçekleştiği durumlarda yapılacaklar;
……….yapılacak komutlar
Else
Koşul1 ve Koşul2 nin gerçekleşmemesi durumda yapılacak işlemler
End If
Karar bloğunu sonlandır.

Bunu bir örnek ile pekiştirelim isterseniz. Formumuza bir TextBox ve bir adet Button koyalım ve
aşağıdaki kodları kod bölümümüze yapıştıralım.

Private Sub Command1_Click()


Button1 tıklandığında
Dim Sonuc As Integer
Integer tipinde sonuc isimli bir değişkenim var.
Sonuc = Text1.Text
Sonuc değişkenim textbox’ın içine girilen verilerden oluşuyor.
If Sonuc < 50 Then
Eğer sonuc değişkenim 50’den küçükse
MsgBox ("bu ogrenci zayif not aldi") ‘Đşlem 1
Mesaj kutusu çıksın ve “bu ogrenci zayif not aldi” yazısı çıksın
ElseIf Sonuc >= 90 Then
Eğer sonuc değişkenim 90’a eşit ve 90 dan büyükse
MsgBox ("bu ogrenci super") ‘Đşlem 2
Mesaj kutusu çıksın ve “bu ogrenci super” yazısı çıksın
Else
Eğer sonuc değişkenim 50’ye eşit ve 90’dan küçükse, yada yukarıdaki şartlar yerine getirilmediyse
MsgBox ("bu ögrenci gecer not aldi") ‘Đşlem 3
Mesaj kutusu çıksın ve “bu ogrenci gecer not aldi” yazısı çıksın
End If
Karar bloğunu sonlandır.
End Sub
Bitir.

Bu karar bloğunu akış


şeması ile gösterirsek
eğer; (Kusura
bakmayın çizimlerim
çok janjanlı değil ama)

Ücretsiz Bilgisayar Dergisi www.pdfdergi.com için Hakan Hızlı tarafından hazırlanmıştır.


IFF Karar bloğu;
Koşulun doğru yada yanlış oluşuna göre sadece iki ihtimalin geçerli olduğu durumlarda kullanılır.
IIF (Mantıksal ifade, Birinci ifade, ikinci ifade) şeklinde bir sözdizimi vardır.

Bunu bir örnek ile pekiştirelim isterseniz. Formumuza bir TextBox ve bir adet Button koyalım ve
aşağıdaki kodları kod bölümümüze yapıştıralım.

Private Sub Command1_Click()


Button1’e tıklandığında
Dim ders As Integer
ders isimli bir integer türünde değişkenim var.
Dim Sonuc As String
Sonuc isimli string türünde bir değişkenim var.
ders = Text1.Text
ders değişkenim textbox’ın içine girilen verilere eşit.
Sonuc = IIf(ders < 50, "bu ogrenci kaldi", "bu ogrenci gecti")
Sonuc değişkenim ise (ders değişkenim 50’den küçük ise “bu örgenci kaldi”, 50’den büyük ise “bu
ogrenci gecti” diziminden oluşuyor)
MsgBox (Sonuc)
Textbox’a girilen veriye göre sonuc değişkenimi msgbox’ta göster.
End Sub
Bitir.

Bu karar bloğumuzu daha iyi anlamak için isterseniz, bir akış şeması ile gösterelim. Arkadaşlar
daha önceki derslerimizde Algoritma adlı dersimizi mevut idi, çizimleri daha iyi anlayabilmek için
Algoritma dersimizin üzerinden bir daha geçmenizi öneririm.

Evet, şimdi
şemamıza
gelelim.

Ücretsiz Bilgisayar Dergisi www.pdfdergi.com için Hakan Hızlı tarafından hazırlanmıştır.


If Type Karar bloğu;
Kontrolün istenen tipte olup olmadığını kontrol ederek buna göre işlem yapar. Aslında birçok
kitapta, değişkenlerin ve kontrollerin tipini belirlemek başlıkları altında yazılır. Ancak bana göre bir
karar bloğudur. Form üzerine yerleştirdiğimiz kontrollerin (textbox, button, picturebox vd.), tipini
belirleyecek bir karar bloğudur.

If TypeOf Kontrol_Đsmi Is Kontrol_tipi Then şeklinde bir sözdizimi vardır.

Kontrol Đsmi =Kontrole verilen isim. Örneğin (button1 name=cmdkaydet)


Kontrol tipi =Kontrolün tipidir. Örneğin (button, textbox, Picturebox)

Bunu bir örnek ile pekiştirelim isterseniz. Formumuza bir TextBox ve bir adet Button koyalım ve
aşağıdaki kodları kod bölümümüze yapıştıralım.

Private Sub Command1_Click()


Butona tıklandığında
Dim a As String
String tipinde a isimli bir değişkenim var
If TypeOf Text1 Is TextBox Then a = "yukaridaki bir textboxtir bilader"
Eğer text1 isimli kontrol textbox ise a değişkeni ="yukaridaki bir textboxtir bilader” yazısına eşitle
MsgBox a, vbCritical, "guguk"
Mesaj kutusunda; a değişkenimde yazılı olanlar, vbcritical sitili ve “guguk” başlığı ile çıksın
End Sub
Bitir

Aşağıdaki örnekteki gibi olması lazım.

Choose karar bloğu;


Bir değişkenin aldığı değer bir sayıya bağlı ise Choose yapısını kullanmak daha uygundur. Bazen de
kullanıcıdan belirlenmiş sayıdaki parametreden birini seçmesi istenebilir. Örneğin kullanıcı; Hakan,
Mehmet, Selami yazmak yerine bunlara bir değer vererek bir iki üç yazmak isteyebilir. Simdi aklıma
geldi, stok programlarında her ürünün bir kodu vardır bilirsiniz. Ürünün ismini yazmaktansa ürünün
kodunu girerek kullanıcıya bir kolaylık sağlayabilirsiniz. Bu gibi durumlarda iste karsınızda Choose
fonksiyonu çıkar. Karar bloğumuzu tanımlarken; Sonuç= Choose (Sayı, değer1, değer2,
değer3,............, değerN) Formatında kullanılır. Buradaki sonuç sayıya bağlı olarak değer
listesinden bir değerdir. Örneğin sayı 3 ise sonuç değer 3 olacaktır. Simdi hemen choose ile ilgili bir
örnek yapalım.
Sonuç=Chose(Sayı, değer1,değer2,değer3,……..,değerN) şeklinde bir sözdizimi vardır.

Ücretsiz Bilgisayar Dergisi www.pdfdergi.com için Hakan Hızlı tarafından hazırlanmıştır.


Bunu bir örnek ile pekiştirelim isterseniz. Formumuza bir TextBox ve bir adet Button koyalım ve
aşağıdaki kodları kod bölümümüze yapıştıralım.

Private Sub Command1_Click()


Button1’e tıklandığında
Dim y As Integer
y isimli bir integer türünde değişkenim var
Dim i As String
i isimli bir string türünde değişkenim var
If Text1.Text = 1 Then y = 1
Eğer textbox’a 1 değeri yazılırsa y değişkenimi 1’e eşitle
If Text1.Text = 2 Then y = 2
Eğer textbox’a 2 değeri yazılırsa y değişkenimi 2’ye eşitle
If Text1.Text = 3 Then y = 3
Eğer textbox’a 3 değeri yazılırsa y değişkenimi 3 eşitle
i = Choose(y, "Merhaba", "PdfDergi", "Visual Basic")
i değişkenim y değişkenimin atayacağı, "Merhaba", "PdfDergi", "Visual Basic" ifadelerinden oluşuyor
MsgBox i
Đ değişkenimin alacağı değer mesaj kutusunda çıksın
End Sub
Bitir.

Burada textbox kutusuna 1, 2, 3 sayılarından başka bir sayı girerseniz hata döndürecektir. Basit
olması anlamında böyle örnek veriyorum. Đleride daha komplike örneklerde bu karar bloklarımızı
kullanacağız. Örnek Akış Şeması;

Ücretsiz Bilgisayar Dergisi www.pdfdergi.com için Hakan Hızlı tarafından hazırlanmıştır.


Select Case Karar Bloğu;
Değişkenin belirli değerlerine göre yapılacak farklı işlemlerin seçiminde kullanılır. Bu karar bloğu If
….End If karar bloğuna çok benzemektedir. Çok fazla Đf karar bloğu kullanmaktansa Select Case
yapısını kullanmak bazen çok daha kullanışlı olur. Tabi if end if karar bloğu ile birlikte de
kullanılabilir. Đleride yapacağımız bazı projelerde karşımıza çıkacak bir durumdur.

Select Case değişken


Case ifade 1
…………………. ‘ Değişkenin ifade1 değeri aldığı durumlarda yapılacak işlemler
Case id2
…………………. ‘ Değişkenin ifade2 değeri aldığı durumlarda yapılacak işlemler
Case Else
…………………. ‘ Değişkenin ifade 1 ve ifade 2 nin değer almadığı durumlarda yapılacak işlemler
End Select

Şeklinde bir sözdizimi vardır. Burada dikkat edeceğimiz husus select case değişkenine atadığımz
değer ifadelerden hangisinde varsa o değerde olan yapılacak işlemler sırası işletilir. Eğer select case
değişkenine atadığımız değer bulunamaz ise Case Else’den sonraki yapılacak işlemler devreye girer.
Hemencecik bir örnek yapalım.

Private Sub Command1_Click()


Buton1’e tıklandığında
Dim i As Integer
i isimli bir değişkenim var türü integer
i = Text1.Text
i değişkenim textbox’a girilen verilerden oluşur
Select Case i
Select Case karar bloğum i değişkenine atanan verilerden oluşur
Case 1
1. ihtimal
Text1.Text = 1
Textbox’a 1 girildiyse
MsgBox "öner ziya bas"
“öner ziya bas” mesaj kutusu çıksın
Case 2
2.ihtimal
Text1.Text = 2
Textbox’a 2 girildiyse
MsgBox "pdf dergi"
Mesaj kutusunda “pdf dergi” yazsın
Case 3
3. ihtimal
Text1.Text = 3
Textbox’a 3 girildiyse
MsgBox "visual basic"
Mesaj kutusunda “visual basic” yazsın
Exit Sub
çık
MsgBox i
Đ değişkenime hangi değer atandıysa mesaj kutusunda göster
Case Else
Yukarıdaki ihtimallerden biri i değişkenine atanmadıysa
MsgBox "1 , 2, 3 sayılarından birini girin"
Mesaj kutusunda "1 , 2, 3 sayılarından birini girin" yazısı çıksın
End Select
Karar bloğunu sonlandır.
End Sub
Bitir

Ücretsiz Bilgisayar Dergisi www.pdfdergi.com için Hakan Hızlı tarafından hazırlanmıştır.


Akış şeması ile gösterirsek;

Switch Karar Bloğu;


Aslında choose karar bloğu ile çok benzerlik gösteren bir karar bloğudur. Bu karar bloğunda gene
birden fazla şartı kontrol etmek mümkündür.

Sonuç=Switch (şart1, değer1, şart2, değer2,,,,,,,,,,,şartN,değerN) şeklinde bir sözdizimine


sahiptir. Sonuç değişkenine karşılığı gelen atanacaktır.

Hemen bir örnek yapalım;

Private Sub Command1_Click()


Button1’e tıklandığında
Dim i As Integer
i isimli bir değişkenim var türü integer
i = Text1.Text
i değişkenim textbox’a girilen verilerden oluşuyor.
MsgBox Switch(i = 1, "öner ziya bas", i = 2, "pdf dergi", i = 3, "visual basic")
i = 1, "öner ziya bas", i = 2, "pdf dergi", i = 3, "visual basic" şartlarından biri sağlanırsa mesaj
kutusunda eşitliği sağlanan mesaj çıksın
End Sub
bitir

Evet bunu bir de akış şemamızla süsleyelim.

Ücretsiz Bilgisayar Dergisi www.pdfdergi.com için Hakan Hızlı tarafından hazırlanmıştır.


Evet arkadaşlar bu dersimizde karar bloklarını inceledik. Bir dahaki dersimize döngüleri
inceleyeceğiz. Kalın sağlıcakla.

Ücretsiz Bilgisayar Dergisi www.pdfdergi.com için Hakan Hızlı tarafından hazırlanmıştır.

You might also like