Visual Basic Basit Bir Televizyon Programı Yapımı
Visual Basic Dersleri(Option nesnesi)
|
Visual Basic Dersleri (Common Dialog)
|
Visual Basic Dersleri (Döngüler)
|
Visual Basic Dersleri (MSGBOX (MESAJ KUTUSU) Ve ÖZELLİKLERİ )
|
Visual Basic Dersleri (MID FONKSİYONU)
|
Visual Basic Dersleri (RIGHT FONKSiYONU)
|
Visual Basic Dersleri (Case Fonksiyonu ve Yapısı) Devam
|
Visual Basic Dersleri (Case Fonksiyonu ve Yapısı)
|
Visual Basic Dersleri (VB Resource Editor)
|
Visual Basic Dersleri (Komutlar ve Aritmatiksel operatörler)
|
Visual Basic Dersleri (Nesnenin veya Formun Properties özellikleri) DEVAM
|
Visual Basic Dersleri (Nesnenin veya Formun Properties özellikleri)
|
Visual Basic Dersleri (Buton Yapımı)
|
Visual Basic Dersleri (Menüler)
|
Visual Basic Dersleri 5
İlk olarak veritiplerinden bahsedelim.Bazılarınız -“veri veridir kardeşim, neden sınıflandırıyoruz?” diye sorabilir.
Veritiplerini ayırmamızın en büyük sebeplerinden biri hafızayı en optimal şekilde kullanabilmemiz içindir.
Örnek olarak bir arabanın yapacağı maximum sürat verisi ile bir adres verisini ele alalım.
Bir araba max 3 haneli bir hız yapar.Dolayısı ile hafızada arabanın max. Hız verisi için 3 haneli bir sayı tutacağız.
Bir adres bilgisi ise en kötü ihtimalle düşündüğümüzü varsayarsak 200 karakteri aşmayacaktır.Şimdi bir düşünelim;
İki veri için de hafızada aynı büyüklükte yer ayırmak biraz savurganlık olmaz mı? Kesinlikle J
Şimdi bu ayrımı yapabilmemiz için visual basic’in bize sunmuş olduğu veri tiplerine bir göz atalım.
Sıra geldi bu değişkenleri kullanmaya.
Standart bir exe projesi açın.Formun kod kısmına geçin.
Değişken tanımlama Dim,Redim,Private,Public,Globa l,Static anahtar sözcükleri ile yapılmaktadır ve yazımı
Dim değişken_ismi as veri_tipi
şeklindedir.Şimdi 2.Lab’ı indirip bu değişkenleri nasıl kullandığımızı görelim.
Formun yüklenmesinde (form_load sub’i calisir) gördüğünüz üzere değişkenlerimizi tanımladık, herbir değişkene değerler atayıp formun üzerine yazdırdık.
Form yüklendikten sonra “Hatalı Atama Yap” butonuna bastığınızda ise vb Overflow hatası verecektir.Bunun sebebi max 255 değer alabilecek byte veri tipine 260 değerini atamaya çalışmamızdır.
Lab2 de farkettiyseniz bytArabaninMaxHizi değişkeni iki kere tanımlanmıştır.Bunun sebebi değişkenlerin tanımlandıkları yerlerle alakalıdır.Aslında bunu en iyi aşağıdaki şema açıklar.
Şemada standart bir exe projesinin kod bölümünü görmektesiniz.Bütün kod sayfasının başında
Dim dteDogumGunum as Date değişken tanımlaması bulunmaktadır.Şimdi olayı biraz daha karmaşıklaştırıyoruz.
-dteDogumGunum değişkeninin değeri form unload edilene kadar yani biz formu kapatana kadar hafızada kalacak ve formun içinden herhangi bir program bloğundan (sub veya function) erişilebilecektir.
-strDegisken1 değişkeninin değeri sadece Command1_Click sub’ı süresince hafızada tutulacaktır.
-intA değişkeninin değeri de sadece Command2_Click sub’ı süresince hafızada tutulacaktır.
Peki ya Private ve Public ? Eğer bir formun kod sayfasının en üstüne (General Declerations)
Public strDeğişken1 as string yazarsanız proje’de herhangi bir bölümden formismi.strDeğişken1 yazarak değişkene erişebilirsiniz.
Bunu daha iyi anlamak için 3.Lab’ı indirip çalıştırmanız yeterli olacaktır.
İlerleyen derslerimizde örneklerle daha detaylı açıklamalar yapacağız.
Simdi gelelim Sub ve Functionlara.Sub ve Functionlar program bloklarıdır.Belli bir iş için biraraya getirdiğimiz kodu içerirler.Örnek olarak Toplama işlemi için Toplama Sub’ına istegiğimiz değerleri gönderir ve toplatırız.Dolayısı ile projede herhangi bir yerde toplama işlemini kullanmamız gerektiğinde bu Sub’i çağırabilir tekrar kodlama yapmaktan kurtulabiliriz.
Sublar iki bölüme ayrılırlar.Form objelerinin olayları tetiklendiğinde çalıştırdıkları sublar ve kullanıcının kendi yazdığı sublar.Orneğin Private Sub Command1_Click sub’ı command1 objesinin click olayı tetiklendiğinde vb tarafından otomatik olarak çalıştırılır.
Sub’ın Function dan farkı nedir? Sub’ı çağırdığınızda vb o sub içindeki kodu çalıştırır ve End Sub ile işlemi bitirir.
Functionlara hatırlarsanız bir önceki dersimizde biraz değinmiştik.Tekrar yapmamız gerekirse functionlar yaptıkları işlemler sonucunda çağırıldıkları yere bir sonuç, bir değer döndürürler.
Değişken tanımlamalarda olduğu gibi fonksiyon ve sub larında tanımalama sınırları mevcuttur ve bu sınırlar Private,Public,Friend anahtar kelimeleriyle belirlenir.
Private Sub MerhabaDunya()
Msgbox “Merhaba Dunya”
End Sub
Public Sub HeryerdenErisebilirsin()
Msgbox “Eriştin”
End Sub
Projede çok fazla public değişken sub veya function kullanırsanız bu hafızayı gereğinden fazla meşgul eder ve performansı etkiler.Bunu engellemenin bir yolu da sub veya function ın içine parametre gödermek ile olur.
Private Sub ParametreleriToplaVeGoster(int Param1 as integer,intParam2 as integer)
Msgbox intParam1+intParam2
End Sub
Bir sonraki dersimizde modüller, classmodüller konularına değineceğiz.
Lab2 ve lab3 'ü indirmek için TIKLAYINIZ
Visual Basic Dersleri 4
Visual Basic - 4
Bu dersimizde nesnelerin ozelliklerine ve belli basli vb fonksiyonlarına değineceğiz.
Vb de bize hazır olarak verilen ve geliştireceğimiz yazılımlar içindeki işlemlerimizi kolaylaştıran fonksiyonlar mevcuttur.
Fonksiyonu kısaca şöyle tanımlayabiliriz; fonksiyona bir değer göndeririz ve fonksiyon da gerekli işlemleri yaparak bize sonucu gönderir.
Aşağıda bir fonksiyon örneği mevcuttur.
[25,15] -> Topla (25 + 15) -> [40]
Burada 3 aşama mevcuttur.
1-25 ile 15 değerleri Topla isimli fonksiyona gönderilir.
2-Topla fonksiyonu bu değerleri toplar.
3-Sonucu bize geri göderir.
Lafı fazla uzatmadan hemen gerçek bir örneğe geçelim.
İlk olarak Abs fonksiyonunu ele alalım.Bu fonksiyon gönderdiğiniz sayının mutlak değerini dödürür.
Standart bir exe projesi açın,Form1’e text1 ismi ile bir textbox ve command1 ismi ile bir commandbutton ekleyin.
Formun kod kısmına aşağıdaki kodu yapıştırın.
Private Sub Command1_Click()
Text1.text=Abs(Text1.text)
End Sub
Programı çalıştırın, textbox’a –1 değerini girin ve command buton’a basın.Evet –1 olarak girdiğiniz değer 1 oldu değil mi? Evet artık fonksiyonları nasıl test edeceğimizi öğrendiğimize göre diğer fonksiyonlara geçebiliriz.
Asc : Gönderdiğiniz karakterin ASCII değerini döndürür.
Chr : Gönderdiğiniz ASCII değerini karakter cinsinden döndürür.
Cbool : Gönderdiğiniz değeri boolean veri tipine döndürür.
Cbyte : Gönderdiğiniz değeri byte veri tipine döndürür.
Ccur : Gönderdiğiniz değeri currency veri tipine döndürür.
Cdate : Gönderdiğiniz değeri tarih veri tipine döndürür.
Cdbl : Gönderdiğiniz değeri double veri tipine döndürür.
Date : Herhangi bir değer göndermenize gerek kalmadan size sistem tarihini döndürür.
FormatCurrency : Gönderdiğiniz değeri para birimi yazımı şeklinde döndürür.
Lcase : Gönderdiğiniz metni küçük harfe çevirir ve döndürür.
Left : Gönderdiğiniz metnin sol tarafından istediğiniz sayıda harfi döndürür.
Len : Gönderdiğiniz mernin kaç harften oluştuğunu döndürür.
Ucase : Gönderdiğiniz merni büyük harfe çevirir ve döndürür.
Right : Gönderdiğiniz metnin sağ tarafından istediğiniz sayıda harfi döndürür.
Başlangıç olarak yukarıdaki fonksiyonlar yeterli olacaktır.Derslerimiz ilerledikçe ve örneklerimiz çoğaldıkça diğer fonksiyonları da kullanacağız.
Şimdi isterseniz biraz da standart nesnelerin özelliklerine değinelim
Textbox (Metin Kutusu)
Özellikler
Alignment
Alabileceği değerler : 0 (Left Justify) , 1 (Right Justify), 2(Center)
Metinkutusu içine yazılan metnin sola , sağa veya ortaya hizalanması için ayarlanması gereken özelliktir.
Eğer bu değer 1 yapılırsa metinkutusu içine yazılan metin sağa hizalanır.
Appearance
Alabileceği değerler : 0 (Flat), 1(3D)
Metinkutusunun ekranda düz veya 3 boyutlu olarak görünmesi için ayarlanması gereken özelliktir.
Backcolor
Alabileceği değerler : Sisteminizin size sunduğu renk paletindeki renk değerleri
Metinkutusunun arkaplan renginin belirlenmesi için ayarlanması gereken özelliktir.
BorderStyle
Alabileceği değerler : 0 (None), 1(Fixed Single)
Metinkutusunun çerçevesinin görüntülenip görüntülenmesi için ayarlanması gereken özelliktir.
CausesValidation
Alabileceği değerler : True,False
Metinkutusu değerinin değiştiğinde Validate event’inin tetiklenip tetiklenmeyeceğini belirten özelliktir.
Enabled
Alabileceği değerler : True,False
True değeri atanmışşa metinkutusuna erişebilir ve değerini değiştirebilirsiniz.False değeri atanmışsa
sadece metinkutusu içindeki değeri görebilirsiniz.
Font
Alabileceği değerler : Sisteminizin size sunduğu font değerleri
Metinkutusu içinde kullanılacak font değerini belirler.
ForeColor
Alabileceği değerler : Sisteminizin size sunduğu renk paletindeki renk değerleri
Metinkutusunun yazı renginin belirlenmesi için ayarlanması gereken özelliktir.
Height
Metinkutusunun yüksekliğini belirten/ayarlayan özelliktir.
Left
Metinkutusunun formun en sağ kısmından itibaren uzaklığını belirten/ayarlayan özelliktir.
Locked
Alabileceği değerler : True,False
True ise metinkutusu içinde imleç ile gezinebilir fakat değeri değiştiremezsiniz.False ise istediğiniz
değişiklikleri yapabilirsiniz.
MaxLength
Metinkutusu içine yazabileceğiniz maksimum karakter sayısını belirten/ayarlayan özelliktir.
Eğer 0 değeri girilirse metinkutusuna istediğiniz kadar giriş yapabilirsiniz.
Multiline
Alabileceği değerler : True,False
True ise enter tuşuna bastığınızda bir alt satıra geçer,False ise geçmez.
PasswordChar
Bu özelliğe bir değer atadığınızda metinkutusuna hangi karakteri girerseniz girin PasswordChar’a atadığınız
karakter gösterilir.Bu özellik daha çok şifre girişlerinde kullanılır.
ScrollBars
Alabileceği değerler : 0(None), 1(Horizontal), 2(Vertical), 3(Both)
Metinkutusunda ne tür kaydırma çubuklarının gösterileceğini belirtir/ayarlar.
Text
Metinkutusu içerisinde yazan metin değerini belirten/ayarlayan özelliktir.
Top
Metinkutusunun formun en üst kısmından itibaren uzaklığını belirten/ayarlayan özelliktir.
Width
Metinkutusunun genişliğini belirten/ayarlayan özelliktir.
Olaylar
Click
Metinkutusuna tıklandığında tetiklenen olaydır.
GotFocus
İmleç metinkutusuna konumlandığında tetiklenen olaydır.
Keydown
İmleç metinkutusu üzerinde iken bir tuşa basıldığı anda tetiklenen olaydır.
Keypress
İmleç metinkutusu üzerinde iken bir tuşa basıldığı anda Keydown’dan sonra tetiklenen olaydır.
Keyup
İmleç metinkutusu üzerinde iken bir tuşa basılıp bırakıldığı anda tetiklenen olaydır.
Lostfocus
İmleç metinkutusu’nu terkettiğinde tetiklenen olaydır.
Mousedown
Fare ile metinkutusuna tıklandığında tetiklenen olaydır.(Mouse’un hangi tuşu ile tıklandığını
Button değerinden anlayabilirsiniz.)
Mousemove
Fare metinkutusu üzerinde gezindiğinde tetiklenen olaydır.
Mouseup
Fare ile metinkutusu’na tıklanıp bırakıldığında tetiklenen olaydır.
Metodlar
Setfocus
İmlecin metinkutusu üzerine konumlanmasını sağlar.
Zorder
Metinkutusunun ön veya arka plana atılmasını sağlar.
Eveeeet yukarıda anlattığım fonksiyon ve obje özellik, olaylarının lab projesini indirmek için TIKLAYINIZ
Bir sonraki dersimizde veritipleri değişken tanımlama , fonksiyon ve sub kullanma konularına değineceğiz.
Visual Basic Dersleri 3
Nesneye dayali programlama...Dos tabanli yazilimlar gelistirdigimiz tarihlerde elimizde sadece degiskenlerimiz mevcuttu.String, integer .... Simdi ise arti olarak nesnelerimiz
mevcut.
Farki daha iyi anlatabilmek icin nesneye dayali yazilimlar’in akis diyagrami ile dos tabanli yazilimlarin akis diyagram’inin calisma farkina deginmek isterim.
Sema’da goruldugu gibi dos tabanli yazilimlarda yorumlama tek duzende gitmektedir, nesneye dayali yazilimda ise her obje icin bir akis diyagrami mevcuttur.Burada bahsettigimiz objeler ise commandbutton, label , textbox gibi objelerdir.
Nesneye dayali programlama 3 ana temel uzerine kurulmustur.
Property (ozellik) – Event (olay) – Method (islev)
Bir textbox’i ele alalim.
Textbox’in belli basli property’leri ...
Text : Textbox’in icine yazilacak deger.
Left : Textbox’in uzerinde bulundugu formun en sol kenarindan, textbox’in en sol kenarina olan uzaklik
Width : Textbox’in genisligi
Height : Textbox’in yuksekligi
Textbox’in belli basli event’leri ...
Click : Textbox uzerine mouse ile clicklendiginde calisir.
MouseMove : Textbox uzerinde mouse ile gezinildiginde calisir.
Textbox’in belli basli method’lari ...
Move : Textbox’i form uzerinde verilen koordinatlara konumlandirir.
Setfocus : Imleci textbox uzerine konumlandirir.
Iste nesneye dayali programlama tamamen bu objeler uzerine kurulmustur.
Vb’de kod baslica sub ve function’lar altina yazilir.Ornek olarak
Private Sub Text1_Click()
MsgBox "Textbox'a tikladiniz."
End Sub
Private sub’lar yazildigi modul icerisinde ,
Public sub’lar ise butun proje genelinde gecerlidir.
Bu kural functionlar icin de gecerlidir.
Isterseniz ikinci ornegimizi yapalim.
Bir hesap makinesi yazalim
Bunun icin kullanacagimiz objeler label,textbox,line ve commandbutton
Standart bir exe projesi acin.
Formun uzerine 3 label 3 textbox 1 line ve 1 command button objesi yerlestirin.
Objeleri asagidaki semada goruldugu gibi yerlestirin.
Formun Load sub’ina asagidaki kodu yazalim.
Private Sub Form_Load()
Form1.Caption = "Hesap makinesi"
Label1.Caption = "1.deger"
Label2.Caption = "2.deger"
Label3.Caption = "Toplam"
Command1.Caption = "Hesapla"
End Sub
Boylece form yuklenirken formun basligi “Hesap makinesi”, label’lar “1.deger” “2.deger” “toplam” ve commandbutton’un basligi “Hesapla” olarak atanacaktir.
Burada yapmamiz gereken islem Hesapla butonuna basildiginda text1 ve text2 textboxlari icindeki degerleri toplayip text3’e atamak.
Dolayisi ile kodumuzu command1_click altina yazacagiz
Private Sub Command1_Click()
Dim lngDeger1 As Long
Dim lngDeger2 As Long
Dim lngSonuc As Long
lngDeger1 = Val(Text1.Text)
lngDeger2 = Val(Text2.Text)
lngSonuc = lngDeger1 + lngDeger2
Text3.Text = lngSonuc
End Sub
Burada Command1_click sub’i icerisinde gecerli olacak 3 degisken tanimladik.
Ilk degerimize text1 icerisine girilen degeri atadik.
Ikinci degerimize de text2’ye girilen degeri atadik.
Dikkat ederseniz atama isleminde val fonksiyonunu kullandik.Val fonksiyonu
gonderilen string degeri numerik olarak geri dondurur.
Sonra text3’un text degerine lngdeger1 ve lngdeger2’nin toplamini atadik.
Evet hesap makinemiz hazir.
Bir sonraki dersimizde nesnelerin ozelliklerine ve belli basli vb fonksiyonlarina deginecegiz