B'de Tool Box
Aşağıda tanıtacağım tool(alet) lar Visual Basic'in solunda bulunan ToolBox'in üzerindeki elemanlardır.Bunlardan kısaca bahsettim ama herzaman dediğim gibi en iyi öğrenme yolu deneme-yanılmadır.Teker teker deneyin inceleyin. Kolay Gelsin...
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.
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.
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.
Visual Basic' te Formlar
Bu yazıda Visual Basic'in olmazsa olmazı olan ve her programda mutlaka bir tane olması gereken formlar ve bu formların özellikleri üzerinde duracağız.
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ği

MDI form örneği
Şimdi sıra geldi formların özelliklerine. Bu özellikleri sırasıyla ele alalım.
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.

Icon : Formda kullanılacak iconu belirtir. Bu icon programınıza ait bir kısayol oluşturduğunuzda gözükecek icondur aynı zamanda.

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.
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şla¤¤¤¤¤ yazdırılır.
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ılabir 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. Bir sonraki yazımızda formlara uygulanabilecek olayları inceleyeceğiz.
Visual Basic 'de formlara uygulanabilecekler
Bu yazımızda sizlerle birlikte Visual Basic 'de formlara uygulanabilecek olayları inceleyeceğiz. 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.
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.
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
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.
Shift
Parametresinin Değeri Açıklama
0
Shift ,Ctrl ,Alt tuşlarından herhangi birisi basılı durumda değil.
1
Shift tuşu basılı durumda.
2
Ctrl tuşu basılı durumda.
3
Shift ve Ctrl tuşları basılı durumda.
4
Alt tuşu basılı durumda.
5
Shift ve Alt tuşları basılı durumda.
6
Ctrl ve Alt tuşları basılı durumda.
7
Shift ,Ctrl ve Alt tuşları basılı durumda. 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. Yukarıdaki tabloda Shift parametresi için gösterilen değerler bu olayda da geçerlidir.
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
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
VB'de Veri Yapıları ve Tanımlama
Programlamanın temelini oluşturacak bu konuyu anlamadan geçmemeliyiz. Degişkenler bizim elimiz ayağımız olcacak.O yüzden dikkat!!
1-)Sabitler(Constants)
Programın içinde değeri değişmeyen sabitlerdir.VB'de hazır bu tip değilşkenler olduğu gibi programı yazarken kendi ellerimizle de tanımlayabiliriz.
<>02021013 seklindeki bir sabit bir tamsayı sabittir."MUTASYON" ş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 bilgisa¤¤¤¤¤ 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.Hemen aklınıza "o baştaki private ne oluyor?"diye soru gelecektir hemen cevaplıyay&yım Private ifadesini silin programın gene de çalıştığını göreceksiniz,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 işe yaramaz, hata verir.Ya da hiç birini kullanmayın,simdi ayrıntıyla anlatırsam işin başında kafalar karışır.
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 dikkat!!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="Emre KUTLU"
Tel="1112222222"
Dogum=#Oct,25,1983#
End Sub string:
Matematiksel işlemlere sokulamayan veri tipidir.Iki string ifade arasındaki + isareti bu stringleri birleştir anl¤¤¤¤¤ 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,477.5808 ile 922,337,203,685,477.5807 arasındadır.
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 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 -3.402823E38 ile –1.401298E-45 ,pozitif sayılar için alabileceği aralık 1.401298E-45 ile 3.402823E38 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 4.94065645841247E-324 ile 1.797693134862232E308 , negatif sayılar için de -1.797693134862232E308 ile -4.94065645841247E-324 arasındadır..
Örnek:
Private Sub Form_Load()
DefDbl A-K
Dari=50000
Bugday=600000
Arpa=340.56
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.
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 ohalde çalıştırdıysanız hata verecektir.
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ımla¤¤¤¤¤ 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.