DERS 5: OBJECT PASCAL Amaçlar:
-Delphi programlama dili olan Object Pascal dilini açıklamak.
I. OBJECT PASCAL Object Pascal, Delphi içinde kullanılan programlama dilidir. Turbo Pascal'a benzer ve nesne yönelimli bir programlama dilidir. Bu anlamda object pascal dili nesne yönelimli program tasarımını ve modern gereksinimleri karşılayabilecek kodlama olanaklarına sahiptir.
A. BILDIRIMLER Object Pascal dili özellikleri arasında koşullu derleme bildirimleri gelir. Bu bildirimler işletim sisteminin (platform) seçilmesi gibi derleyiciyi yönlendirir.
$IF
$ELSEIF
$WARN
$MESSAGE
$IF bildirimi:
Belli bir simgenin tanımlı olup olmadığını öğrenmek için kullanılır.
Const
Hatakontrol = 1;
{$IF Defined(DEBUG) and (hatakontrol > 2)}
Showmessage ('mesaj');
{$IFEND}
B. SINIF VE NESNELER Sınıflar bir durumu ve belli davranışları olan kullanıcı tanımlı bir veridir. Sınıflar class sözcüğüyle tanımlanırlar. Nesneler ise sınıfların örnekleridir.
Bir sınıf türünü tanımlamak:
Type
TDuzenle = class
Ay, Gun, Yil: Integer;
Procedure DegerVer (g, a, y: Integer);
Sınıf tanımlamak:
procedure TDuzenle.DegerVer (g, a, y: Integer);
begin
Gun:=g;
Ay:=a;
Yil:=y;
End;
Sınıf tanımlandıktan sonra nesye yaratılabilir:
var
Tarih: TDuzenle;
begin
// bir nesne yarat
Tarih:= TDuzenle.Create;
Tarih.DegerVer (1, 1, 2003)
end;
C. BIR DELPHI NESNESI Yeni bir proje yarattığınızda, Delphi şekillendirebileceğiniz bir yapı sunar. Code Editor içinde Delphi yeni bir sınıf türü tanımlar.
unit Unit1;
interface
uses Windows, Classes, Graphics, Forms, Controls, Dialogs;
type
TForm1 = class(TForm)
private
{ Private bildirimler.}
public
{ tür bildirimlerinin başı. }
{ Public bildirimler. }
end;
{ tür bildirimlerinin sonu.}
var
Form1: TForm1;
implementation { implemente işlemlerinin başı. }
{$R *.DFM}
end.
{ implemente işleminin ve unitin sonu. }
Yeni sınıf türü TForm1'dır ve TForm sınıfından türetilir.
Bu değişken Form1 adlı yeni bir değişkeni bildirir:
var
Form1: TForm1;
Form1, TForm1 sınıfından örneklenir. Örneğin form üzerine bir düğme eklendi ve OnClick olayına kod yazıldı:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Color := clGreen;
end;
Nesneler diğer nesneleri birer veri alanı olarak içerirler. Form üzerine yeni bir bileşen eklediğinizde yeni alan formun tür tanımında görünür.
unit Unit1;
interface
uses Windows, Classes, Graphics, Forms, Controls;
type
TForm1 = class(TForm)
Button1: TButton;
{ yeni veri alanı.}
procedure Button1Click(Sender: TObject); { Yeni metot bildirimi.}
private
{ Private bildirimler.}
public
{ Public bildirimler.}
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
{ Yeni metodun kodu.}
begin
Form1.Color := clGreen;
end;
end.
II. PROGRAMLAMA TEMELLERI Object Pascal, nesne yönelimli özelliklerinin dışında söz dizim kullarına sahiptir:
Bütün Delphi kodları ; ile sonlandırılır.
Eşittir işareti := şeklinde belirtilir.
= işareti ise karşılaştırma işleminde kullanılır.
A. YORDAMLAR (PROCEDURES) Bir procedure, bir seferde çağırılabilen bir kod parçasıdır. Yordamlar parametre de kabul edebilirler.
Örnek:
procedure TColorBox.Button1Click(Sender: TObject);
begin
ColorBox.Color := clGreen;
end;
B. FONKSIYONLAR Fonksiyonlar da procedure yapısına benzerler ancak bir değer döndürürler. Örneğin bir hesaplamayı içeren fonksiyon, o hesaplamaya gereksinim duyulduğunda çağırılarak kullanılır.
Fonksiyon tanımı:
function UcretHesapla(Deger: Double);
begin
UcretHesapla=1000;
end;
Fonksiyonu çağırmak:
function UcretHesapla: Double;
C. KODLAMA KURALLARI Kodlama kurallarının başında açıklama satırı yamak gelir:
(* açıklama *)
{ bu da açıklama }
Delphi'nin kendisi {} metodunu kullanır.
Diğer bir kodlama kuralı da girinti (indent) işlemidir:
if (form1.caption='Musteri') then
begin
Form1.caption:='Bizim Form';
end;
Yukarıdaki satırlar tek bir satır olarak yazılabilir, ancak okumak ve gerektiğinde hata kontrolünü daha iyi yapabilmek için girinti kurallarına uyulur:
if (form1.caption='Musteri') then Form1.caption:='Bizim Form';
D. DEĞIŞKENLER
Uzunca bir zamandır, değişkenleri (variables) şu şekilde tanımlarız: uygulamalarda verileri temsil etmek, işlemek ve saklamak için yapılan tanımlamalarda kullanılan sözcüklere değişken denir.
Uygulama içinde "ücret" bilgisini temsil etmek için Ucret ya da HesUcret gibi bir değişken tanımlanır. Ardından bu değişkene değerler atanarak işlemler yapılır.
İPUCU: Genellikle küçük harf ve büyük harfle başlayan değişken adlandırma kullanılır. Örneğin: PersonelUcreti gibi.
Değişkenlerin türleri:
Gerçek Sayılar Real, Single, Double, Extended, Comp
Integers Integer, Shortint, SmalIint, LongInt, Byte, Word, Cardinal, Boolean, ByteBool, WordBool, LongBool, Char
Strings String, Pchar
Örnek:
var
x : integer;
begin
x:=5;
end;
Değişkenler Var anahtar sözcüğüyle bildirilirler.
Örnek:
var
x : integer;
adresi: string;
E. BEGIN.END BLOKLARI Begin ve End blokları bir grup kodu ifade ederler.
Örnek:
Begin
x:=5;
adresi:='1234 sokak no 1';
end;
III. PROGRAM DENETİMİ Program denetimi program kodlarının işletilmesi sırasında döngüler, sapmalar gibi yapıların oluşturulmasını sağlayan mekanizmadır. Delphi programının işletilmesinde kod blokları da önemli rol oynar.
Program denetiminin ana yapıları:
.
Karar (selection)
.
Döngü (loop, iteration)
.
Atlama (jump)
Klasik (geleneksel) programlamada programın akışı sıradan gider. Diğer bir deyişle programın işletimi, deyimlerin sırasıyla yürütülmesiyle (satır satır) devam eder. Bir karar, döngü ya da bir atlama deyimi ile karşılaşılması durumunda programın akışını değiştirir.
Ana karar yapıları şunlardır:
.
If..Else
.
Switch
Döngüler özellikle programın etkinliği bakımından önemli bir programlama tekniğidir.
Döngü Yapıları:
.
While
.
Do
.
For
.
Foreach
Atlama (Jump) yapıları ise program denetimini hiçbir koşula bağlı olmadan (doğruda) bir diğer deyime geçirir.
Atlama deyimleri:
.
Goto
.
Break
.
Continue
A. IF.THEN.ELSE YAPISI Yapısı:
IF THEN <doğru olduğunda çalışacak kod> ELSE ;
IF yapısı true ya da false değerinden birisini döndürür.
Örnek:
If yasi >= 18 then
yetiskin:=true
else
yetiskin:=false;
Basit bir koşul için tek parçalı bir IF yapısı yeterlidir:
Örnek:
If sonuc=true then
exit;
Örnek:
If yasi>=18 then
Begin
yetiskin:=true;
ucret:=1000;
end
else
Begin
yetiskin:=false;
ucret:=500;
end;
DİKKAT: Else deyiminden sonra ; işaretinin kullanılmadığına dikkat ediniz.
B. FOR.TO/DOWNTO.DO.; YAPISI Bir grup kodun belli bir sayıda yinelenmesi gerekebilir. Örneğin birden ona kadar saymak gibi.
Örnek:
For x:=10 downto 1 do y:=y+1;
Yukarıdaki kod ile y'nin değeri bir artırılır.
x:=10;
y:=y+1;
x:=9;
y:=y+1;
x:=8;
y:=y+1;
x:=7;
y:=y+1;
x:=6;
y:=y+1;
x:=5;
y:=y+1;
x:=4;
y:=y+1;
x:=3;
y:=y+1;
x:=2;
y:=y+1;
x:=1;
y:=y+1;
Farklı döngü adımları da kullanılabilir:
for i:=2 to 10 step 2 do.....
C. WHILE.DO.; YAPISI While.do döngüleri de bir tür yineleme mekanizmasıdır. Repeat deyimine çok benzer ancak tek farkı While döngüsünde döngüye girmeden önce soru sorulur. Döngü koşulu sağlanırsa döngüye girilir, sağlanmazsa girilmez.
Örnek:
While x<10 do x:=x+1;
IV. GÖZDEN GEÇİRME 1. Program kontrolü yapılarını açıklayın?
2. Delphi kod bloklarını açıklayın?
3. Delphi sınıfların nasıl tanımlanır?