Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Menu Bar : VB program mönüsü Tool Bar : Mönü kısayol tuşları Project Explorer : Projede yer alan form, module gibi elemanları listeler Properties Window.

Benzer bir sunumlar


... konulu sunumlar: "Menu Bar : VB program mönüsü Tool Bar : Mönü kısayol tuşları Project Explorer : Projede yer alan form, module gibi elemanları listeler Properties Window."— Sunum transkripti:

1 Menu Bar : VB program mönüsü Tool Bar : Mönü kısayol tuşları Project Explorer : Projede yer alan form, module gibi elemanları listeler Properties Window : Kontrol ve formların özelliklerini gösterir Form Layout Window : Formun ekran üzerinde bulunduğu yeri gösterir ToolBox : Arayüz tasarımında kullanılanılabilecek kontroller Form Desinger : Projenin ara yüzünün tasarlandığı pencere Object Browser : VB kütüphanesinde kullanılan tip ve değişkenleri gösterir Code Window : Programın kodlamasının yapılacağı editör Visual Basic IDE Yapısı

2

3 New Project : Yeni bir proje başlatır ( Ctrl + N ) Open Project : Daha önce kaydedilmiş bir projeyi açar ( Ctrl + O ) Add Project : Uygulamaya yeni projeler ekler Remove Project : Uygulama içindeki bir projeyi uygulamadan çıkarır Save Project : Projede bulunan tüm nesneleri kaydeder Save Project As : Tüm nesneleri ve projeyi yeni bir isimle kaydeder Save : Sadece aktif nesneyi kaydeder Save As : Sadece aktif nesneyi yeni bir isimle kaydeder Print : Projeyi yazdırır ( Ctrl + P ) Current Module : Aktif modülü yazdırır Current Project : Projede bulunan bütün nesneleri yazdırır Form Image : Form görüntüsünü yazdırır Form as Text : Nesnelere ait özellikleri yazdırır Print Setup : Yazıcı ve baskı ayarlarını değiştirir Make Project1.exe : EXE dosya oluşturur Auto Increment : Program sürüm numarası her exe yapışta otomatik olarak artar Exit : Visual Basic programından çıkış File Mönüsü

4 tool(alet) lar Visual Basic'in solunda bulunan ToolBox'in üzerindeki elemanlardır VB'de Tool Box IMLEÇ: Form üzerine yerleştirilmiş kontrol nesnelerinin yerini ve boyutunu degiştirmek için kullanılır. PICTURE BOX (Resim Kutusu): Form üzerinde resimleri göstermek,diskten form'a resim yüklemek için kullanılır. LABEL (Etiket): Bilgi vermek ya da başlık koymak amacıyla kullanılan alet. TEXT BOX (Metin Kutusu): Bilgi girişi veya üretilen bilgilerin gösterilmesi için kullanılır. FRAME (Çerçeve): Kontrol veya kontroller için gurup oluşturur. COMMAND BUTTON (Komut Butonu): Kullanıcının belirli 1 işi yerine getirmesi için onaylama butonudur. CHECK BOX (Kontrol Kutusu): Kullanıcıya evet/hayir ya da doğru/yanlış gibi seçenekler vermek için kullanilir. OPTION BUTTON (Opsiyon Butonu): En fazla bir seçeneğin seçilebileceğii durumlarda kullanılır.

5 COMBO BOX (Kombine Kutu): Metin kutusu gibi içine metin yazılabilinir,liste kutusu gibi istenilen seçilinebilir. LIST BOX (Liste Kutusu): Kullanıcının, içinden bir veya daha fazla isim seçebileceği bir liste içerir. HORIZONTAL SCROLL BARS (Yatay Hareket Çubukları): Kullanıcıya, uzun bilgilerde, yatayda hareket imkani saglar. VERTICAL SCROLL BARS (Düşey Hareket Çubuklari): Kullaniciya uzun bilgilerde, düşeyde hareket imkani sağlar. TIMER (Zamanlayıcı): Formun çalıştığı sırada, zamana bağlı olarak belirli aralıklarla,eylemlerin gerçekleşmesini denetler. DRIVE LIST BOX (Sürücü Listeleme Kutusu): Geçerli sürücülerin bir listesini göstermeye yarar.Aynı zamanda sürücüler arası geçiş'te kullanılır. DIRECTORY LIST BOX (Dizin Listeleme Kutusu): Sürücülerin yolunu ve dizinlerini görüntüler. FILE LIST BOX (Dosya Listeleme kutusu): Verilen bir dizin içindeki tüm dosyaları listeler.

6 SHAPE (Sekil): Form üzerine geometrik şekiller çizmek için kullanılır. LINE (Çizgi): Form üzerine çizgi çizmek için kullanılır. IMAGE (Görüntü): Resim kutusu gibi bir resmi gösterir.Bilgisayarı; daha az yorar.Mousela tiklandigi zaman command buton gibi davranır. DATA ACCESS (Veriye Erişim): Sistemdeki mevcut veri tabanına erişerek, bilgi güncelleme,edit yada bilgi görüntüleme işlemlerinin yapilabilmesine olanak sağlar. OLE CLIENT (Ole Istemcisi): Bu tool ile form içine bir Windows programından (Access,Excel gibi) nesneler aktarmak mümkün.

7 Visual Basic' te Formlar Visual Basic' te iki çeşit form vardır. Bunlardan bir tanesi tek başına çalışan form türü olan Visual Basic ilk çalıştığı zaman ekrana gelen form ve projeye her eklenen yeni formun türü olan SDI (Single Document Interface) formlarıdır. Bu tür formların içinde başka formlar çalışamazlar. İkinci tür form çeşidi ise içerisinde başka formların çalışmasına izin veren ve MDI (Multi Document Interface) olarak bilinen form türüdür.Bu tür formların içinde Child form olarak adlandırılan ve normal SDI formların Child özelliğinin true yapılmasıyla oluşan formlar çalıştırılabilir. Aşağıdaki birince resimde örnek bir SDI form, ikinci resimde ise örnek bir MDI form ve bu formun içindeki Child formları görebilirsiniz. SDI form örneğiMDI form örneği

8 Caption: Formun başlığına yazılacak yazıyı belirtir.Bu özelliğe formun properties penceresinden ulaşılabileceği gibi kod kullanarak da formun başlığı değiştirilebilir.

9 Icon : Formda kullanılacak iconu belirtir. Bu icon programınıza ait bir kısayol oluşturduğunuzda gözükecek icondur aynı zamanda. BorderStyle : Formun sınırlarının belirlendiği bu özellik aşağıda belirten değerleri alabilir. 0-None:Bu değer verildiğinde form boyutlandırılamaz,taşınamaz ve kapatılamaz. Ayrıca formun çerçevesi,başlığı,kontrol kutusu,min ve max düğmeleri de formda yer almayacaktır. Çalıştığında aşağıdaki şekli alır.

10 1-FixedSingle: Bu değer verildiğinde kullanıcı formu büyültüp küçültemez ama formu taşıyabilir ve kapatabilir.Ayrıca formun boyutlarında herhangi bir değişiklik yapılamaz. 2-Sizable: Varsayılan değer budur ve formun tüm özellikleri kullanılabilir. 3-FixedDouble :Kullanıcı formu boyutlandıramaz ama formu taşıyabilir ve formu kapatabilir. 4-FixedToolWindow :Normal forma göre başlığı daha küçük olan ve kontrol menüsü içermeyen bir form oluşturur.Bu formun boyutları kullanıcı tarafından değiştirilemez. 5-SizableToolWindow :Yukarıdaki forma benzer terk farkı boyutları kullanıcı tarafından değiştirilebilir. MaxButton, MinButton : Formun sağ üst köşesinde bulunan ve formun büyültülüp küçültülmesi işlemleri için kullanılan düğmelerin formda bulunup bulunmamasını belirler. ControlBox : Formun sol üst köşesinde bulunan kontrol menüsünün görünüp görünmemesini sağlar.Bu değer true veya false değerlerini alabilir.Eğer bu değer true ise kontrol menüsü görünür ve bu form Alt+F4 tuş kombinasyonu kullanılarak kapatılabilir. Moveable : Bu özellik ile kullanıcının formu taşıyıp taşıyamayacağı belirlenir.Bu özellik true veya false değerini alabilir.Eğer bu değer true ise kullanıcı formu taşıyabilir. ShowInTaskbar : Bu özellik formun çalışma esnasında görev çubuğunda görünüp görünmeyeceğini belirler.True yada false değerlerini alabilir.Eğer bu özellik true ise program çalıştığında form görev çubuğunda görünür. AutoRedraw : Bu özellik ile formun üzerine başka bir form geldiğinde veya formun boyutlarıyla oynandığında formun üzerindeki yazı veya çizimlerin yenilenip yenilenmeyeceği belirlenir.Bu özellik true veya false olmak üzere iki değer alabilir. Eğer bu değer true ise formda yenileme yapılır ve formun üzerindeki yazı ve çizimler kaybolmaz. FontTransparent : Formun üzerine Print metodu ile yazılan yazıların zemin renginin olup olmamasını belirler. Bu özellik true yada false olabilir.Eğer true ise yazıların zemin rengi olmayacaktır. False ise yazı kandı zemin rengi üzerine yazılır ve altındaki nesneyi göstermez.

11 WindowState : Formun ilk çalışmaya başlayacağı zaman alacağı durumu belirler.Bu özellik üç değer alabilir. 0-Normal :Normal durumda açılır. 1-Minimized :Simge durumunda açılır. 2-Maximized :Ekranın tamamını kaplayacak şekilde açılır. StartupPosition : Formun yüklenmeye başlandığı zaman ekran koordinatlarının neye göre belirleneceğini belirler.bu özellik dört farklı değer alabilir. 0-Manuel :Form tasarlandığı zamanki konumda açılır. 1-CenterOwner : Child özelliği true yapılmış formların MDI formun ortasında açılmasını sağlar. 2-CenterScreen :Formun ekranın ortasında açılmasını sağlar. 3-WindowsDefault :Formun konumunu Windows belirler. KeyPreview : Form aktifken basılan tuşlardan formun etkilenip etkilenmeyeceği bu özellik kullanılarak ayarlanılır.Bu özellik iki değer alabilir.Eğer değer true ise formda bulunan herhangi bir kontrolün üzerinde basılan tuşlar ilk önce formun KeyPress, Keydown,KeyUp olaylarını meydana getirir.Bu değer false ise kontrolün üzerinde basılan tuşlar o kontrolün KeyPress, Keydown, KeyUp olaylarını meydana getirir. Count : Formdaki menüler dahil kontrol sayısını belirtir. Picture : Formun üzerinde gösterilecek resmi belirtir. MDIChild : Yukarıda bahsettiğimiz MDI formların içinde çalışabilen bir form istiyorsak bu özelliği true yapmamız gerekiyor. CurrentX, CurrentY : Formun üzerindeki aktif pixelin yerini belirtir. Formun üzerine yazdırılacak yazılar bu noktadan başlayarak yazdırılır.

12 Width : Formun genişliğinin belirlendiği özellik. Heigth : Formun yüksekliğinin belirlendiği özellik. Left : Formun ekranın ne kadar solunda olacağının belirlendiği özellik. Top : Formun ekranın ne kadar üstünde yer olacağının belirlendiği özellik. Font : Formlara yazılacak yazıların fontlarının belirlendiği özellik. BackColor: Formun zemin renginin belirlendiği özellik. ScaleMode : Formda kullanılan ölçü birimini belirtir.Varsayılan ölçü birimi Twip'dir.Kullanılabilecek ölçü birimleri ise; 1- Twip 2- Point 3- Pixel 4- Character 5- Inch 6- Millimeter 7- Centimeter MousePointer: Form üzerindeki fare işaretçisinin şeklini belirler. Enabled : Formların kullanılabilir olup olmamasının belirlendiği özellik.Eğer bu özellik bir form için false ise o form proje içerisinde kullanılamaz. Bu yazımızda formların genel özelliklerine değindik. şimdi formlara uygulanabilecek olayları inceleyelim.

13 Visual Basic 'de formlara uygulanabilecekler Bildiğimiz gibi Visual Basic olay temelli bir programa aracı olup, kullanılan kontroller için önceden tanımlanmış olaylara ilişkin kodlar yazılarak programın çalışması sağlanır. Örneğin siz,formun üzerine çift tıklanması durumunda bir olayın meydana gelmesini istiyorsunuz. Bunun için formda tanımlanmış DblClick olayına ilgili kodu yazarak bu olayın meydana gelmesini sağlayabilirsiniz. şimdi sırasıyla formlara uygulanabilecek olayları inceleyelim. Load() : Formun ilk defa hafızaya yüklendiği zaman meydana gelen olaydır.Bu olay kullanılarak,kullanıcıya formu göstermeden önce yapılması gereken işler yapılabilir. Örneğin,kullanıcı programı başlattığında ilk önce kullanıcıdan,kullanıcı adı ve şifresini alarak daha sonra yüklenecek ana formda bu bilgileri kullanarak bir veritabanına bağlantı sağlayabiliriz. Activate() : Formun,programda aktif olması sırasında meydana gelir. Eğer programımızda bir tane form varsa bu form her zaman aktiftir. Bu olaya,formun aktif olması sırasında yapılmasını istediğimiz olayları yazabiliriz. Deactivate() : Formun, programda aktivitesini kaybetmesi sırasında meydana gelen olaydır. Bu olaya,formun aktivitesini kaybetmesi sırasında yapılmasını istediğimiz olayları yazabiliriz. Unload(Cancel As Integer) : Formun kapatılması sırasında meydana gelen olaydır. Ayrıca bu olayda tanımlanmış Cancel değişkenini kullanarak sadece bizim istediğimiz durumda formun kapanmasını sağlayabiliriz. Bunu gerçekleştirmek için,yani formun kullanıcı tarafından hiçbir şekilde kapatılmaması için Cancel değişkenine True değerini atamalıyız. Aşağıdaki örnekte kullanıcı formu kapatmak istediği zaman bir pencereyle(inputbox) karşılaşıyor ve bir değer girmesi isteniyor. Eğer girdiği değer 2 ve 2'den büyükse form kapanmıyor.

14 Private Sub Form_Unload(Cancel As Integer) Dim c c = InputBox("Formu kapatmak için bir sayi giriniz", "Çikis") If c > 2 Then Cancel = True Else Cancel = False End If End Sub Not : Bu olay formun End komutuyla sonlandırılması sırasında meydana gelmez. Yani bu olayın meydana gelebilmesi için formun program tarafından End komutu kullanılarak sonlandırılmaması gerekir. Yukarıdaki programı çalıştırdığınızda aşağıdakine benzer bir ekranla karşılaşmalısınız.

15 Resize() : Formun boyutlarının değiştirilmesi sırasında meydana gelir.Örneğin formun genişliğinin veya yüksekliğinin değiştirilmesi bu olayın meydana gelmesini sağlar. KeyPress(KeyAscii As Integer) : Formun çalışması sırasında yön ve kontrol(Ctrl,Alt,Shift) tuşları dışında herhangi bir tuşa basılması sırasında meydana gelen olaydır. Bu olayda basılan tuşun Ascii değeri KeyAscii değişkenine atanır. Bu değişkeni kullanarak hangi tuşa basıldığını öğrenebilirsiniz. Aşağıdaki program, formun çalışması sırasında hangi tuşa basıldığını ekrana yazar. Private Sub Form_KeyPress(KeyAscii As Integer) Show Print Chr(KeyAscii) & " tusuna bastiniz." End Sub

16 KeyDown(KeyCode As Integer, Shift As Integer) : Bu olay herhangi bir tuşa basıldığı anda meydana gelir. Bu olayda iki parametre kullanılır.Bu parametrelerin biri basılan tuşun Ascii değerini, diğeri ise bu tuşla birlikte Shift,Ctrl ve Alt tuşlarından herhangi birine basılıp basılmadığı konusunda bilgi tutar. Aşağıdaki tabloda Shift parametresinin alabileceği değerler ve açıklamalarını bulabilirsiniz. ShiftParametresinin Değeri Açıklama 0Shift,Ctrl,Alt tuşlarından herhangi birisi basılı durumda değil. 1Shift tuşu basılı durumda. 2Ctrl tuşu basılı durumda. 3Shift ve Ctrl tuşları basılı durumda. 4Alt tuşu basılı durumda. 5Shift ve Alt tuşları basılı durumda. 6Ctrl ve Alt tuşları basılı durumda. 7Shift,Ctrl ve Alt tuşları basılı durumda.

17 Aşağıdaki örnekte kullanıcı Ctrl tuşu ile birlikte A tuşuna basarsa kullanıcıya mesaj verecektir. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 65 And Shift = 2 Then MsgBox "Ctrl+A tus kombinasyonunu kullandiniz." End If End Sub KeyUp(KeyCode As Integer, Shift As Integer) : Bu olay ise kullanıcının bastığı tuşu bırakması sırasında meydana gelir. önceki tabloda Shift parametresi için gösterilen değerler bu olayda da geçerlidir.

18 MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) : Bu olay formun üzerinde mouse'un herhangi bir tuşuna basılması sırasında meydana gelir. Bu olayda kullanılan parametrelerden Button parametresi,kullanıcını mouse'un hangi tuşuna bastığı bilgisine tutar ve kullanıcı mouse'un sol tuşuna basmışsa 1,sağ tuşuna basmışsa 2,her iki tuşa birlikte basmışsa 3 değerini alır. İkinci parametre olan Shift ise mouse'un tuşlarına basıldığı sırada herhangi bir kontrol karakterine basılıp basılmadığı bilgisini tutar ve yukarıdaki tabloda açıklanan değerler bu olaydaki Shift parametresi için de geçerlidir.X ve Y parametreleri ise bu olayının meydana geldiği andaki mouse işaretçisinin yerinin Twip cinsinden değerlerini tutarlar. Aşağıdaki örnekte mouse'un sol tuşuna tıklandığı yerin Twip olarak değeri kullanıcıya mesaj olarak gösteriliyor. Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then MsgBox ("Mouse'un yeri :" & Str(X) & "," & Str(Y)) End If End Sub

19 MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) : Bu olay kullanıcını mouse'un bastığı tuşunu serbest bırakması sırasında meydana gelir ve kullanılan parametreler MouseDown olayındakilerle aynıdır. MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) : Bu olay mouse işaretçisinin form üzerindeki yerinin değişmesi sırasında meydana gelir ve kullanılan parametreler MouseDown olayındakilerle aynıdır. Click() : Bu olay mouse ile formun herhangi bir yerine tek tıklama yapıldığında meydana gelir. DblClick() : Bu olay mouse ile formun herhangi bir yerine üst üste iki tıklama yapıldığında meydana gelir. Aşağıdaki programda kullanıcıya, formun herhangi bir yerine çift tıklaması durumunda bir mesaj gösterilecektir. Private Sub Form_DblClick() MsgBox "Mouse ile Çift Tıklama Yaptiniz.",, "Çift Tiklama" End Sub

20 VB'de Veri Yapıları ve Tanımlama 1-)Sabitler(Constants) seklindeki bir sabit bir tamsayı sabittir.“BİLGİSAYAR" şeklindeki bir sabit ise string türü bir sabittir.String türü ifadeler sayisal işlemlere sokulmazlar.Değişkenleri elimizle tanımlarken,code(yazilimi yazdigimiz pencere)penceresinin general(pencerenin sol köşesindeki listbox'a bak)kisminda olmalıyız. Bu programı yazdığınızda,command1 butonuna tıkladığınızda text kutusunda bilgisayarak yazacaktır. Gördüğünüz gibi sabit değerleri general kısmında tanımladık.Sabit tanımlamak için mutlaka ihtiyacımız olan şeyler "const" ve sabitin ismi. private ve public, değişkenlerin etkili olacağı alanları belirlememizde işe yarar.Çoğu zaman private'yi kullanın çünkü standart.exe olarak açtığınız formlarda public hata verebilir.

21 2-)Değişkenler Program içerisinde değerleri sürekli olarak degişebilen veri yapısıdır. x=23 y=12 iken x=x+3 y=x+x dersek x ve y'nin değerlerini 26 ve 38 yaparak degiştirmiş oluruz.Yani bir değişkene yeni bir değer atanırsa eski değeri silinecektir. a-)Degişkenlere isim verme •Degişken isminin ilk karakteri bir harf olmalıdır.Rakam değil. •Diğer karakterler harf,isim,karakter,alttan çizgi_ v.s.olabailir. •Harflerin küçük yada büyük olmasının bir önemi yoktur. •Değişken isimlerinin uzunluklari 255 karaktere kadar olabilir. •Değişken isimleri içerisinde diğer semboller (+,-,/,, vb) bulunmamalidir. b-)Değişken türleri Bu bölümde,vb'de program yazarken,programınızda kullanabileceğiiniz veri türleri tanıtılacaktır. variant: Bu tipte tanımlanmış bir değişkene herhangi bir tip’te veri yüklenebilir.Yani ne tür bir veri gireceğimizi bilmediğimiz degişkenlerde Variant kullanabiliriz.Ama bu tür degişkenler hafizada 16 byte tan fazla yer kaplarlar. Örnek: Private Sub Form_Load() Dim Ad As Variant, No As Variant Dim Dogum As Variant Ad="E lif BULUt " Tel=" " Dogum=#Oct,25,1983# End Sub

22 string: Matematiksel işlemlere sokulamayan veri tipidir.Iki string ifade arasındaki + isareti bu stringleri birleştir anlamına gelir. Örnek: Private Sub Form_Load() Const A=20,B=50 Dim C As integer C=A+B End Sub Eger burada tanımlanan degişkenlere daha büyükk sayılar atanırsa overflow oluşur. long: Daha büyük bir aralıkta integer yani tamsayı tanımlamak için kullanabileceğiimiz bir veri tipidir. Hafizada 4 byte yer kaplar. Kullanılabilecek uç değerler +2,147,483,647 ile - 2,147,483,648 dir. currency: Sayısal tipteki veriler için tanımlanmış bir veri tipidir.Hafizada 8 byte yer kaplarlar. 4 hane ondalık kısmı olmak üzere toplam 19 haneden oluşur.(nokta hariç) Alabileceği maximum degerler -922,337,203,685, ile 922,337,203,685, arasındadır.

23 date: Tarih türündeki bilgileri kullanmak için oluşturulmuş bir veri tipidir. Hafizada 8 byte yer kaplarlar. 1 Ocak ile 31 Aralik 9999 arasındaki tarihleri kullanabilirsiniz Örnek: Private Sub Form_Load() Dim Dogum_tarihi As Date, Olum_Tarihi As Date Dogum_tarihi =#Oct,25,1955# Olum _Tarihi=#Oct,6,2002# End Sub boolean: Mantıksal veri tipleri için kullanılır. Iki seçenekten birisini(True,False) alabilir.Bellekte 2 byte yer işgal ederler. byte: O ile 255 arasindaki tamsayıları ifade etmek için kullanılabilecek veri tipidir. Örnek Private Sub Form_Load() Dim A As Byte, B As Byte A =23 B= 143 End Sub

24 single: Tam sayı olmayan sayılar için kullanabileceğimiz bir veri tipidir.Single tipindeki veriler bellekte 4 byte yer kaplarlar. Negatif sayilar için alabileceği aralık E38 ile – E-45,pozitif sayılar için alabileceği aralık E-45 ile E38 arasındadır. double: Visual Basic’te kullanılabilecek en büyük sayısal değerlerin veri tipidir. Hafızada 8 byte yer kaplarlar. 16 haneye kadar hassastırlar. Maximum alabileceği degerler pozitif sayılar için E-324 ile E308, negatif sayılar için de E308 ile E-324 arasındadır.. Örnek: Private Sub Form_Load() DefDbl A-K Dari=50000 Bugday= Arpa= End Sub b-)Tip bildirimi için DIM deyimi Iyi bir program oluşturmak için,değişkenlerin tiplerini önceden bildirmek faydalı bir alışkanlıktır.Tip bildiriminde bulunulmazsa,değişkenlerin tipi variant olarak atanır.Bu da gereksiz yer kaplamaya neden olur.Değişkenlerin tipini bildirmede alternatif bir yol Dim deyimini kullanmaktır.Dim x as integer gibi. Dim a,b,c,d as double şeklindeki ifade,sedece d'yi double olarak atayacak,a,b,c değişkenleri ise variant olarak kalacaktır. Dogru kullanım ise: Dim A As Double,B As Double,C As Double,D As Double şeklinde olmalıdır.

25 c-)Zorunlu tip bildirimi VB'de tip bildirimi zorunlu değildir.Fakat yazılımcı isterse bunu zorunlu hale getirebilir.Bunun için şu adımlar izlenmelidir. •Kod penceresi açılır. •General, declarations kısmı; seçilir. •Bu bölüme option explicit yazılır. bunu yaptıktan sonra programınızı yazarsanız,ve eğer degiskenleri tanımlamadıysanız,programı da o halde çalıştırdıysanız hata verecektir.

26 d-)Degişkenlerin geçerlilik bölgesi Aksi belirtilmediği sürece vb'de tanımlanan değişkenler sadece tanımlandıkları; prosedür (command1_click,text1_change... bir prosedürdür)içinde geçerlidir. Bazi değişkenleri prosedürler arası; kullanmanız gerekebilir,prosedürler arası değer alıp, verme ihtimaliniz olabilir.Böyle durumlarda modül düzeyinde değişkenlere ihtiyaç vardır,bu tip değişkenleri ancak general, declarations kısmında tanımlayarak elde edebiliriz. e-)değişkenlerin static Ve dinamik durumları Aksi belirtilmediği sürece tanımladığıimiz değişkenler dinamiktir;yani olay, prosedürün her çalışmasında(mesela, her command1_click olduğunda)bir önceki işlem sonundaki hesaplanmış değeri saklamazlar.Fakat değişkeninizi tanımlarken Dim X As integer değil de Static X As integer olarak tanımlarsanız her prosedür çalıştığındanda 1 önceki procedure sonundaki hesaplanmış değeri saklar onun üstünden işlem yapar.

27 VB'de Fonksiyonlar Asc:Klavyeden girilen herhangi bir ifadenin,nümerik ascii karşılığını verir.Eğer tek harfli ifade yerine sözcük girerseniz, sözcüğün ilk karakterini baz alacaktır. Mesela asc(bilgisayar)denirse b'nin nümerik ascii karşılığı olan 98 elde edilir. Chr$:0-255 arasında girilen bir nümerik ascii koduna karşılık gelen karakteri verir. Bu programda text1'e gireceğniz karakterin karşılığı text2'de,text3'de girdiğiniz karakterin karşılığı text4'de görünecektir. Private Sub Command1_Click() a = Text1.Text a = Asc(a) Text2.Text = Str(a) End Sub Private Sub Command2_Click() b = Text3.Text b = Val(b) If b > 255 Then GoTo son b = Chr(b) Text4.Text = b son: End Sub

28 Space$(n):Belirtilen text'e veya herhangi bir yere n kadar boşluk koyar. Text1.text=space$(4)gibi Right$:Belirtilen stringin en sağından başlayarak belirtilen sayıda stringi kopyalamak için kullanılır. A=Right$(“bilgisayar",5) derseniz A=“sayar" olacaktır. Left$:Belirtilen stringin en solundan başlayarak belirtilen sayıda stringi kopyalamak için kullanılır. A=Leftt$(“bilgisayar",4) derseniz A=“bilg" olacaktır. Mid$:Belirtilen stringin belirtilen karakterinden başlayarak,soldan sağa doğru belirtilen kadar karakter kopyalamaya yarar. A=Mid$(“bilgisayar",2,4) derseniz A=“ilgi" olacaktır.Yani 2.karakterden başlayarak sağa doğru 4 karakter kopyalayacaktir. Private Sub Command1_Click() Dim a As String a = Right$(“ bilgisayar ", 5) Text1.Text = a End Sub Private Sub Command2_Click() Dim b As String b = Left$(“ bilgisayar ", 5) Text1.Text = b End Sub Private Sub Command3_Click() Dim c As String c = Mid$(“ bilgisayar ", 2, 4) Text1.Text = c End Sub Private Sub Form_Load() Text1.Text = “ bilgisayar " End Sub

29 Len(String):Girilen stringin kaç karakter uzunluğunda olduğunu öğrenmemize yardımcı olur.Sayısal bir değer alır.A=Len(“bilgisayar") derseniz A=10 olur. Val(String):Girilen stringi sayısal ifadeye çevirir ve bize,onu toplama,çıkarma... gibi işlemlerde kullanma imkanı sağlar. A=val("15") ifadesi text kutusundan veya herhangi bir yolla girilmiş 15 yazısını rakamsallaştırmaya yarar. Str(Rakam):Val'ın yaptığını tam tersini yapar.Örneğin text kutusunda rakamsal ifadeleri kullanamayız,anca onları str ile string haline getirip kullanabiliriz. A=Str(15) derseniz A="15" olacaktır. Lcase(String):İçine girilen küçüklü büyüklü yazıyı tamamen küçük harfe çevirir. A=Lcase(“DeNEme") derseniz A=“deneme" olacaktır. Ucase(String):İçine girilen küçüklü büyüklü yazıyı tamamen büyük harfe çevirir. Ucase(“DeNEme") derseniz A=“DENEME" olacaktır. Instr(Rakam,String1,String2):Birinci string içinde ikinci stringi arar.Eğer aradığını bulursa değeri bulduğu karakterin sıra numarası olur.Örneğin birinci stringimiz “mutfak" ikinci stringimiz "a" yani birinci string içinde a'yı arıyacağız.Programı yazıp çalıştırdığımızda değer 5 olacaktır,yani "a" 5.sırada.İsterseniz aramayı istediğiniz sıradan başlatabilirsiniz.Örneğin A=Instr(6,"mutfakda","a") derseniz A=8 olacaktir.Çünkü direk 6.karakterden aramaya başlattığımız için 8. sıradaki "a" yı gördü. Trim(String):Parantez içine girilen stringin sağındaki ve solundaki boşluk karakterini siler. Ltrim(String):Parantez içine girilen stringin solundaki boşluk karakterini siler. Rtrim(String):Parantez içine girilen stringin sağındaki boşluk karakterini siler.

30 Date:Bu komut sayesinde sistemin tarihini öğrenebilir yada onu yeniden set edebiliriz.A=Date dersek A o günün tariki olacaktır.Yanlız atlanılmaması gereken önemli bir ayrıntı ise A yı dim ile tanımlarken dim A as date demeliyiz.Eğer bilgisayarın tarihini set etmek istiyorsak Date="aa-gg-yyyy".Bir de date olarak tanımladığımız bir değişkene tarih atayabiliriz.Mesela dim t as date olarak tanımladığımız değişkene tarih atamak istersek t=#aa-gg-yyyy# şeklinde bir ibare kullanmalıyız.Eğer ay kısmına 13 ve daha büyük yada gün kısmına 32 ve daha büyük rakamlar girerseniz programın çalışması esnasında hata verecektir. Time: Hem zamanı öğrenmede hem de zamanı set etmede kullanılır. Time="SaSa:dkdk:snsn" şeklinde set edilebilir. Ayrıca... Private Sub Command1_Click() Text1.Text = Time End Sub ile zamanı bir değişken olarak elimizde tutabiliriz Now:O anki tarih ve zamanı bize verir. Private Sub Command1_Click() Text1.Text = Now End Sub

31 Datevalue(string):İçine girilen string türü bir ifadeyi date türü bir değişkende tutmamıza yarar.Örneğin programda kullanıcıdan textboxa doğum tarihini girmesini istediniz,textbox bunu tabi ki string türü bir ifade olarak saklayacaktır.Bunu date türü bir ifadeye çevirmede datevalue komutu devreye giriyor... Dim t as date Text1.text=" " t= Datevalue("text1.text") Dateserial(Yıl,Ay,Gün):Girilen integer türü değişkenleri date türü değişkenlere çevirmeye yarar.Ayrıca Dateserial(1996,10,28)-Dateseria(1954,3,5) gibi bir kullanımla 2 tarih arasındaki gün sayısını bulabiliriz. Timeserial(saat,dakika,saniye):Parantez içine girilen ifadeyi zaman türünde değişkene çevirir.A=Timeserial(22,11,08) komutu ile A; 10:11:08 PM değerine eşit olacaktır. Day(Tarih):Verilen tarih türü bilginin içinden gün kısmını alır.A=Day("10/25/1983") ifedesinde A=25 olacaktır. Month(Tarih):Verilen tarih türü bilginin içinden ay kısmını alır. Year(Tarih):Verilen tarih türü bilginin içinden yıl kısmını alır. Hour(Zaman):Zaman türü bilginin içinden saati alır. Minute(Zaman):Zaman türü bilginin içinden dakikayı alır. Second(Zaman):Zaman türü bilginin içinden saniyeyi alır.

32 VB'de İşletim Sistemine Hükmeden Komutlar VB'de İşletim Sistemi Düzeyindeki Komutlar MKDiR:Dostan alınmış bir komuttur.Aktif dizinin altinda yada belirlenen yeni 1 yola uygun olarak yeni dizin yaratır.Örneğin MkDir “pmyo" ile aktif yolun altına yeni bir dizin açabilirsiniz.Bu dizin zaten mevcutsa hata verir. RmDir:Dostan alinmiş bit komuttur.Geçerli yolun altindaki belirtilen klasörü silmeye yarar. Örnegin RmDir “pmyo"ile aktif yolun altindaki pmyo dizinini siler.Eğer öyle 1 dizin yoksa hata verir.Ayrica dizinin içi boş olmali yoksa gene hata verecektir. Kill:Belirtilen bir dosya veya dosya gurubunu siler.Mesela RmDir ile içi dolu dizini silemezsiniz ilk önce kill “pmyo\*.*"diyerek içini boşaltırsınız.Sonra içi boş dizini RmDir ile silersiniz. ChDrive:Aktif sürücüyü değiştirir.ChDrive "D" komutu ileaktif sürücüyü D yapmış olursunuz. ChDir:Aktif dizini değiştirir.Örneğin ChDir "D:\MsOffice\Excel" Name:Belirtilen dosyanın adını ve yolunu değiştirir.Name "c:\Vb\Bordro.bas" as c:\Hb\Hesap.bas

33 VB'de İşletim Sistemi Düzeyindeki Fonksiyonlar CurDir:O anki geçerli olan sürücünün yolunu(aktif dizini)veya o anda kullanılmayan fakat daha önce kullanılmış sürücünün enson yolunu verir.String türü ifade yollar. A=Curdir(c) şeklinde kullanılır. Shell:Kullanılış şekli Değişken=Shell(Yol Adı,Pencere Stili) şeklindedir.Com,Exe,Bat uzantılı dosyaların Vb içinden çalıştırmaya yarar. Private Sub Command1_Click() x=Shell("c:\msoffice\excel\excel.exe,1) End Sub FileCopy:Kaynaktaki dosyaları alır hedefe kopyalar. FileCopy"c:\a1.bmp",c:\Vb\a1.Bmp SetAttr:Belirtilen dosyanın özelliklerini değiştirmek için kullanılır. Örneğin,SetAttr "C:\Vb\Xdat",vbHidden+vbReadOnly ifadesi ile,x.dat adlı dosya,sadece okunabilir ve gizli olarak değiştirilir. Dir:Yazılış biçimi Dir(Yol Adı) şeklindedir.Yoladında belirtilen dosyanın olup olmadığını araştırır,eğer varsa dosyanın yolunun ismini string olarak gönderir.?ve* gibi joker karakterler kullanmaya izin verir.

34 VB'de if-then-else, select-case if-then-else if koşul then KOMUTU Belirtilen koşulun olması hainde programa yaptırmak istediğimiz şeyleri yaptırmaya yardımcı koddur. kullanımı; if koşul then KOMUTLAR end if şeklindedir.Yani belirttiğimiz koşul sağlanırsa program, if ile end if arasında belirttiğimiz komutları uygulayacaktır.Eğer belirttiğimiz koşul sağlanmamışsa program direk -end if- komutunun 1 alt satırına atlayacaktır.Yani if ve end if komutları arasındaki hiç bir işlemi yapmayacaktır. Örnek: Standart.exe olarak açmış olduğunuz formunuza bir textbox (text1) ve bir commandbutton (command1) ekleyiniz.Sonra tasarım penceresindeyken command buttona çift tıklayarak açılan kod penceresine aşağıdaki kodlarıyazınız.Daha sonra F-5'e basarak programı çalıştırınız.Program sayınızın tek mi çift mi olduğunu kontrol ediyor ve ona göre mesaj veriyor. Private Sub Command1_Click() a = Text1.Text a = Val(a) If a Mod (2) = 0 Then MsgBox "girdiğiniz sayı çifttir" End If If a Mod (2) <> 0 Then MsgBox "girdiğiniz sayı tektir" End If End Sub

35 if koşul then.... else...KOMUTU If... end if 'ten tek farki vardır,koşulun sağlanmadığı durumda da programa mudahale edebilirsiniz.Örneğin belirttiğiniz koşulun olup olmadığını if ile kontrol ediyordunuz,şimdi burada da else diyerek,programa; koşulun olmadığı durumda da şunu yap diye emir veriyorsunuz.Kullanımı şu şekildedir: if koşul Then KOMUTLAR else KOMUTLAR End if Daha önce de dediğim gibi,eğer belirttiğiniz koşul varsa if'in altındaki komutlar yerine getiriliyor,eğer belirttiğiniz koşullar yoksa else nin altındaki komutlar yerine getiriliyor. Örnek: Yukarıda 2 tane if komutu kullanarak yazdığımız komutu daha kısa satırda else kullanarak yazacak olursak; Private Sub Command1_Click() a = Text1.Text a = Val(a) If a Mod (2) = 0 Then MsgBox "girdiğiniz sayı çifttir" Else MsgBox "girdiğiniz sayı tektir" End If End Sub

36 If koşul then..... ElseIf koşul then.....KOMUTU Birden fazla koşulumuzun olduğu durumlarda defalarca if kullanmaktansa if ve else if lerle durumu bağlayabiliriz.Belki programı daha az satırda yazma adına çok şey yapmış olmayız ama programı yazmada hakimiyeti kaybetmeyiz,programı takip etmek daha kolay olur... If koşul Then KOMUTLAR ElseIf Koşul1 Then KOMUTLAR ElseIf Koşul2 Then KOMUTLAR End If Örnek: şimdiki örnekte 1'den 5 e kadar olan sayıların kontrolünü yapan,girdiğiniz sayının kaç olduğunu size söyleyen ve 5 ten büyük bir sayı girmişseniz uyaran 1 program yazıyoruz.Formunuza bir textbox ve bir command buton ekleyin ve tasarım aşamasındayken command butona cift tıklayıp açılan pencerede bu kodu yazın.. Private Sub Command1_Click() a = Text1.Text a = Val(a) If a > 5 Then MsgBox "5'ten büyük sayı giremezsiniz" End If If a = 1 Then MsgBox "Girdiğiniz sayı=1" ElseIf a = 2 Then MsgBox "Girdiğiniz sayı=2" ElseIf a = 3 Then MsgBox "Girdiğiniz sayı=3" ElseIf a = 4 Then MsgBox "Girdiğiniz sayı=4" ElseIf a = 5 Then MsgBox "Girdiğiniz sayı=5" End If End Sub

37 Select.... Case Mantık olarak yukarıda anlattığımız If..ElseIf yapısının aynısıdır.Mevzu bahsi olan değişken Select Case DEGİşKEN komutuyla seçilir ve bu değişkenin birden fazla durumları Case Deger1... Case Değer2.... komutlarıyla kontrol edilir.Kullanımı; Select Case Değişken Case Değer Case Değer Case Değer3 to Değer Case Else End Select Gördüğünüz gibi 1 den fazla koşullu durumda select case yi kullandık.Case deger 3 to deger 10 yazan satır dikkatinizi çekmiştir sanırım.Değişkenin değerinin belli bir şeyden diğer şeye kadar olan durumda şunu şunu yap anlamına gelir.Dikkat edilmesi gereken diğer komut da Case Else.Bu da belirtilen tüm seçeneklerin dışında başka 1 değer olması durumunda altında belirtilen komutları uygulatır.

38 VB'de InputBox & MsgBox Kullanımı InputBox Visual Basic programının icrası esnasından klavyeden bilgi girmek amacıyla kullanılır.Buradan gelecek değer string türü bir değerdir,eğer girilecek bu değeri sayısal bir hesapta kullanmak istiyorsak Val(String) komutuyla sayısal değere çevirmeliyiz.Kullanımı Değişken=Inputbox("Başlık") şeklindedir. Örnek: Standart.exe olarak açtığınız formunuza 1 adet text.box koyun ve textbox koyduğunuz projenin üzerinde herhangi biryere çift tıklayarak (Private Sub Form_Load() ve End Sub ifadelerini otomatikman elde edebilmek için forma çift tıkladık) aşağıdaki ifadeleri yazın. Private Sub Form_Load() a = InputBox("İsminizi Giriniz...") T ext1.Text = a End Sub

39 MsgBox Visual Basic programının çalışması sırasında elde edilen bazı sonuçları ve kullanıcıyı uyaracak gerekli bazı mesajları ekrana taşımamıza yardımcı olur. Kullanımı: A=MsgBox("Mesaj",Görünüm,"başlık") şeklindedir.Görünüm ve başlık kısımları kullanılmasada olur.Bu kısımlar kullanılmazsa sadece MsgBox "mesjimiz" şeklinde kullanımımız doğru olanıdır.Görünüm kısmında tanımlayacağımız komutlarla ok,cancel,yes,no gibi kontrol butonları koyabileceğiz.Mesela bazen Kullanıcıya yapmak istermisiniz diye sorarsınız,evet mi hayır mı deyip demediğini bu gürünümün değişkene yollayacağı ifadeyle anlarız.Ama görünüm kısmına Hiçbirşey yazmazsak sadece ok butonu olacaktır mesaj kutumuzda.Görünümde; VbOkOnly,VbOkCancel,VbYesNo,VbYesNoCancel... gibi tanımlamalarla mesaj kutumuza 1den fazla buton koyabiliriz.Kullanıcının tıklayacağı buton A değişkenine Vbok,VbCancel... gibi yansiyacaktir.Daha sonra işlemlerimizi bunlara göre yapacaksak,ilerki derslerimizde göreceğimiz,if kontrolüyle bunları yönlendirebiliriz. Örnek: Standart.exe olarak açtığınız formunuza 1 adet text.box koyun ve programın tasarım aşamasındayken forma çift tıklayarak (Private Sub Form_Load() ve End Sub ifadelerini otomatikman elde edebilmek için) aşağıdaki ifadeleri yazınız. Programınızı çalıştırdığınızda direk isminizi soracak,sonra isminizi text kutusuna yazacak,text kutusunda yazılı olan isminizin doğru olup olmadığını soracak eğer eveti tıkladıysanız program ekranına geri dönecek,hayırı tıkladıysanız 1 uyarı mesajı daha gönderecektir. Private Sub Form_Load() a = InputBox("İsminizi Giriniz...") Text1.Text = a Form1.Show b = MsgBox("İsminiz Doğrumu?", vbYesNo, "Sorgu Ekranı") If b = vbNo Then MsgBox ("Yanlış Olması İmkansız") End If End Sub

40 VB'de Do... Loop Döngü Yapısı Programlama dillerinde döngüler genelde aynı işi birden fazla yaptırmak amacıyla işlemi istenilen miktarda tekrarlamak için kullanılır.Ya da belli aralıklarda birşey arattırmak için veya belli aralığa bir şeyler eklemek için aynı işlemi tekrar tekrar yapmaktan kurtulmak için. Döngüler yapı olarak ikiye ayrılır. For....Next Ve Do...Loop biz bu derste Do...Loop yapısını inceleyeceğiz.VB de Do...Loop sözcüklerini içeren dört ayrı tür mevcuttur. 1)Do While... Loop Yapısı Bu yapıda önce koşul kontrol edilir.Kontrol doğruysa programın akışı döngünün içine girer.Değilse döngüye 1 kez bile girilmeden program işleyişine devam edecektir. şunu da unutmamak gerek, döngü while koşulu sağlandığı sürece işlevine devam edecektir. Yapısı; Do While Koşul Komutlar Loop Örnek: Standart.exe olarak açtığınız bir forma bir buton yerleştirin.Butonu çift tıklayın Private Sub Command1.click ile başlayan paragrafi yazın. Sonra tekrar project penceresine geçin ve formun herhangi bir yerine çift tıklayın Private Sub Form Load ile başlayan paragrafı Yazın. Sonra F5 e basarak çalıştırın. Project penceresinden çift tıklatmamın sebebi,ilgili kısma ait private sub... end sub metinlerini vb nin otomatik yazması sebebiyledir.

41 Private Sub Command1_Click() End End Sub Private Sub Form_Load() a = MsgBox("Devam için evet,bitirmek için hayırı tıkla", vbOKCancel, "DoWhile-Loop Yapısı incelemesi") Do While a = vbOK a = MsgBox("Devam için evet,bitirmek için hayırı tıkla", vbOKCancel, "DoWhile-Loop Yapısı incelemesi") Loop End Sub 2)Do Until... Loop Bu yapıda da önce koşul kontrol edilir ancak while..loop yapısının tersine burada koşul doğru olmadığı sürece programın akışı döngünün içine girer,doğru olduğunda döngünün dışına çıkar.Yada koşul zaten doğruysa hiç döngünün içine girmez. Yapısı; Do Until Koşul Komutlar Loop

42 Örnek: Yukarıda While..Loop Yapısındaki yaptığımız programla aynı işe yarıyan programı until..loop ile yapacağız. Anlaşılması açısından daha yararlı olacağını düşündüm.Yapmanız gereken while ı silip until,vbok u silip vbcancel yapmanız. Private Sub Command1_Click() End End Sub Private Sub Form_Load() a = MsgBox("Devam için evet,bitirmek için hayırı tıkla", vbOKCancel, "DoWhile-Loop Yapısı incelemesi") Do Until a = vbCancel a = MsgBox("Devam için evet,bitirmek için hayırı tıkla", vbOKCancel, "DoWhile-Loop Yapısı incelemesi") Loop End Sub 3)Do... Loop While İşte geldik koşulun altta kontrol eildiği yapıya.Bundan sonra anlatacağım dördüncü yapıda da böyle. Koşul altta kontrol ediliyor. Tahmin edeceğiniz gibi birinci yapıda anlattığım Do While... Loop yapısından tek farkı while ın en üstte değil de en altta olmasıdır. Hal böyle olunca koşul sağlansa da sağlanmasa da döngü yukarıdan aşağıya en az bir kez akacaktır, sonra aşağıdaki while ile belirtilen koşul sağlandığında döngü yukarı çıkıp bir kez daha dönecektir,ta ki koşul sağlanmayıncaya dek.Sağlanmayınca programın akışı döngüden çıkar ve alt satırdan devam eder. Yani birinci ve ikinci yapıdan farkı,hiçbirşey olmasa bile döngü,koşul en aşağıda kontrol edildiği için en az bir kez icra eder.Yapısı; Do Komutlar Loop While Koşul

43 4)Do... Loop Until Bu da bir üstte anlattığım yapı gibi koşulu aşağıda kontrol ediyor. Yani koşul kontrol edilmesi için program döngünün içinde enaz bir kere akıyor. Sizin de tahmin ettiğiniz gibi ikinci yapıda anlattığım Do Until...Loop yapısından tek farkı az önce bahsettiğim gibi koşulun aşağıda kotrol edilmesi.Yapısı; Do Komutlar Loop Until Koşul VB'de For... Next Döngü Yapısı For..Next döngüsünde olay for ve next arasında istenilen miktarda tekrar edilerek döner.Kullanımı: For x=a to b step Y Komutlar Next x Burada sayacımız x oluyor. Bu x, a dan b ye kadar Y kadar atlayarak sayıyor. Mesela For x=1 to 10 step 1 gibi bir ifadeyle döngü 1 den 10 a kadar 10 kez donecektir. Yani yukarıdaki ifadede x=1 görecek next e kadar olan komutları yerine getirecek,x=2 görecek next e kadar olan komutları yerine getirecek, x=5 görecek next e kadar olan komutları yerine getirecek,dikkat! x=10 görecek next e kadar olan komutları yerine getirecekve döngüden çıkıp artık next in altındaki komutları yerine getirmeye başlıyacak. Eğer step 2 deseydik x 1,3,5,7,9 değerlerini olacaktı, eğer for x=0 to 10 step 2 deseydik x 0,2,4,6,8,10. Mesela 0 den 10 a kadar olan çift sayıların toplamını bu şekilde döngü içerisinde yapabiliriz. Örnek: Sıfır ile 10 arasındaki çift sayıları toplayan çok küçük bir program yazacağız. Standart.exe olarak açtığınız programa bir tane command buton koyarak çifr tıklayın. Çift tıklayınca project penceresinden command penceresine geçecektir. Bu pencerede şu kodu yazın ve F5 e basarak progamı çalıştırıp command butonunu tıklayın. içinde 30 yazan bir Mesaj kutusu elde edeceksiniz.

44 Private Sub Command1_Click() For x = 0 To 10 Step 2 a = a + x Next x MsgBox a End Sub

45 Undo : Geri al Redo : Son yapılan işlemi tekrarla Cut : Kes ( Ctrl + X ) Copy : Kopyala ( Ctrl + C ) Paste : Yapıştır ( Ctrl + V ) Paste Link : DDE uygulamalarında bir Windows uygulamasından Clipboard’a kopyalanan verileri VB uygulaması içine aktarır Delete : Silme Delete Table From Database : Veri tabanından bir tabloyu siler Select All : Tüm kod yada kontrolleri seçer ( Ctrl + A ) Select All Columns : Veri kaynağı penceresinde bulunan tüm alanları seçer Table : Tablo işlemleri yapar Set Primary Key : Seçilen bir sütun için birincil anahtar tanımlar Insert Column : Tabloya yeni bir alan ekler Delete Column : Tablodan bir alan siler Find : Belirli bir ifadeyi arar Current Procedure : Sadece aktif alt program içerisinde arar Current Module : Sadece aktif olan form veya modülde arar Current Project : Projede bulunan bütün form ve modüllerde arar Find Next : Bir sonrakini arar Replace : Bir ifadeyi arayarak başka bir ifade ile değiştirir Edit Mönüsü

46 Indent : İmlecin bulunduğu satırı bir tab sağa kaydırır Outdent : İmlecin bulunduğu satırı bir tab sola kaydırır Insert File : Koda imlecin bulunduğu noktadan itibaren başka bir dosyadan alınan kodu ekler List Properties/Methods : Kod penceresine yazılan ifadeden sonra yazılabilecek diğer ifadeleri gösterir List Constants : İfadenin alabileceği sabit değerleri gösterir Quick Info : Fonksiyon, metot, prosedür ve değişkenlerin yazılışını gösterir Parameter Info : Fonksiyon veya ifadelerin içerdikleri parametreleri gösterir Complete Word : Yazılan ifadenin otomatik olarak tamamlanmasını sağlar Bookmarks : Sık kullanılan satırlara kolay bir erişim sağlar Toggle Bookmark : Ulaşılmak istenen satırı işaretler veya işareti iptal eder Next Bookmark : Bir sonraki işaretlenmiş kod satırına gider Previous Bookmark : Bir önceki işaretlenmiş kod satırına gider Clear All Bookmarks : Aktif penceredeki tüm işaretlemeleri iptal eder

47 Code : Kod penceresini gösterir Object : Kod ortamında adı geçen kontrolü form üzerinde gösterir Definition : Değişkenin nerede tanımlandığını gösterir Last Position : Kod penceresindeki bulunulan son noktaya geri gider Object Browser : Nesne tarayıcı penceresini açar ( F2 ) Debug : Projeyi satır satır çalıştırır ve değişkenlerin değerlerini gösterir Immediate Window : Hata ayıklama penceresi.Debug modda değişken üzerinde işlem yapılmasını sağlar Local Window : Debug modda kontrollere ait değerlerin izlemesini sağlar Watch Window : Debug modda Debug - Add Watch menüleri ile eklenen değişkenlerin değişiminin izlemesini sağlar Call Stack : Aktif olan prosedür çağrılarının listesini gönderir Project Explorer : Projedeki dosyaları görüntüler ( Ctrl + R ) Project Window : Properties penceresini görüntüler Form Layout Window : Layout peceresini görüntüler Property Pages : Özellikleri topluca değiştirme imkanı verir ( F4 ) Table : Diyagram pencerelerini görünür kılar. Query, View ve veritabanı tasarım pencerelerinde kullanılır Show Panes : Query ve View tasarım pencerelerindeki kısımları görüntüler Zoom : Diyagram penceresini belirtilen oranlarda görüntüler Toolbox : Toolbox penceresini görüntüler Color Palet : Renk penceresini görüntüler Data View Window : Data view penceresini görüntüler Toolbars : Araç çubuklarını gösterilip gizler View Mönüsü

48 Add Form : Projeye form eklenir Add MDI Form : Projeye MDI form eklenir Add Module : Projeye Module eklenir Add Class Module : Projeye Class Module eklenir Add User Control : Projeye kullanıcı kontrolü eklenir Add Property Page : Oluşturlan ActiveX için Property Page eklenir Add User Document : ActiveX dökümanı eklenir Add DHTML Page : Dinamik HTML uygulamalarına dinamik HTML sayfası eklenir Add Data Report : Veritabanı uygulamalarına Data Report eklenir Add WebClass : Int. Information Server uygulamalarına WebClass nesnesi eklenir Add Microsoft UserConneciton : UserConneciton nesnesi eklenir More ActiveX Designers : Kullanılabilecek ActiveX tasarımlarını listeler Add File : Hazır modül, form, sınıf modülleri dosyalar gibi bileşenleri eklenir Remove : Seçili olan dosyayı projeden çıkarır References : Nesne kütüphanelerinden nesneler eklenir Components : ToolBox’a yeni kontroller eklenir ( Ctrl + T ) Project Properties : Proje ile ilgili özellikler ayarlanır Project Mönüsü

49 Align : Form üzerindeki kontrolleri aynı hizaya getirir Lefts : Kontrollerin sol taraflarını hizalar Centers : Kontrollerin merkez noktalarını hizalar Rights : Kontrollerin sağ taraflarını hizala Tops : Kontrollerin üst taraflarını hizalar Middles : Kontrollerin üst üste getirerek orta kısımlarını hizalar Bottoms : Kontrollerin alt taraflarını hizalar To Grid : Kontrollerin form üzerinde noktalarla göre hizalanır Make Same Size : Form üzerindeki kontrolleri aynı boyuta getirir Width/Height : Kontrolleri aynı genişliğe / yüksekliğe ayarlar Both : Kontrolleri aynı yükseklik ve genişliğe ayarlar Size to Grid : Kontrollerin köşe ve kenar çizgilerini gridlerle çakıştırır Horizontal Spacing : Kontrollerin arasındaki yatay boşluğu ayarlar Make equal : Kontrollerin arasındaki yatay boşlukları eşitler Increase/Decrease : Kontrollerin arasındaki yatay boşlukları artırır/azaltır Remove : Kontrollerin arasındaki yatay boşlukları tamamen kaldırır Vertical Spacing : Kontrollerin arasındaki dikey boşluğu ayarlar Make Equal : Kontrollerin arasındaki dikey boşlukları eşitler Increase/ Decrease : Kontrollerin arasındaki dikey boşlukları artırır/azaltır Remove : Kontrollerin arasındaki dikey boşlukları tamamen kaldırır Center In Form : Form üzerindeki kontrolleri formun ortasına koyar Order : Form üzerindeki kontroller üst üste ise sıralarını değiştirir Bring to Front : Alttaki kontrollü üste alır Send to Back : Üstteki kontrollü alta alır Lock Controls : Kontrollerin form üzerindeki yerlerini sabitler Format Mönüsü

50 Step Into : Programı adım adım çalıştır ( F8 ) Step Over : Prosedür çağrıları halinde adım adım çalıştırılır Run To Cursor : Programı yeniden başlatarak imlecin olduğu kısma kadar işletir Add Watch : Program çalışırken izlenecek değişkenler eklenir Watch Expression : İfadenin değerini gösterir Break When Value True : Değişkenin değeri sıfırdan farklı ise program durur Breake When Value Changes : Değişkenin değeri değiştiğinde program durur Edit Watch : Add Watch ile eklenen değişkenleri siler veya değiştirir Quick Watch : Seçilen değişkenin veya işlemin o andaki değerini gösterir Toggle Breakpoint : Programın BreakPoint bulunan koda kadar çalıştırır Clear All Breakpoints : Tüm durdurma noktalarını siler Set Next Statement : Durdurulma noktasından sonra çalıştırılabilir ilk komutu seçer Show Next Statement : Durdurulma noktasından sonra çalıştırılacak ilk komutu gösterir Debug Mönüsü

51 Run Mönüsü Start : Programı çalıştırır ( F5 ) Start With Full Compile : Projenin tamamını kontrol ettikten sonra çalıştırır Break : Çalışmakta olan programı geçici olarak durdurur (Ctrl + Break) End : Çalışan bir programın çalışmasını sona erdirir ReStart : Geçici olarak durdurulmuş programın çalışmasını baştan başlatır Tools Mönüsü Add Procudure : Projeye; fonlsiyon, alt program, olay ve özellik eklenir Menü Editor : Mönü tasarımı yapılır ( Ctrl + E ) Options : Çalışılan pencerelerle ilgili özellikler değiştirilir Auto Syntax Check : Kodları yazılışını otomatik olarak kontrol eder Require Variable Declaration : Değişkenleri tanımlama mecburiyeti getirir Auto List Members : Kodlamada kontrol özelliklerini otomatik olarak tamamlar Auto Quick Info : Fonksiyon parametrelerini otomatik olarak tamamlar Auto Data Tips : Debug moda bir değişkenin üzerinde mouse ile durulduğunda değişkenin değerini gösterir Editor Format : Kod penceresinin renk ve font özellikleri ayarlanır

52 Add-Ins Mönüsü Add-In Manager : Yardımcı uygulama ekleme penceresi Load On StartUp : Visual Basic çalıştırıldığında yardımcı programı otomatik olarak yükler Değişkenlere İsim Verme Kuralları Uzunluk 255 karaktere kadardır İlk karakter bir harf olmalıdır Sonraki karakterler, harf, rakam ya da alt çizgi (_) sembolü olabilir Harflerin büyük yada küçük harf olmasının önemi yoktur İçerisinde +, -, boşluk, /, … gibi karakterler bulunmamalıdır Akılda kalabilecek anlamlı isimler olmadır

53 Değişkenlerin Tanımlanması Tools > Options > Editor > Require Variable Declaration seçeneği seçili değil ise Visual Basic içerisinde tanımlanmayan değişkenler Variant tip olarak kullanılır. Seçili ise tüm değişkenlerin deklare edilmesi zorunluluğu getirilmiş olur. Ayrıca Form yada Modülün (General)(Declaration) kısmına Option Explicit yazıldığında tanımlanmamış değişkenler kabul edilmeyecektir. Variant tip değişkenler gereksiz hafıza kullanımına neden olur. Form (General)(Declaration) bölümünde tanımlanan değişkenler o forma ait alt yordamlarda, modül (General)(Declaration) bölümünde tanımlanan değişkenler ise o modüle ait alt yordamlarda kullanılır. Form, Module ya da Class bünyesinde değişken ve tip tanımlamaların bulunduğu kısım 64 KB'tan uzun olamaz. Dim ile değişken tanımlama : Bir form yada bir yordam içerisinde kullanılacak değişkenlerin tanımlanmasında kullanılır. Dim Ad As String * 12 ‘ Ad değişkeni String olarak saklanır 12 karakterlik yer ayrılır Dim Yas As Integer ‘ Yas değişkeni Integer olarak saklanır Dim İlk ‘ İlk değişkeni Variant olarak saklanır Dim İlk As String, Son As String Dim İlk, Son, Orta As String ‘ İlk, Son değişkeni Variant Orta değişkeni String Dim ButonYeni As CommandButton ‘ Yeni bir denetim tanımlamak

54 Global ile değişken tanımlama : Modül düzeyinde tanımlama. Projenin tamamında kullanılabilir. Global Sehir As String Global Nufus As Double Private ile değişken tanımlama : Form ve modül düzeyinde tanımlama. Tanımlı olduğu form ya da modül içerisinde kullanılabilir. Private Sehir As String Public ile değişken tanımlama : Modül düzeyinde tanımlama. Public Sehir As String Static değişken tanımlama : Alt yordamlar içerisinde deklare edilen yerel değişkenlerin; almış oldukları değerlerin alt yordamın tekrar çağrılmasında korunmasını sağlamak için kullanılır. Bir yordam Static olarak tanımlanırsa içerisindeki tüm değişkenler Static olur. Static GecenOgrenciSayısı As Integer Static Function Toplam ( AA As Integer, BB As Integer )

55 Dizi değişken tanımlama : Bir bilgi birden fazla değer taşıyorsa bu bilginin tanımlanmasında kullanılır. Dizi değişkenlerin 0 ‘dan değil 1 ‘den başlamasını isteniyorsa (General)(Declaration) kısmına Option Base 1 yazıldığında değişkenler 1’ den başlayacaktır. Diziler alt yordamlarda argüman olarak kullanılabilir.ü Dim Oda_No( ) As Integer ‘ Dinamik dizi Dim Oda_No(255) As Integer ‘ Statik dizi 256 Integer içerir Dim Oda(100) As String ‘ 0 ile 100 arasında sınırlı Dim Not(25 To 50) As Integer ‘ 25 ile 50 arasında sınırlı Çok boyutlu dizi değişkenlerin tanımlanması Dim Boyut(1 To 2, 1 To 3) Dizi elemanları Boyut(1,1) Boyut(1,2) Boyut(1,3) Boyut(2,1) Boyut(2,2) Boyut(2,3)

56 ReDim ile dizilerin boyutunu değiştirme : Dinamik bir dizinin boyutunu belirler. Alt yordam içerisinde kullanılır. ReDim ile dinamik olarak açılan dizilerin isleri bitince Erase komutu ile silinmesi kullanılan belleği azaltır. Preserve deyimi ile yeni boyutlandırma yapılırken eski bilgiler saklanır. Bu şekilde boyut değiştirmede dizinin sadece son boyutu değiştirilebilir. Dim Arrayy() ‘ Dinamik bir dizi ReDim Arrayy(120,120) ‘ Dizi yeniden boyutlandırılıyor ReDim Arrayy(12,12) ‘ Dizinin boyutu küçültülüyor ReDim Preserve Arrayy(12,14) ‘ Önceki değerler saklanarak dizi boyutu artırılıyor Erase ile dizilerin silinmesi : Bir veya daha fazla diziyi siler. Dinamik dizilerde ayrılan hafıza serbest kalırken statik dizilerde alan saklanır. Erase Arrayy () ‘ Dizi ve bilgilerini siler

57 Def ile değişken tanımlama : Değişken adının ilk karakterine göre tanımlama yapılmasını bir harf yada harf aralığı belirterek sağlar. Form ve modüllerin (General)(Declaration) kısmında kullanılır. DefStr String DefInt Integer DefLng Long DefSgn Single DefDbl Double DefCur Currency DefVar Variant DefBool Boolean DefByte Byte DefDate Date DefObj Object DefStr A ‘ A ile başlayan değişkenler String DefInt M-R ‘ M - R aralığındaki harfler ile başlayan değişkenler Integer

58 Const : Bunlar program içinde değeri değiştirilemeyen sabitlerdir. Visual Basic içinde tanımlanmış sabitleri mönüden Add-Ins > Add_Ins Manager ile API Viewer çalıştırılarak WIN32API.TXT dosyasından okunabilir. Const SbtVar = 3326 Public Const SbtString = "Merhaba" Private Const SbtInt As Integer = 2 Declare ile API fonksiyonlarını tanımlamak : DLL ‘ler içerisinde bulunan API fonksiyonları program içerisinde kullanılmadan önce declare ile (General)(Declaration) kısmında tanımlanırlar. Declare Sub GetSystemInfo Lib “Kernel32” (lpSystemInfo As SYSTEM_INFO) Declare Function GetMenu Lib “User32” (ByVal hnwd As Long) As Long

59 Enum... End Enum : Enumerated tip yani numaralandırılmış birkaç değer alabilen veri tiplerinin tanımlandırılmasında kullanılır. Properties penceresi içerisinde listelenir. Enum Hiza ‘ Numaralanmış hiza tanımlaması [Sola Dayalı] ‘ 0 değeri [Ortada] ‘ 1 değeri [Sağa Dayalı] ‘ 2 değeri End Enum Set ile bir nesne değişkenine değer atamak : Bir kontrolü değişkene atayarak kontrol üzerinde işlem yapılabilmesini sağlar. Set TKutu = Text1 TKutu.Text = “Deneme” Nümerik değişkenler ilk kullanıldıklarında sıfır değeri alır Variant değişkenler ilk oluşturulduklarında boştur Single değişkenler 7 hane duyarlıdır sonrası yuvarlatılır Variant değişken değişkenler içerisinde en yavaş olanıdır Döngü sayaçları için Long ya da Variant yerine integer kullanmak programı hızlandır Integer bir değişkene kesirli sayılar tam sayıya dönüştürülerek atanır Tarih bilgileri “#” arasında verilir

60 Türler Arası Dönüşüm CStr : Matemetiksel değişkeni String değişkene dönüştürür Sonuc = CStr( ) ‘ Sonuc = " " CInt : Matemetiksel değişkeni yuvarlayarak Integer değişkene dönüştürür Sonuc = CInt(5,5) ‘ Sonuc = 6 CLng : Matemetiksel değişkeni Long değişkene dönüştürür Sonuc = CLng(35327,35) ‘ Sonuc = CCur : Matemetiksel değişkeni Currency değişkene dönüştürür Sonuc = CCur(2096,529176) ‘ Sonuc = 2096,5292 CSng : Matemetiksel değişkeni Single değişkene dönüştürür Sonuc = CSng( ) ‘ Sonuc =

61 CDbl : Matemetiksel değişkeni Double değişkene dönüştürür Sonuc = CDbl(12,345) ‘ Sonuc = Sonuc = CDbl(12345) ‘ Sonuc = CVar : Matemetiksel değişkeni Variant değişkene dönüştürür Sonuc = Cvar(223 & “000”) ‘ Sonuc = CBool : Matemetiksel değişkeni Boolean değişkene dönüştürür Sonuc = CBool(12 < 5) ‘ Sonuc = False CByte : Matemetiksel değişkeni Byte değişkene dönüştürür Sonuc = CByte(12 > 7) ‘ Sonuc = 1 CDate : Matemetiksel değişkeni Date değişkene dönüştürür Sonuc = CDate(1) ‘ Sonuc = 12/31/1899 Sonuc = CDate(2) ‘ Sonuc = 1/1/1900 CDec : Matemetiksel değişkeni Decimal değişkene dönüştürür

62 Fonksiyonlar InStr : Bir String ‘in diğeri içerisinde ilk nerde bulunduğunu kontrol eder AdSoyad = “Murat Ustaoğlu” Sonuc = InStr(1, AdSoyad, “r”) ‘ Sonuc = 3 Sonuc = InStr(4, AdSoyad, “r”) ‘ 4. karakterden itibaren arar. Sonuc = 0 Sonuc = InStr(8, AdSoyad, “u”) ‘ 8. karakterden itibaren arar. Sonuc = 14 Left : String ‘in soldaki belli sayıdaki karakteri ile yeni bir String oluşturur Sonuc = Left(AdSoyad, 5) ‘ Sonuc = “Murat” Mid : String ‘in ortasındaki karakterlerden yeni bir String yaratır Sonuc = Mid(AdSoyad, 3, 6) ‘ Sonuc = “rat Us” Right : String ‘in sağındaki belli sayıdaki karakteri ile yeni bir String oluşturur Sonuc = Right(AdSoyad, 8) ‘ Sonuc = “Ustaoğlu” Trim : String ‘in sağındaki ve solundaki boşlukları atarak yeni bir String oluşturur Soyad = “ usta “ Sonuc = Trim(Soyad) ‘ Sonuc = “usta”

63 LTrim : String ‘in soldaki boşlukları atarak yeni bir String oluşturur Sonuc = LTrim(Soyad) ‘ Sonuc = “usta “ RTrim : String ‘in sağında boşlukları atarak yeni bir String oluşturur Sonuc = RTrim(Soyad) ‘ Sonuc = “ usta” LCase : String ‘in bütün karakterlerini küçük harf yapar Sonuc = LCase(AdSoyad) ‘ Sonuc = “murat ustaoğlu” UCase : String ‘in bütün karakterlerini büyük harf yapar Sonuc = UCase(AdSoyad) ‘ Sonuc = “MURAT USTAOĞLU” Len : Stringdeki karakter sayısını bulur Soyad=“usta” Sonuc = Len(soyad) ‘ Sonuc = 4

64 Asc : Stringin ilk karakterinin ascii kodunu bulur Sonuc = Asc(“A”) ‘ Sonuc “65” Sonuc = Asc(“aranan”) ‘ Sonuc “97” Sonuc = Asc(“a”) ‘ Sonuc “97” Chr : 0 – 255 arası tam sayıyı o sayıya karşılık gelen Ascii karaktere dönüştürür Sonuc = Chr(65) ‘ Sonuc “A” Str : String‘e dönüştürme Sonuc = Str( ) ‘ Sonuc = “ ” Space : İstenen miktarda boşluk karakteri atar AdSoyad = "Murat" AdSoyad = AdSoyad + Space(10) AdSoyad = AdSoyad + "Ustaoğlu" ‘ AdSoyad = “Murat Ustaoğlu”

65 StrComp : Variant yada String iki değişkeni karşılaştırır AD0 = “Murat Ustaoğlu” AD1= “murat ustaoğlu” Sonuc = StrComp(AD0, AD1, VbTextCompare) ‘ Sonuc = 0 SabitAçıklama VbTextCompareText karşılaştırma VbBinaryCompareBinary Karşılaştırma VbDataBaseCompareDatabase ‘den karşılaştırma StrCompGeri Dönen Değer string1 string2 ‘den küçükse string1 string2 ‘ye eşitse0 string1 string2 ‘den büyükse1 string1 yada string2 boş iseNull

66 StrConv : String değişkenlerde dönüşüm yapar Ad =“ Murat” Sonuc = StrConv(ad, 1) ‘ Sonuc = “MURAT” SabitDeğerAçıklama VbUpperCase1Büyük harfe dönüşür VbLowerCase2Küçük harfe dönüşür VbProperCase3Bütün kelimelerin ilk harfi büyük harfe dönüşür VbUniCode64Varsayılan kod sayfasından UniCode dönüşür VbFromCode128UniCode ’den varsayılan kod sayfasına dönüşür

67 Hata denetimini ve araçlarını açıklamak. I. Hata Denetimi Hata denetimi (troubleshooting) programda oluşan çalışma zamanı ve diğer kodlama hatalarının tanımlanması (teşhis) ve giderilmesi için yapılan çalışmalardır. Visual Basic, programların yazılması (derlenmesi ve çalıştırılması) sırasında karşılaşılan hatalara karşı geliştirilmiş bir hata bulma ve düzeltme (debugging) olanağına sahiptir. Programın çalıştırılması sırasında kendisinden kaynaklanan bir hata varsa, hata bildirilir. Bunun dışında çalışma zamanı hataları ise, programın çalışması sırasında beklenmeyen bir durum sonucu oluşur. Örneğin okunacak dosyanın olmaması gibi. Bu durumda program hata verir. İşte bu durumlara karşı alınan önlemlere hata denetimi denir.

68 A. Çalışma Zamanı Hatalarının Kontrolü Çalışma zamanı hataları (run-time errors) programın çalışması sırasında oluşan hatalardır. Program hazırlanmış ve kullanıcıya sunulmuştur. Çalışma zamanı (run-time) hatalarına karşı herhangi bir önlem alınmazsa program hata verir ve kesilir. Diğer bir açıdan; bu durum kullanıcılar karşısında düşülebilecek en kötü durumlardan birisidir. Bu nedenle çalışma zamanı hatalarına karşı belli önlemler daha önceden alınmalıdır. Bu hatalar arasında hata kodu döndürürler. Bu hata kodları On Error deyimi ve Err nesnesi ile birlikte ele alınarak hataların değerlendirilmesi ve programın uygun biçimde yönlendirilmesi sağlanır.

69 Tablo: Kontrol edilebilir bazı hatalarKODMESAJ 3 Return without GoSub (GoSub'sız Return) 5 Invalid procedure call (geçersiz procedure çağırması) 6 Overflow (taşma) 7 Out of memory (bellek yetersiz) 9 Subscript out of range (dizi dışı) 10 This array is fixed or temporarily locked (dizi sabit ya da kilitli) 11 Division by zero (sıfıra bölme) 13 Type mismatch (tip uyumsuzluğu) 14 Out of string space (string alanı yetersiz) 16 Expression too complex (ifade çok karışık) 58 File already exists (dosya zaten var) 67 Too many files (çok fazla dosya) 68 Device unavailable (aygıt kullanılamaz durumda) 71 Disk not ready (disk hazır değil) 92 For loop not initialized (döngü başlatılmamış)

70 B. On Error Deyimi Hata oluşumunda; mesaj vermek ve programın kontrolünü sağlamak için belli bir program parçasının işletilmesini sağlanabilir. Bu işlem için hata kontrolüyle ilgili olarak bir program bloğunun yazılmasını sağlanır. Yapısı: On Error GoTo satır On Error Resume Next On Error GoTo 0 ParametreAçıklama Go To 0Procedure'daki hata kontrolünü iptal eder. GoTo satır / etiket Hata kontrolü satırının belirtilen satırdan ya da etiketten başlatılmasını sağlar. Resume Next Hatanın ardından programın bir sonraki deyimi işleyerek programı çalıştırmayı sürdürmesini sağlar. Eğer programcı, programında bir On Error deyimi kullanmaz ve olası hataları kontrol altına almazsa; hata oluştuğunda program çalışma zamanı içinde hatayı verir ve kesilir. Program içinde bir hata denetimi yapılırsa; hata oluştuğu anda program kontrolü, hata kontrolü kısmına atlar. Hata denetimi; Resume, Exit Sub ya da Exit komutuna kadar aktif kalır. Hata denetiminin ardından hatanın tanımlanması için Err nesnesinin Number özelliği kullanılır.

71 Örnek : Sıfıra bölünme hatalarına karşı tuzak Aşağıdaki örnekte OnError ile 11 (Division by Zero) hatası kontrol edilmektedir: Sub command1_Click () On Error GoTo HataKontrol A = 5 B = 0 Sunuc = A / B Exit Sub 'burada programa son verilir. HataKontrol: Select Case Err.Number Case 11: Mesaj = "Sıfıra bölünme hatası oluştu!!!" End Select MsgBox Mesaj Resume Next End Sub

72 II. Hata Düzeltme Araçları Bir Visual Basic programı geliştirirken ya da programın çalışması sırasında bir hata ile kesilmesinden sonra hatanın bulunması ve giderilmesi için belli araçlar kullanılır. Bunların başında Debug (Hata Giderme) araç çubuğu gelir: Debug araç çubuğunun kullanılması için programın kesilmesi gerekir. Kesme (break) işlemi hata sonucunda ya da manuel olarak da yapılabilir Şekil: Break düğmesi Programın kesilmesi ya da Break düğmesine tıklanarak program debug moda alınır. İşte bu durumda programcı Visual Basic hata giderme araçlarını kullanır. Şekil: Debug araç çubuğu

73 A. Kesme Noktası (Toggle Breakpoint) Programın bir yerine gelip durmasını istiyorsunuz. Ve o aşamada değerleri kontrol edeceksiniz. İşte bu olanağı size kesme noktası sağlar. Kod içinde kesme noktası ile işaretlenen satır işletilmeden önce program durur. Kesme noktası genellikle programı belli bir yerde durdurup o aşamada bazı değişkenlerin değerlerinin kontrol edilmesini sağlar. Bu işlem için araç çubuğundaki Toogle BreakPoint düğmesi kullanılır. Tekran tıklanarak kesme noktası kaldırılır. B. Bilgi Pencereleri (Locals Window, Immediate Window ve Watch Window) Program kesildikten sonra; Procedure içinde bir değişkenin ya da bir ifadenin seçilerek değerinin ne olduğuna bakılmak istenirse o zaman anlık izleme penceresi (instant watch) kullanılır.

74 Locals Window Program kesildiğinde bulunulan procedure içinde tanımlanan bütün değişkenlerin değerini verir: Expression sütünunda değişkenlerin adları listelenir. Bütün class modüllerinde buradaki ilk değer değeridir. Bu değerin üzerine tıklanarak genişletilir. Value sütünunda ise değişkenin değeri görünür. Bu değerin üzerinde çift tıklanarak değişiklik yapılabilir. Immediate Window Program kesildikten sonra; procedure içinde bir değişkenin ya da bir ifadenin seçilerek değerinin ne olduğuna bakılmak istenirse o zaman anlık izleme penceresi kullanılır. Anlık izleme penceresinde değişkenlerin ya da ifadelerin değerlerini göstermek için (Print) deyimi ya da ? kullanılır. Ayrıca istenirse kod satırından Immediate Window ekranına sürükleme yapılır.

75 Alt Yordamlar Belirli bir görevi yada olayı yerine getirmek amacı ile yazılan küçük kod grubudur. Public Sub İsim ‘ Başlangıç satırı.... ‘ Olay sonucu yapılacak işlem End Sub ‘ Bitiş satırı Public Sub Topla(X, Y) Deger = X + Y MsgBox deger Exit Sub ‘ Tercihli çıkış End Sub Private Sub Form_Click() Deger1 = 100 Deger2 = 25 Topla Deger1, Deger2 ‘ Alt yordam için 1. çağrı yöntemi ‘ Call Topla(Deger1,Deger2) ‘ Alt yordam için 2. çağrı yöntemi End Sub

76 Function – Fonksiyon Belli işlemleri yerine getirip işlem sonucuna bağlı olarak değer üreten kod parçasıdır. Public Function Deger(X, Y) If X > 0 Then Deger = X + Y Else Exit Function ‘ Tercihli çıkış End If Deger = Sqr(Deger) ‘ Fonksiyon sonucu End Function Private Sub Form_Load() Dim D1 As Long, D2 As Long D1 = InputBox(" D1 ? ") D2 = InputBox(" D2 ? ") Deger = Topla(D1, D2) ‘ Fonkisyon çağrılıyor MsgBox Deger End Sub

77 1) Referans ile fonksiyon çağırmak : Fonksiyon içerisinde değeri değişen değişkenin bu değeri saklamasını sağlar. Sub Bip(BipSayisi As Integer) Do While BipSayisi > 0 Beep BipSayisi = BipSayisi - 1 Loop End Sub Dim KacDefaBip As Integer KacDefaBip = 5 Bip KacDefaBip MsgBox KacDefaBip & "Defa Bip Sesi " ‘ Mesaj : 0 Defa Bip Sesi 2) Değer ile fonksiyon çağırmak : Fonksiyon içerisinde değeri değişen değişkenin; fonksiyon çağrılmadan önceki değerini almasını sağlar. Sub Bip(ByVal BipSayisi As Integer) Do While BipSayisi > 0 Beep BipSayisi = BipSayisi - 1 Loop End Sub MsgBox KacDefaBip & "Defa Bip Sesi" ‘ Mesaj : 5 Defa Bip Sesi


"Menu Bar : VB program mönüsü Tool Bar : Mönü kısayol tuşları Project Explorer : Projede yer alan form, module gibi elemanları listeler Properties Window." indir ppt

Benzer bir sunumlar


Google Reklamları