SELECT CASE KONTROL YAPISI
Bu kontrol yapısında sadece bir degişkenin durum kontrolü yapılır.Kontrolü yapılacak degişkenin genel olarak alabilecegi degerler belirli ise bu yapının kullanılması If yapısına göre daha avantajlıdır. Yazılış biçimi genel olarak aşagıdaki şekildeki gibidir
Select Case Degisken
Case Deger1
Degisken=Deger1 oldugu durumda yapılması istenen işlemler
Case Deger2
Degisken=Deger2 oldugu durumda yapılması istenen işlemler
Case Else
Degisken yukarıdaki degerler den hicbirine eşit degil ise yapılacak işlemler
End Select
Kullandıgımız her Select ifadesi için bir End Select kullanmalıyız.
Örnek :
Select Case No
Case 1304
Name="Murat Tuna"
Case 1306
Name="Ayse Sinem"
Case 1307
Name=”Hakan Kaya”
Case 1312
Name=”Abdullah Kahyalı”
Case 1324
Name="Hatice Uygun"
End Select
Örnek :
Select Case Ay
Case 1
Max_date=31
Case 2
Dim Artık as Integer
Artık = Yıl Mod 4
If Artık=0 Then
Max_date=29
Else
Max_date=28
Endif
Case 3
Max_date=31
Case 12
Max_date=31
Case Else
Mesaj=”Error : Bir yılda 12 ay vardır.”
End Select
SEND KEYS Kullanımı
'------------------------------
'Sendkeys komutu ile o an aktif olan programa klavyeden tuşa basılırmış gibi
'mesaj gönderebiliriz.
'Komutun Kullanımı:SendKeys "tuş",bekleme formatındadır.
'SendKeys "V", True v harifini gönderir.
'SendKeys "123", True 123 gönderir.
'CTRL,ALT,Shift gibi tuşlarla kombinasyon:
'CTRL-C:SendKeys "^c"
'ALT -F4: SendKeys "%{F4}"
'Shift-V:SendKeys "+V"
'Burada "^":CTRL "%":ALT "+":Shift 'i temsil eder
'Şimdi Hesap Makinesini açan verilen sayının logaritmasını alıp panoya kopyalayıp
'daha sonra hesap makinesini kapatıp sonucu programda gösteren basit bir örnek yapalım.
'Bunun için formumuza 1 Textbox 1 CommandButton 1 Label koyuyoruz.
Private Sub Command1_Click()
'Textbox ın adı text1 olmalı ve logaritması alınacak sayı text1'e yazılmalı.
Dim y 'Hesap makinesinde logaritma almanın kısa yolu L harfidir y değişkeni
'hem text1 deki sayıyı alacak hemde L
Dim x
Clipboard.Clear ' O An Panoda ne varsa temizlenir
y = Val(Text1.Text) & "L" 'işte hesap makinesine göndereceğimiz sayı ve komut hazır.
x = Shell("calc.exe") ' Hesap makinesini çalıştırıyoruz.
AppActivate x 'Hesap makinesini aktif hale getiriyoruz.
SendKeys y, True 'Logaritmasını alacağımız sayıyı yolladık ve logu alındı.
SendKeys "^c", True 'CTRL-C yolladık.Yani sonucu panoya kopyaladık.
SendKeys "%{F4}", True 'Hesap Makinesini kapadık.
Me.Show 'Formumuzu öne getirdik.
Label1.Caption = Clipboard.GetText ' Nihayet Sonuç Burda.
End Sub
'SendKeys "{HOME}"
'SendKeys "{ENTER}"
'bu iki tuşu gönderirseniz farenin kilitlendiğini görebilirsiniz.
Bazı Tuşların Kodları
Backspace {BS} Delete {DEL}
Escape {ESC} Home {HOME}
Insert {INS} End {END}
F1 {F1} Sol Ok [LEFT}
F2 {F2} Sağ Ok {RIGHT}
....... .......... Yukarı Ok {UP}
F12 {F12} Aşağı Ok {DOWN}
Numlock {NUMLOCK} Capslock {CAPSLOCK}
Help {HELP} Break {BREAK}
Tab {TAB} Enter {ENTER}
Örnek:
Dim i As Integer
For i = 1 To 150
SendKeys "{CAPSLOCK}", True
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
SendKeys "{SCROLLLOCK}", True
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
Next i
SetAttr()
Bir dosyanın veya klasörün özniteliğini ayarlamak için kullanılan fonksiyondur. Seçili olan dosyanın özniteliğini ayarlar.
SetAttr(dosyaadi , öznitelik)
dosyaadi değişkeni ile üzerinde işlem yapılacak dosya ve öznitelik değişkeni ile de ayarlanacak özellik belirtilmektedir. Yukarıdaki fonksiyonda belirttiğimiz tabloya uygun olarak değişklik yapabiliriz.
SetAttr(“C:\Deneme.txt”, 4)
Bu komut ile Deneme.txt dosyasının özelliğini Sistem Dosyası olarak ayarlamış olduk.
Static Deyimi
Değişken tanımlama
Bir yordamdaki bütün yerel değişkenlerin Static yapılması için Static deyimi fonksiyonun başına konur.
Static Değişken[As tip]
Static deyimi değişkenin bellek alanının kalıcı olmasını sağlar.
Değişken ise bilginin adını gösterir.Örneğin "Toplam" bir değişken adıdır.
Tip ise değişkenin tipini gösterir.Bir değişken içerdiği veri bakımından farklı özelliklere sahip olabilir.Tamsayı ya da gerçek sayı gibi.
Örneğin aşağıdaki yordam bir önceki toplam değere yeni toplam değeri eklenir.
Function ToplamBul (Miktar)
Static Satadet
Sataset= Satadet + miktar
ToplamBul= Satadet
End Function
Eğer Satadet, Static yerine Dim olarak tanımlansaydı toplam değeri eski toplam değerine eklenmezdi ve ToplamBul fonksiyonu çağırılan değeri geri döndürürdü, ancak aynı sonuç Satadet değişkeninin modül düzeyinde tanımlanmasıyla da olabilir.
STOP Komutu
Stop deyimi uygulamayı durdurur. Stop deyimi hata giderme aşamasında kullanılır. Çünkü kullanılan nesneleri serbest bırakmaz.
Sub Butto1_Click ()
Stop
End Sub
Sub Deyimi
Genel olarak bütün işlemler için bir Sub yordamı kullanılır. Bu yordamlar bir olaya bağlı olarak (bir düğmeye tıklandığında) ya da doğrudan çağrılarak çalıştırılır. Function yordamlar ise bir değer döndürürler. Örneğin bir faiz hesabını yapmak ve sonucunu döndürmek için fonksiyon kullanılmalıdır.
Bir Sub yordamının yapısı:
[Private|Public][Static] Sub yordam adı (argümanlar)
Deyimler.......
End Sub
Yordam başlatıldığında Sub ve End deyimleri arasında kalan satırlar işletilir.
TYPE Yapısı
Type yapısını kullanarak programıcı farklı veri tiplerini kullanarak kendi veri yapısını oluşturabilir. Bu C deki Struct yapısına benzetilebilir. Bu yeni veri tipine record adı verilir. Herhangi bir modülün Declarations kısmında aşagıdaki gibi bir tanımlama yapabiliriz.
Type Ogrencı
Ad As String *10
Soyad As String *12
Not As Byte
Kredi As Integer
End Type
'Ogrencı veri tipi toplam hafızada 25 byte yer kaplamaktadır. Bu veri tipini kullanmak için 'Ogrencı tıpınde degişkenler tanımlamak gerekmektedir.
UNLOAD Komutu
Formları bellekten kaldırmak için kullanılır. Hide metodu ile saklı hale gelen formlar aslında bellekte yer alırlar ve yer işgal ederler.
Olay temelli bir uygulama son formun kapanmasıyla sona erer. Ancak uygulamanın kapanmasından önce bütün formların kapandığının kontrol edilmesi gerekir. Bu işlem için yüklü formların Unload edilmesi gerekir.Eğer uygulamada sadece bir form varsa onu Unload etmek için :
Private Sub cmdÇıkış_Click ()
Unload Me
End Sub
Eğer uygulamanızda çok sayıda form varsa onların hepsini birden Unload etmek için Forms kolleksiyonu kullanılır.Böylece bütün formlar
kapatılır.
Privat Sub Form_Unload
Dim i as integer
' Bütün formlar için döngü ve herbirini Unload
For i = 0 to Forms.Count - 1
Unload Forms(i)
Next
End Sub
Bu kontrol yapısında sadece bir degişkenin durum kontrolü yapılır.Kontrolü yapılacak degişkenin genel olarak alabilecegi degerler belirli ise bu yapının kullanılması If yapısına göre daha avantajlıdır. Yazılış biçimi genel olarak aşagıdaki şekildeki gibidir
Select Case Degisken
Case Deger1
Degisken=Deger1 oldugu durumda yapılması istenen işlemler
Case Deger2
Degisken=Deger2 oldugu durumda yapılması istenen işlemler
Case Else
Degisken yukarıdaki degerler den hicbirine eşit degil ise yapılacak işlemler
End Select
Kullandıgımız her Select ifadesi için bir End Select kullanmalıyız.
Örnek :
Select Case No
Case 1304
Name="Murat Tuna"
Case 1306
Name="Ayse Sinem"
Case 1307
Name=”Hakan Kaya”
Case 1312
Name=”Abdullah Kahyalı”
Case 1324
Name="Hatice Uygun"
End Select
Örnek :
Select Case Ay
Case 1
Max_date=31
Case 2
Dim Artık as Integer
Artık = Yıl Mod 4
If Artık=0 Then
Max_date=29
Else
Max_date=28
Endif
Case 3
Max_date=31
Case 12
Max_date=31
Case Else
Mesaj=”Error : Bir yılda 12 ay vardır.”
End Select
SEND KEYS Kullanımı
'------------------------------
'Sendkeys komutu ile o an aktif olan programa klavyeden tuşa basılırmış gibi
'mesaj gönderebiliriz.
'Komutun Kullanımı:SendKeys "tuş",bekleme formatındadır.
'SendKeys "V", True v harifini gönderir.
'SendKeys "123", True 123 gönderir.
'CTRL,ALT,Shift gibi tuşlarla kombinasyon:
'CTRL-C:SendKeys "^c"
'ALT -F4: SendKeys "%{F4}"
'Shift-V:SendKeys "+V"
'Burada "^":CTRL "%":ALT "+":Shift 'i temsil eder
'Şimdi Hesap Makinesini açan verilen sayının logaritmasını alıp panoya kopyalayıp
'daha sonra hesap makinesini kapatıp sonucu programda gösteren basit bir örnek yapalım.
'Bunun için formumuza 1 Textbox 1 CommandButton 1 Label koyuyoruz.
Private Sub Command1_Click()
'Textbox ın adı text1 olmalı ve logaritması alınacak sayı text1'e yazılmalı.
Dim y 'Hesap makinesinde logaritma almanın kısa yolu L harfidir y değişkeni
'hem text1 deki sayıyı alacak hemde L
Dim x
Clipboard.Clear ' O An Panoda ne varsa temizlenir
y = Val(Text1.Text) & "L" 'işte hesap makinesine göndereceğimiz sayı ve komut hazır.
x = Shell("calc.exe") ' Hesap makinesini çalıştırıyoruz.
AppActivate x 'Hesap makinesini aktif hale getiriyoruz.
SendKeys y, True 'Logaritmasını alacağımız sayıyı yolladık ve logu alındı.
SendKeys "^c", True 'CTRL-C yolladık.Yani sonucu panoya kopyaladık.
SendKeys "%{F4}", True 'Hesap Makinesini kapadık.
Me.Show 'Formumuzu öne getirdik.
Label1.Caption = Clipboard.GetText ' Nihayet Sonuç Burda.
End Sub
'SendKeys "{HOME}"
'SendKeys "{ENTER}"
'bu iki tuşu gönderirseniz farenin kilitlendiğini görebilirsiniz.
Bazı Tuşların Kodları
Backspace {BS} Delete {DEL}
Escape {ESC} Home {HOME}
Insert {INS} End {END}
F1 {F1} Sol Ok [LEFT}
F2 {F2} Sağ Ok {RIGHT}
....... .......... Yukarı Ok {UP}
F12 {F12} Aşağı Ok {DOWN}
Numlock {NUMLOCK} Capslock {CAPSLOCK}
Help {HELP} Break {BREAK}
Tab {TAB} Enter {ENTER}
Örnek:
Dim i As Integer
For i = 1 To 150
SendKeys "{CAPSLOCK}", True
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
SendKeys "{SCROLLLOCK}", True
SendKeys "{DOWN}", True
SendKeys "{DOWN}", True
Next i
SetAttr()
Bir dosyanın veya klasörün özniteliğini ayarlamak için kullanılan fonksiyondur. Seçili olan dosyanın özniteliğini ayarlar.
SetAttr(dosyaadi , öznitelik)
dosyaadi değişkeni ile üzerinde işlem yapılacak dosya ve öznitelik değişkeni ile de ayarlanacak özellik belirtilmektedir. Yukarıdaki fonksiyonda belirttiğimiz tabloya uygun olarak değişklik yapabiliriz.
SetAttr(“C:\Deneme.txt”, 4)
Bu komut ile Deneme.txt dosyasının özelliğini Sistem Dosyası olarak ayarlamış olduk.
Static Deyimi
Değişken tanımlama
Bir yordamdaki bütün yerel değişkenlerin Static yapılması için Static deyimi fonksiyonun başına konur.
Static Değişken[As tip]
Static deyimi değişkenin bellek alanının kalıcı olmasını sağlar.
Değişken ise bilginin adını gösterir.Örneğin "Toplam" bir değişken adıdır.
Tip ise değişkenin tipini gösterir.Bir değişken içerdiği veri bakımından farklı özelliklere sahip olabilir.Tamsayı ya da gerçek sayı gibi.
Örneğin aşağıdaki yordam bir önceki toplam değere yeni toplam değeri eklenir.
Function ToplamBul (Miktar)
Static Satadet
Sataset= Satadet + miktar
ToplamBul= Satadet
End Function
Eğer Satadet, Static yerine Dim olarak tanımlansaydı toplam değeri eski toplam değerine eklenmezdi ve ToplamBul fonksiyonu çağırılan değeri geri döndürürdü, ancak aynı sonuç Satadet değişkeninin modül düzeyinde tanımlanmasıyla da olabilir.
STOP Komutu
Stop deyimi uygulamayı durdurur. Stop deyimi hata giderme aşamasında kullanılır. Çünkü kullanılan nesneleri serbest bırakmaz.
Sub Butto1_Click ()
Stop
End Sub
Sub Deyimi
Genel olarak bütün işlemler için bir Sub yordamı kullanılır. Bu yordamlar bir olaya bağlı olarak (bir düğmeye tıklandığında) ya da doğrudan çağrılarak çalıştırılır. Function yordamlar ise bir değer döndürürler. Örneğin bir faiz hesabını yapmak ve sonucunu döndürmek için fonksiyon kullanılmalıdır.
Bir Sub yordamının yapısı:
[Private|Public][Static] Sub yordam adı (argümanlar)
Deyimler.......
End Sub
Yordam başlatıldığında Sub ve End deyimleri arasında kalan satırlar işletilir.
TYPE Yapısı
Type yapısını kullanarak programıcı farklı veri tiplerini kullanarak kendi veri yapısını oluşturabilir. Bu C deki Struct yapısına benzetilebilir. Bu yeni veri tipine record adı verilir. Herhangi bir modülün Declarations kısmında aşagıdaki gibi bir tanımlama yapabiliriz.
Type Ogrencı
Ad As String *10
Soyad As String *12
Not As Byte
Kredi As Integer
End Type
'Ogrencı veri tipi toplam hafızada 25 byte yer kaplamaktadır. Bu veri tipini kullanmak için 'Ogrencı tıpınde degişkenler tanımlamak gerekmektedir.
UNLOAD Komutu
Formları bellekten kaldırmak için kullanılır. Hide metodu ile saklı hale gelen formlar aslında bellekte yer alırlar ve yer işgal ederler.
Olay temelli bir uygulama son formun kapanmasıyla sona erer. Ancak uygulamanın kapanmasından önce bütün formların kapandığının kontrol edilmesi gerekir. Bu işlem için yüklü formların Unload edilmesi gerekir.Eğer uygulamada sadece bir form varsa onu Unload etmek için :
Private Sub cmdÇıkış_Click ()
Unload Me
End Sub
Eğer uygulamanızda çok sayıda form varsa onların hepsini birden Unload etmek için Forms kolleksiyonu kullanılır.Böylece bütün formlar
kapatılır.
Privat Sub Form_Unload
Dim i as integer
' Bütün formlar için döngü ve herbirini Unload
For i = 0 to Forms.Count - 1
Unload Forms(i)
Next
End Sub