Procedure ile Function gerçek anlamda bir programın vazgeçilmezidir. En genel anlamda procedure ler geriye değer döndürmeyen, function ise geriye değer gönderen yapılardır.
Procedure için bir örnek
//Procedure e dışarıdan gönderilecek değişkenleri tanımlıyoruz. Procedure Topla(sayi1,sayi2:integer); var sonuc :integer; begin //çalıştırılacak işlemleri yapıyoruz sonuc := sayi1 + sayi2; showmessage(inttostr(sonuc)); end;
Procedure Örnek Kullanımı
procedure TForm1.ornekProcedureClick(Sender: TObject); begin Topla(1,4); end;
Procedure ümüzü Private yada Public bölümlerinde tanımlayabiliriz. Private de tanımlamasını yaparsak diğer Unitlerimizden buna erişemeyeceğiz yani sadece ona özel bir procedure olacaktır. Public kısmında tanımlarsak diğer Unitlerimizden erişebiliriz. Yazdığımız procedure e bakacak olursak verdiğimiz işi yaptı.
Ama ben bunu yaptım şu oldu demedi.İşte function ı procedure den ayıran en önemli özellik budur.
Function için bir örnek
//functiona dışarıdan gönderilecek değişkenleri tanımlıyoruz // tanımlamanın en sonundaki "Toplama(sayi1,sayi2:integer):integer" integer tanım- //laması functionun dönüş değer tipidir. Function Toplama(sayi1,sayi2:integer):integer; begin //result ile function işlemini bitirdikten sonra değeri kullanıcıya geri döndürüyoruz Result := sayi1 + sayi2; end;
Function Örnek Kullanımı
procedure TForm1.ornekFunctionClick(Sender: TObject); var donenDeger:integer; begin donenDeger := Toplama(5,6); ShowMessage(IntToStr(donenDeger)); end;
Functionlar da Procedure ler gibi Public yada Private Olabilirler.
Burada procedurelerden farklı olarak iki bölüm bözümüze çarpıyor.
1- Function adını ve parametrelerini belirledikten sonra function sonucunda bir integer değer dönmesi gerektiğini söyledik. Bu sayede function verilen görevlerini tamamladıktan sonra bizim isteğimize göre bize bir bilgi verecektir.
2- Result ise işte bu döndürülecek değerdir. Tipini yukarıda yapılan tanımlamadan alır. Bu tipide yaptıracağımız işleme göre belirlememiz gerekmektedir.
Örn. Bir kayıt işlemi yaptırtıyorsak, dönüş değerini boolean tanımlayıp true yada false değer gönderebiliriz. Bu sayede kayıt sonucunu bildiğimiz için false dönmüşse kayıt yapılamadı, true dönmüş ise kayıt başarılı şeklinde uyarı verebiliriz.
Aslında Function ve Procedure ler bir programın vazgeçilmezleridir. Bu nedenle algoritmanızda benzerlik gösteren işlemleri function yada procedure haline getirmeniz daha iyi olacaktır.
