ShortInt 1 Byte uzunluğunda işaretli tamsayı (-128 ile +127 arasında)
SmallInt 2 Byte uzunluğunda işaretli tamsayı (-32768 ile +32767 arasında)
Integer 4 Byte uzunluğunda işaretli tamsayı (-2147483647 ile +2147483645 arasında)
Byte 1 Byte uzunluğunda işaretsiz tamsayı (0 ile 255 arasında)
Word 2 Byte uzunluğunda işaretsiz tamsayı (0 ile 65535 arasında)
DWord 4 Byte uzunluğunda işaretsiz tamsayı (0 ile 255 arasında)
Single 4 Byte uzunluğunda ondalıklı sayı (7-8 haneli)
Real 6 Byte uzunluğunda ondalıklı sayı (11-12 haneli)
Double 8 Byte uzunluğunda ondalıklı sayı (15-16 haneli)
Extended 10 Byte uzunluğunda ondalıklı sayı (19-20 haneli)
Currency 8 Byte uzunluğunda işaretli ondalıklı sayı (Para hesaplarında kullanılır,
virgülden sonraki basamak sayısı azdır)
Boolean 1 Byte (True veya False değerlerini alır)
Char 1 Byte uzunluğunda karekter (Tek bir karekter A, B gibi)
ShortString En fazla 255 karekter dizisi alabilir
String İstenilen kadar karekter içerebilir
Değişkenler
Delphi'de kullanılacak değişkenleri önceden tanımlamak gerekmektedir. Değişken isimleri
bir karekterle başlamalı ve en fazla 63 karekter uzunluğunda olmalı, Türkçe karekterler
içermemelidir. Değişkenler Var bloğunda aşağıdaki gibi tanımlanır:
Var
Adsoyad:string;
OkulNo:Integer;
Diziler
50 kişilik bir sınıfın adlarını birer değişkene aktarmak isteyelim. Her birisi için tek
tek birer değişken tanımlamak çok zahmetli ve kullanışsız olacaktır. Bunun yerine diziler
kullanılabilir. Diziler bir boyutlu, 2 boyutlu veya daha çok boyutlu olabilir. Dizi atamaları
Var bloğunda aşagıdaki gibi tanımlanır:
Var
Adsoyad:Array[1..20] of string;
OkulNo:Array[1..20] of Integer;
Burada Adsoyad ve OkulNo değişkeninden 20 şer tane yaratılmaktadır. Bu değişkenlere indisleri
aracılığıyla ulaşılabilir.
Adsoyad[1]:='Ertuğrul us'
OkulNo[7]:=2459
gibi. Sınırların dışında indis verilirse ( Adsoyad[21] gibi ) Delphi hata mesajı verecektir.
Var
Adsoyad:Array[1..20, 1..30] of string;
OkulNo:Array[1..20, 1..30] of Integer;
ifadesind iki boyutlu diziler tanımlanmaktadır. Bunun anlamı Adsoyad değişkeninden 20x30=600
tane değişkenin yaratıldığıdır. Bu değişkenlere yine indisler aracılığıyla ulaşılır.
Adsoyad[12,18]:='Delphi'yi seviyorum';
gibi.
Sabit Tanımlar
Programın ilk açılışından programın kapanışına kadar değişmeyecek tipteki verilerin tutulduğu
değişkenlerdir. Deklerasyonu
Const
Okuladi='Okulus';
SiteNo:Integer=7;
Merhaba:String='Merhaba millet';
Cinsiyet:Array[1..3] of string=('Erkek', 'Kadın', 'Homo');
gibi. Burada Cinsiyet[1]'in değeri 'Ekek', Cinsiyet[2]'nin değeri 'Kadın', Cinsiyet[3]'ün
değeri 'Homo' dur.
Aritmetik Operatörler
+ Sayılarda toplama işlemi, stringlerde birbirine ekleme, kümelerde birleşim alma
- Sayılarda fark işlemi, kümelerde simetrik fark alma
* Sayılarda çarpma işlemi, kümelerde kesişim alma
/ Bölme işlemi
= Eşitlik durumu
:= Bir değişkene veya özelliğe değer atama
<> Eşit değil (a<>b : a eşit değil b ise)
<= Küçük-eşit
>= Büyük-eşit
in Mevcutsa (125 in Okulno : Okulno içinde 125 mevcutsa sonuç true, yoksa false değerini
verir)
And Ve bağlacına karşılık gelir (a>10) AND (a<50)
Or Veya bağlacına karşılık gelir
Type Blokları:
Özel veri tipleri, nesneler, kayıt tipleri bu bölümde tanımlanır.
Type
Cevaplar=(A, B, C, D, E);
Sorular=1..100;
Harfler=Set of 'A'..'Z';
gibi. Burada Cevaplar değişkeni A, B, C, D, E değerlerinden birini alabilir. Sorular
değişkeni 1'den 100'e kadar herhangi bir değer alabilir. Harfler değişkeni ise küme
tipindedir. Yani A ile Z arasında bir grup değeri alabilir. Örneğin Harfler:=['A', 'E'] gibi.
Type bloğunda tanımlanan tipler, Var bloğunda başka değişkenlere de aktarılabilirler:
Var
Yanitlar:Cavaplar;
gibi. Yanitlar değişkeni de tıpkı Cevaplar gibi olacaktır.
Procedurler ve Fonksiyonlar:
Bunlar iş yapan kod parçacıklarıdır yada modüllerdir. Yapıları
Procedure Toplamayap(Başlangıç değişkenleri);
Begin
........
End;
Function Carpmayap(Başlangıç değişkenleri):Fonksiyonun döndereceği tip;
Begin
........
End;
şeklindedir. Procedure ve Function ifadelerinde kullanılacak değişken ve veri tipleri
begin ifadesinden önce tanımlanmalıdır.
Procedure Toplamayap(x, y:Integer);
Var
sayi1, sayi2: Real;
Ad:String;
Begin
sayi1:=x+y;
..........
End;
gibi. Burada x ve y değişkenlerinin değerleri procedur çağrılırken atanır. Sayi1, Sayi2
ve Ad değişkenleri sadece bu procedure içinde kullanılabilirler. Bu procedur içinde
bulunulan Unit içerisinde herhengi bir anda çalıştırılabilir.
Toplamayap(456, 678);
gibi. x, 456 ve y, 678 değerini alır.
If Then Else Blokları:
Bazen belirli şartların yerine gelmesi durumlarında belirli komutların çalışması istenebilir.
1) If a=0 then b:=10; 'Eğer a'nın değeri 0 ise b'ye 10 değerini ver'
2) If a=0 then
Begin
b:=10;
c:='H2O';
End;
3) If a=0 then b:=10 else b:=20; 'Eğer a'nın değeri 0 ise b'nin değerini 10 yap
değilse b'nin değerini 20 yap'
4) If a=0 then
Begin
b:=10;
c:='H2O';
End
Else If a=1 then
Begin
b:=20;
c:='CO2';
End
Else
Begin
b:=30;
c:='SO2';
End;
Case Blokları:
Çok şart varsa case blokları kullanılabilir.
Case OkulNo of
1: Tanim:='İlk öğrenci';
2..100: Tanim:='Birinci sınıf öğrencisi';
101..200: Begin
Tanim:='İkinci sınıf öğrencisi';
Cinsiyet:='Kız';
End;
201..301: Tanim:='3. sınıf öğrencisi';
Else: Tanim:='Mezun';
End;
Burada OkulNo değeri 1 ise Tanim, 'İlk öğrenci', OkulNo değeri 2 ile 100 arasında ise
Tanim, 'İkinci sııf öğencisi' değerini almaktdır.
Döngü Blokları
Bazen benzer komutları birçok kez çalıştırmak gerekebilir. Bu durumlar için kullanabileceğimiz
üç komut tipi vardır.
1) For döngüsü:
Bu döngüde bir sayaç vardır ve belli komutlar sayacın alacağı sınır değerleri kadar
çalıştırılır.
For a:=1 to 100 do
Begin
......
End;
ifadesi a değerini 1 den başlatarak 100 kadar arttırır ve Begin...End bloğunu 100 defa
çalıştırır.
For a:=100 downto 50 do
Begin
......
End;
ifadesi a değerini 100 den başlatarak 50 ye kadar düşürür ve Begin...End bloğunu 51
defa çalıştırır.
2) While Döngüsü:
Belli bir şartın geçerliliği devam ettiği sürece belli kodların çalıştırılması için
kullanılır. Bu döngüde şart sağlanıyorsa komutlar çalıştırılır.
While a<100 do
Begin
.....
End;
3) Repeat Döngüsü:
Belli bir kod bloğundan sonra istenen şartın oluşup oluşmadığına göre kodların tekrar
çalıştırılması için kullanılır.
Repeat
a=b*c;
b:=b+1;
Until a<500;
Döngüleri bazen sona erdirmek gerkebilir.
Berak: İçinde bulunulan döngüyü keser.
Continue: Döngünün tekrar baştan başlamasını sağlar.
Exit: Procedurden veya döngüden çıkmayı sağlar.
Halt: Programı tamamen sona erdirir.
Mesaj Pencereleri:
1) Basit Mesajlar:
Bilgi veren pencerelerdir. Ekranın ortasına açılırlar. Üzerinde OK düğmesi vardır.
ShowMessage('Yanlış tuşa bastınız');
2) Dialog Mesajları:
Kullanıcının bir seçim yapması gerektiği durumlarda kullanılır. Seçilen düğmelere göre bir
sonuç dönderir.
If MessageDlg('Silmek istediğinizden emin misiniz?', MtWarning, [MbYes, MbNo], 0)=MbYes then
Begin
......
End;
Dialog penceresinde belli iconlar bulunabilir. Bunlar
MtWarning : Ünlem işareti
MtError : X işareti
MtInformation : i işareti
MtConfirmation : ? işareti
Seçilebilecek düğmeler ise
MbYes : Yes
MbNo : No
MbOK : OK
MbCancel : Cancel
MbRetry : Retry
MbIgnore : Ignore
MbAll : All
MbHelp : Help
Bu düğmelerin dönderdiği değerler ise MrYes, MrNo, MrOK, MrCancel, MrRetry, MrIgnore,
MrAll şeklindedir.
3) Veri giriş pencereleri
Bazen kullanıcıdan veri almak gerekebilir. Bu durumda InputBox kullanılabilir.
Var
Ad:String;
Begin
Ad:=InputBox('Ad girme kutusu', 'Lütfen adınızı giriniz', 'Adsız');
Burada 'Ad girme kutusu' pencerenin başlığı, 'Adsız' ise default değerdir.