DEĞİŞKEN TANIMLAMAK VE KULLANMAK
Değişken tanımlamak, bellekte geçici olarak bilgi saklayabilmek için yer ayırmak veya rezervasyon yapmak olduğunu biliyorsunuz. Visual Basic’de değişken tanımlamak Quick Basic’den biraz farklıdır.Çünkü Visual Basic’de projelerin Form ve Module adında iki ayrı bileşeni vardır. Bu bileşenlerin ayrıca kendi alt bileşenleri vardır. Dolayısıyla değişkenlerin ilk olarak nerede tanımlana
cağının bilinmesi gerekir.Visual Basic dahilinde oluşturulan projelere Form, BAS uzantılı Module ve OCX uzantılı özel kontrol dosyaları dahil edilmekteydi. OCX dosyaları Visual Basic ile program yazımı sırasında hazırlanmadığı için değişken tanımlama yeri konusunun dışında kalmaktadır. Buna göre değişkenler ya formlarda ya da BAS uzantılı modüllerde tanımlanır.
4.1. Formlarda ve Modüllerde değişkenler nerede tanımlanır
Bildiğiniz gibi formlara dahil edilen her nesne için çok
sayıda yordam Visual Basic tarafından otomatik olarak hazırlanmaktadır.
Başlangıçta formlarda ve formlara yerleştirilen yordamlarda işletilebilir
herhangi bir program satırı yoktur. Forma ait bütün bağımsız yordamlarda
kullanılmak istenen değişkenler, forma ait kod penceresinin Object (Nesne) liste kutusunda general ve procedure liste
kutusunda ise declaration seçeneği seçili durumda iken tanımlanır. Şekil 4.1'de
verilen ekran görüntüsünde Form1’e ait declaration kısmında “ad” ve “no“ adında
iki değişken tanımlanmıştır.
Şekil 4.1: Değişken tanımlama
Form1 adlı form için tanımlanan “ad” ve “no” adlı bu iki değişken, forma ait bütün yordamlarda kullanılabilir. Buna karşın forma ait herhangi bir yordamda tanımlanan değişken, sadece o yordam için kullanılabilir. O yordamdan başka bir yordama geçildiğinde bellekten silinir ve değişkenin içeriği kaybolur.
ÖRNEK: Yapacağımız örnekte formun her
yerinde kullanılmak üzere tanımlanan “ad” ve “no” değişkenlerine Form_Load
yordamında bilgi aktaracağız, ardından Form_Click yordamında ise aynı değişkenin
içeriğini ekrana yazacağız.
Şekil 4.2
Bunun için Form1 adlı form üzerine bir tane Command
Button nesnesi yerleştirdim ve sonra Şekil 4.2'deki ekran görüntüsünde görülen
program satırlarını yazdım. Programı çalıştırdığımda Şekil 4.3a'daki ekran
görüntüsünü, command1 butonunu mouse ile tıkladığımda ise Şekil 4.3b'deki ekran
görüntüsünü aldım.
Şekil 4.3a Şekil 4.3b
Değişkenler formlara ait yordam ve declaration penceresinde tanımlandığı gibi BAS uzantılı modüllerde de tanımlanıp kullanılabilir. Projeye modül dosyası eklemek için Project menüsündeki Add Module komutundan yararlanılmaktadır. Kod girişi yapılan bu modüller formlara ait kod penceresinden farklı olarak p
rocedure liste kutusunda önceden tanımlı herhangi bir yordam veya olay yoktur. Ancak Tools menüsündeki Add procedure komutundan yararlanarak yordam ekleyebilirsiniz. Bu konu daha sonra anlatılacaktır.Modüllerde de formlarda olduğu gibi tanımlamak istediğiniz değişkenin yalnızca bir yordamda geçerli olmasını istiyorsanız, ilgili yordamın içinde tanımlamalısınız. Eğer tanımlamak istediğiniz değişken veya değişkenlerin modüle dahil edilen bütün yordamlarda geçerli olmasını istiyorsanız, söz konusu değişken
leri modüle ait kod penceresinin Object (Nesne) liste kutusunda general ve proc (procedure) liste kutusunda declaration seçeneği seçili durumda iken yazmalısınız. Visual Basic’de dosyalara yazılacak bilgileri belirlemek
için Type-End Type deyimleri ile kayıt tipi değişkenler tanımlanmaktadır. Kayıt
tipli değişkenlerin mutlaka modül penceresinde procedure liste kutusunda
declaration seçeneği seçili durumda iken tanımlanması yapılmalıdır.
Hatırlarsanız dosyalara, kayıt yapma ve kayıt okuma gibi işlemleri yapmak üzere hazırladığımız projelere, içinde yalnızca
kayıt tipli değişken tanımının yapıldığı aşağıdaki (Şekil 4.4) modül dosyasını
eklemiştik. Bu pencerede tanımlanan değişkenler söz konusu modüle ait bütün
yordamlarda kullanılabilir
Şekil 4.4:
Kayıt Tipi değişken tanımlaması
4.2. Değişken Tanımlamak ve Değişken Tipleri
Visual Basic'te değişkenler Dim deyimi ile tanımlanır. Bu deyimin basit formatı şöyledir.
Dim değişken_ismi [(dizi boyutu)] As değişken_tipi
Değişken_ismi : Tanımlanacak değişkenin ismidir.
Dizi boyutu: Eğer değişken bir dizi olarak tanımlanacaksa dizinin boyutu değişken isminden sonra parantezler içine yazılır.
Değişken_tipi: Tanımlanacak değişken tipini belirler. Tablo 4.1'de tip isimleri ve sınırları verilmiştir.
Bildiri deyimi |
Veri Tipi |
Aktarılabilecek değer aralığı |
String |
Karaktersel |
65.565 karakter |
Integer |
Tamsayı |
±32768 |
Long |
Uzun tamsayı |
±2.147.483.648 |
Single |
Tek duyarlı sayısal değişken |
±3.402.823.10 |
Double |
Çift duyarlı sayısal değişken |
±1.79.10308 |
Currency |
Çok büyük ve çok küçük sayı |
±9.22.1014 |
Variant |
Tipi belli olmayan (Variant) |
Variant |
Tablo 4.1:Değişken tipleri ve sınırları
Örnek1:
Dim Ad As String *15
Dim Soyad As String*15
Dim yas As Integer
Dim Maas As Long
Dim Adres
Dim bildiri deyimi ile yapılan bu değişken tanımlama örneklerinde ilk iki değişken, karakter tipinde ve 15 karakter uzunluğunda, yas değişkeni tamsayı tipinde, Maas değişkeni uzun tamsayı tipinde ve Adres değişkeni ise Variant tipinde tanımlanmıştır. Bu değişkene program dahilinde istenilen tipteki bilgiler aktarılabilir.
Örnek2:
Dim Ad(20) As String*20
Dim no(10) As Integer
Bu örnekte Dim bildiri deyimi ile ad ve no adında iki tane dizi değişken tanımlanmıştır. İlkinde her biri 20 karakter uzunluğunda 21 tane ad ( ad(0), ad(1).......ad(20) ) değişkeni String tipinde tanımlanmıştır. İkincisinde ise no adında 11 tane Integer tipinde değişken tanımlanmıştır ( no(0), no(1),.............. no(10) ).
4.3. VarType() Fonksiyonu
Tipi belirtilmeyen Variant tipli değişkenlere programın işletimi sırasında istenen tipteki bilgi aktarılabilir. VarType fonksiyonu ile Variant tipteki değişkenin hangi tipte bilgi içerdiği öğrenilir.
Genel yazlışı:
VarType(Variant Değişken Adı)
Bu fonksiyon geriye değişkenin içerdiği bilginin tipini temsil eden sayısal bir değeri döndürmektedir. VarType() fonksiyonu ile döndürülecek sayısal değerler ve bu değerlerin temsil ettiği veri tiplerini Tablo 4.2'de verdim.
Veri Tipi |
Sayısal Değer |
Boş-Empty |
0 |
Null |
1 |
Integer |
2 |
Long |
3 |
Single |
4 |
Double |
5 |
Currency |
6 |
Date |
7 |
String |
8 |
Object |
9 |
Error |
10 |
Boolea |
11 |
Variant |
12 |
Data Object |
13 |
Tablo 4.2: VarType() fonksiyonunun geri döndürdüğü değerler ve bu değerlerin temsil ettiği veri tipleri.
4.4. IsEmpty() Fonksiyonu
Variant tipli bir değişkenin bilgi içerip içermediğini öğrenmek için bu fonksiyon kullanılır. Eğer fonksiyona parametre olarak verilen değişkene daha önceden bilgi aktarılmışsa geriye mantıksal yanlış (False), değişkene daha önce bilgi aktarılmamışsa mantıksal doğru (True) değeri döndürülür.
Genel Yazılışı:
IsEmpty (Variant Değişken Adı)
4.5. IsNumeric() Fonksiyonu
Bu fonksiyon IsEmpty() fonksiyonu gibi dışardan parametre olarak Variant tipteki bir değişkeni almaktadır. Parametre olarak alınan bu değişken sayısal bilgiler içeriyorsa geriye mantıksal doğru (True), içermiyorsa mantıksal yanlış değeri (False) döndürülür.
Genel Yazılışı:
IsNumeric (Variant Değiken Adı)