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ımlanacağı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 procedure 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şkenleri 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ı)