Site hosted by Angelfire.com: Build your free website today!
undefined
undefined

Delphi'ye Giriş                                                                                         Mza WebKURS 2000-Delphi

DELPHİ’NİN GÜCÜ

Delphi Inprise’ın derleyici teknolojisinde gelmiş olduğu aşamanın en büyük ürünlerinden biridir. Inprise bu teknolojiyi Delphi’den sonra geliştirdiği diğer programlama dillere aktarmaya çalışmış ve Delphi’nin görsel uygulama ve geliştirme ortamına benzer ortamları, ürünlerinde aynı tutmaya çalışmıştır. Ayrıva yine Delphi’yle Component (Bileşen) temelli uygulama geliştirme ortamı teknolojisini oldukça verimli bir biçimde ortaya koymuş ve yine bu teknolojiyi diğer uygulama geliştirme araçlarına aktarmayı hedefleri arasına koymuştur. (Örneğin, yine Inprise’ın ürünü olan Java Builder uygulama geliştirme ortamında da Java için bileşen teknolojisi kullanabilmektedir).

Delphi’nin en güçlü yanlarından biri de Windows API fonksiyonlarının tümüne rahatlıkla ulaşabiliyor olmasıdır. Windows altında C++ ile uygulama geliştirmiş olan programcılar, Windows API fonksiyonlarını yakından tanıyacaklardır. Delphi’yle Windows API fonksiyonları rahatlıkla çağrılabilmekte ve bu sayede çok güçlü, hızlı programlar üretebilmektedir.

Sonuç olarak görsel uygulama ortamı Delphi’nin gücü:

  • 32-bit derleyici
  • Nesneye yönelik Object Pascal Programlama dili
  • Ölçeklenebilir veritabanı erişimi
  • Bileşen teknolojisi
  • Windows API fonksiyonlarını kullanılabilmesi
  • Hızlı uygulama geliştirebilme

Delphi Yapısı                                                                             Mza WebKURS 2000-Delphi

DELPHİ ORTAMI           

Delphi genellikle şu bölümlerden meydana gelir:

  • Ana Pencere
  • Object Inspector (Nesne Denetleyici)
  • Kod Editör Penceresi
  • Form Tasarımcısı

Ana Pencere

Ana pencere ekranda en üst kısımda gördüğümüz penceredir ve kendi içinde üç bölümden oluşmaktadır.

  • Ana Menü
  • SpeedBar
  • Bileşen Sayfaları
  • SpeedBar

    SpeedBar, ana menüde bulunup da en çok kullanacağımız seçeneklere düğmeler yoluyla ulaşmamızı sağlayan bölümdür.

    Bileşen Sayfaları

    Delphi bileşenlerinin bulunduğu bölümdür.

    Ana menü, klasik windows programlarında gördüğümüz tarzda hazırlanmıştır ve Delphi’yle geliştireceğimiz projelerin yönetimi için kullanılacak seçenekleri bize sunmaktadır. Ana menüdeki bazı seçenekler aynı zamanda SpeedBar üzerine düğmeler şeklinde de yerleştirilmiştir. Bu sayede programcılar her defasında bir menü seçeneğine gireceklerine direkt olarak bir düğmeye basmak suretiyle istedikleri işlemi gerçekleştirebilirler.

    Çok sık kullanılan düğmeler speedBar’a eklenebilir.

SpeedBar’a Düğme Eklemek    

    Faremizi Ayıraç çizgisinin bulunduğu bölüme getirelim ve ters tıklayalım, SpeedBar’a ters tıkladığımız zaman bir menü gelecektir. Bu menüden Customize seçeneğini seçelim, Sonra Commands sayfasına girelim. Burada sol taraf da ki listeden istediğimiz sık kullanılacak düğmelerin listesini seçebiliriz. Şimdi bu menü elemanlarından Build All düğmesini sürükle ve bırak özelliğini kullanarak paletimize çekelim. Yani üzerinde bir kez tıkladıktan sonra elimiz farenin sol düğmesinde basılı durumdayken bu düğmeyi çekelim ve speedbar üzerinde boş bir yere getirerek bırakalım. Artık burada build All düğmesini görebiliriz.

    SpeedBar üzerindeki düğmelerin ne işe yaradıklarını her zaman bilemeyebiliriz. Bilemediğimiz zaman ise o düğme üzerine geldiğimiz zaman kısa süre bekleme esnasında düğme altına bir yazı gelecektir ve burada düğmenin tanımı açıklanır. Buradan o düğmenin ne işe yardığı kolayca öğrenilebilir.

Object Inspector (Nesne Denetleyici)    

    Object Inspector IDE’nin sol tarafında görünen dikey penceredir. Bu pencerede iki sayfa bulunmaktadır. Properties ve Events. Bu sayfaların başlıkların üzerinde fareyle tıkladığımız zaman ilgili sayfaya geçebiliriz. Bu sayfalar bileşenlere ait özellikleri yada o bileşen için gerçekleşebilecek olayların listesini göstermektedir. Programı açtığımız zaman karşımıza çıkan formumuzun rengini, boyutunu, enini ve bir takım özellikler nesne denetleyici tarafından düzenlenmektedir. Form üzerine koyduğumuz nesnelerin üzerine tıklatıldığı zaman object inspector penceresinde o nesneye ait özellikler görüntülenir. Göze hoş görünmesi için nesnelerin rengi, 3 boyut özelliği, yazı fontu vb. özelliklerinin ayarlanmasını kolaylaştırmak için object inspector kullanılır. Object Inspector üzerindeki diğer sayfaya (Events) geçtiğimiz zaman properties sayfasına benzer sayaf ortaya çıkacaktır. Burada ise çalıştığımız pencereye veya nesneye ait olaylar (Events) listelenmiştir. Object Inspector’un en üst kısmında bir bileşen listesi vardır. Formumuz üzerine yerleşen her bileşen bu listede yer almaktadır.

    Şimdi Windows’u düşünelim. Windows’ta bir pencereyi bir yerden bir yere çektiğimizde aslında bir çok olay (Events) meydana gelmektedir. Faremizin, taşımak istediğimiz pencerenin üzerinde olduğunu var sayalım.

  • Faremizin sol düğmesine bastığımız anda ‘Farenin sol düğmesine basıldı ‘ şeklinde bir olay oluşur. Bu olay karşısında Windows sistemi penceremize ‘Senin üzerinde farenin sol düğmesine basıldı ve fare bu sol düğmeye basılı şekilde duruyor.’ Diye bir mesaj gönderir.
  • Fare basılı durumdayken pencereyi dutup çekersek yeni bir olay daha ‘Farenin Sürüklenmesi’ meydana gelir. Bu olay karşısında windows yine penceremize bir mesaj gönderir ve bu sayede penceremiz sürüklenmekte olduğunu anlar.
  • Son olarak farenin basılı düğmesini serbest bıraktığımız anda ‘Farenin basılı olan Düğmesi Serbest Bırakıldı ‘ şeklinde bir olay gerçekleşir. Windows bu olayla ilgili mesajı tekrar penceremize gönderince, üzerinde çalıştığımız pencere kendisini son olarak konumlandıracağı yeri anlar ve oraya tamamen taşımış olur.

Form Tasarımcısı  

     Formlar uygulama geliştirirken üzerine Delphi bileşenleri koyabileceğimiz pencerelerdir. Genel olarak her Delphi programı en az bir formdan oluşmuştur. Formlar görsel programlamanın gerçekleştiği yerlerdir. Bileşen paletinde bulunan bileşenleri sürükle bırak özelliği sayesinde fareyle tutularak istenilen yere yerleştirilebilirler. Bir bileşen form üzerine yerleştirildikten sonra, üzerine yine fare getirilerek sürükle bırak özelliği ile form üzerinde bir başka yere de çekilebilir. Formlar daha önce

Kod Editör Penceresi

   

   Delphi’yle bir yandan görsel olarak uygulama geliştirme yaparken bir yandan da programlarımız için kaynak kod yazacağız. Bu kaynak kodları yazdığımız programlama dilinin adı OBJECT PASCAL’ DIR. Object Pascal kaynak kodunu bir editör kullanarak yazabiliriz. İşte bu editörde Delphi’yle birlikte gelen IDE içinde bulunmaktadır. Yeni bir form yarattığımızda bu form ile ilgili kaynak kodlarının bulunduğu ve yeni altyordamların yazılabileceği bir modül (Ünit) oluşur. Unit, Object Pascal programlama dilinde birbirleriyle ilgili procedure ve fonksiyonların toplandığı modüllerin her biridir. Pascal’da yaratılan bir modülün uzantısı *.PAS’dır Ekranımızda kod editör penceresine ulaşabilmek için, ekranın ortasında görünen form1 formunun arkasında duran pencereyi aktif hale getirmemiz gerekir. Ancak bu pencere Form 1’in arkasında kaldığı için ilk bakışta görmeyebiliriz. Bu nedenle fareyle form1’i başlık kısmından tutarak yana çekelim; artık arkadaki penceremizi de görebiliriz. Bu durumdayken tekrar formumuza geri dönmek için yapmamız gereken form üzerinde bir kez fareyle tıklamak olacaktır(Şekil 2.4).

Delphi’den Çıkış 

Delphi programından çıkmak için her programda olduğu gibi File menüsünden Exit seçilerek çıkmak mümkündür veya Alt+F4 tuşları kullanılarak da çıkılabilir.

PROJE KAVRAMI

       Delphi’yle uygulama geliştirme işlemi Proje kavramı üzerine kurulmuştur. Genel olarak uygulamalarımızda birden fazla modülle uğraşırız. Bu modüller asında an menülerin oluşturulduğu modüller, raporlama modülleri, kullanıcı arabiriminin hazırladığı formlarla ilgili modüller yada programınızın çeşitli yerlerinden çağrılabilecek fonksiyon ve procedure’lerin yazıldığı dosyalar vardır. İşte bir Delphi uygulamasını oluşturan bu modüllerin tümüne birden Proje adı verilir. Bu dosyaların bazıları uygulamayı geliştirme aşamasında bizim tarafımızdan, bazılarıda derleme sırasında derleyici tarafından oluşturulur.

Yeni Bir Proje Yaratmak

     Şimdi Delphi’de ilk projemizi oluşturalım. Oluşturacağımız bu ilk proje şimdilik hiç bir şey yapmayacak ve ekranda sadece boş bir form görünecek. Bunun için önce ana menüden File+New Application seçeneğine girelim. Karşımıza tamamen boş bir formun olduğu bir ekran gelecektir. (Tabiki Object Inspector ve kod editör pencereleri yine mevcut). Aslında tam şu anda ilk projemizi yaratmış oluyoruz. Yapmamız gereken, bu projeyi istediğimiz bir adla saklamak ve daha sonra onu çalıştırmaktır. Projemizi saklamak için, ana menü File+SaveAll seçeneğine gelmeliyiz. Bu noktada karşımıza önce üzerinde çalıştığımız modülü (Unit) hangi adla saklayacağımızı soran bir pencere çıkacaktır. Bu modül üzerinde çalışma yaptığımız formumuza ait bir modüldür. Bu modüle ilk modül adını vererek Enter Tuşuna basalım. Modülümüz ilk modül *.PAS adıyla saklanmış olacaktır. Fakat hemen sonra karşımıza bir pencere daha çıkacak ve bu kez üzerinde çalıştığımız projenin adının girilmesi beklenecektir. Projemizin adını da buraya ilk proje olarak girelim. Bu kez projemiz ilk proje *.DPR(DPR=Delphi project) şeklinde saklanmış olacaktır.

     Bunu görmek için bu pencereyi istediğimiz bir yere taşıyalım ve boyutları üzerinde oynayalım. Son olarak ise kontrol menüsü üzerinde(Pencerenin en sol üst kısmında) çift tıklayarak formu kapatalım. Şimdi tekrar IDE ortamına dönmüş olacağız.

     Uygulamamızı çalıştırdığımızda eğer dikkat ettiyseniz formumuzun başlığında form1 yazısı bulunmaktadır. Şimdi bir adım daha ileri giderek bu başlığı değiştireceğiz.

     IDE içindeyken formumuz üzerindeki boş bir alana bir kez tıklayalım. Bu durumda formumuzu aktif duruma getirmiş oluruz ve Object Inspector’de formumuzla ilgili özellikleri görebiliriz. Bu başlığı değiştirmek için Caption özelliğinin karşısındaki alana faremizle tıklayarak “ilk penceremiz” yazısını yazalım(Şekil 2.5). Artık formumuzun başlığında “İlk Penceremiz” yazısı görünecektir. Bu başlık programımızın çalışma esnasında görüneceği gibi uygulamayı geliştirdiğimiz ortamda da karşımıza çıkacaktır.

Project Manager (Proje Yöneticisi)

      Windows altında görsel olarak uygulama geliştirme aşamasında karşılaşılacak en önemli sorunlardan bir tanesi, uygulamamızdaki formların ve modüllerin sayısının çok artması ve birinden diğerine geçişler sırasında çok zorlanmasıdır. Delphi’de bu sorunu çözebilmek için Wiew+Proje Manager seçeneğine girebiliriz. Bu seçeneğe girdiğimizde projeyle ilgili tüm formlarımızın ve modüllerimizin bir listesini bulabiliriz. Proje Manager’i kullanarak projemize yeni bir modül ekleyebilir ve silebilir, istediğimiz form yada modül adı üzerine çift tıklayarak direkt olarak o form yada modülle ilgili bölüme giderek çalışabiliriz.

Proje Dosyaları

Genel olarak Delphi’yle bir proje geliştirdiğimizde, dizinimizde farklı uzantılarda dosyalar görürüz. Bu uzantılar ve anlamaları aşağıdaki gibi özetlenebilir.

Ana Proje Dosyası: Bu dosya ‘DPR’ uzantılıdır ve oluşturulan EXE uzantılı dosya, adını bu dosyadan alacaktır. Bu dosya içinde, projede kullanılacak olan formların ve bu formlara ait olan modüllerin listesi vardır. Projemizi ilk sakladığımız anda, DPR uzantılı bir dosya oluşacaktır.

Grafik Form Dosyası: Bu dosya, üzerinde çalışmış olduğumuz formla ilgili tanımları tutar ve uzantısı *.DFM’dir. Bu dosyalarda, formlarımızın görsel özellikleri kayıt edilir. Bu özellikler uygulamamızın hem geliştirme aşamasında hem de programın çalışma aşamasında kullanılan özelliklerdir.

Pascal Modülleri: İçinde Object Pascal kodunu içeren modüllerdir. Veri tanımları ve procedureler, metotlar, sınıf deklarasyonları, bu modüller içine yazılır. Klasik paskal kullanıcıları bu modülleri(ünit) yakından tanıyacaktır. Bu modüller *.PAS uzantılıdır.

Proje Seçenekleri Dosyası: Proje ile ilgili obsiyonların tutulduğu dosyalardır. Her proje için bir tane yaratılır ve *.OPT uzantılıdır.

Derleyici Kaynak Dosyası: Uygulamaya ait simge gibi dış kaynaklarla ilgili bilgilerin tutulduğu dosyalardır ve *.RES uzantılıdır.

Yedek Proje Dosyası: Projemizi ikinci kere kaydettiğimiz zaman oluşur ve *.DPR uzantılı dosyamızın saklanmadan önceki halini tutar. Uzantısı ise *.~DPR’dir.

Yedek Modül Dosyası: Her hangi bir modülümüzü ikinci kere kaydettiğimiz zaman oluşur ve *.PAS uzantılı modülümüzün, saklanmadan hemen önceki halini tutar. Uzantısı ise *.~PA’dır.

Yedek Grafik Form Dosyası: Eğer kod editörde *.DFM uzantılı dosyayı açarak formumuzla ilgili bazı seçenekleri değiştirirsek ve daha sonra bu dosyayı kaydedersek, dosyanın bir önceki hali *.~DF uzantısıyla saklanacaktır.

Masa üstü Seçenek Dosyası: Bu dosya ana menüde Tools+Options seçeneklerine girerek çalışma ortamıyla ilgili seçeneklerin tanımlandığı değişiklikleri saklayan *.DSK uzantılı bir dosyadır.

Derlenmiş Modül Dosyası: *.PAS uzantılı her dosyamız derlendikten sonra aynı adlı fakat *.DCU adlı bir dosya oluşacaktır.

Tip Kütüphaneleri (Type Library): TLB uzantılı, COM nesneleri için Delphi tarafından yaratılan dosyalar.

Projeye Ek Dosyalar: Delphi projelerinde kullanacağımız bazı dosyalar, Delphi dışındaki başka bir ortamda geliştirilmiş, proje dizinimizden farklı bir dizinde olabilir. Proje derlendiğinde, Delphi bu dosyaların bazılarını derlenmiş *.EXE dosyayla birleştirebilir. Bu dosyalardan en çok karşılaşacaklarımız, *.BMP, *.WMF uzantılı resim dosyaları *.ICO uzantılı simge dosyaları ve *.HLP uzantılı Windows yardım dosyaları olacaktır.

              FORMLAR ve BİLEŞENLER

      Formlar, görsel uygulama geliştirmenin temel yapı taşalarındandır. Görsel programlamada, birtakım nesneler formlar üzerine yerleştirilir. Yerleştirilen bu nesneler ve farenin birbiri ile etkileşimi ile ortaya bir sonucun çıkması istenir. Bu sonuç nesnelere birtakım kodların eklenmesiyle oluşturulur. Bu durumda formlar, içlerinde bir çok nesneyi barındıran paketler şekline dönüşmektedir. Böyle bir senaryoda kod yazma işlemi, form üzerine bir nesnenin konulmasıyla başlamakta ve yazılan kodların o nesnelere ilişkilendirilmesiyle gelişmektedir. Böylece, uygulama geliştirme çok basit ve hızlı bir hale gelebilmektedir.

     Bileşenler (Component), Delphi’nin formlar üzerine yerleştirebildiği nesnelerin her biridir. Bileşenler Bileşen sayfalarından seçilir ve form üzerine yerleştirilir. Daha sonra istenirse özellikleriyle oynanabilir ve bu bileşenler bir takım kodlarla ilişkilendirilebilir.

    Projemizin IDE ortamında görüntüsüne dikkat ettiğimizde formumuza ait bir çok özelliği Object Inspector’da görebiliriz. Bu özelliklere daha sonra birçok yerde değineceğiz. Formumuz üzerine yeni bir bileşen yerleştirmek için önce bileşen paletindeki (Bileşen sayfalarının bulunduğu bölüm) bileşenlerden bir tanesi üzerinde sonrada formumuz üzerinde herhangi bir yerde faremizi tıklamalıyız. Böylece o noktaya, seçtiğimiz bileşen yerleştirilecektir.

     Bileşen paletinde çok sayıda bileşen vardır. Bu bileşenler Bileşen Paleti üzerinde birçok sayfaya yerleştirilmiştir. Bileşen paletinin üst kısmında yazılı olan bu sayfa isimleri üzerinde fareyle tıklattığımızda ilgili sayfaya geçebiliriz. Bu sayfalar Standart, Additional, Win32, Sistem, İnternet, Data Acces, Data Controls, MIDAS, Decision Cube, Qreport, Dialogs, Win 3.1, Samples ve Active X sayfalarıdır. İstenirse bu sayfaların ve sayfalardaki bileşenlerin yerleri değiştirilebilir. Yeni bileşenler eklenebilir yada var olan bir bileşen, Bileşen Paletinden çıkarılabilir. Bileşen Paleti üzerindeki bileşenlerin ne olduğu hakkında bilgi sahibi olabilmemiz için, ilgilendiğimiz bileşenin üzerine faremizi götürerek birkaç saniye faremizi hareket ettirmeden beklersek o bileşenin adıyla ilgili küçük bir açıklama görebiliriz.

     Şimdi bileşen sayfaları hakkında kısa açıklamalar yapalım.

Standart: Bu sayfada Windows tabanlı bileşenler arasında en fazla kullanılanların bir listesini görebiliriz. Bu bileşenler birçok Windows uygulamasında görebileceğimiz standart bileşenleri kapsamaktadır.

Additional: Bu sayfada karşılaşacağımız bileşenler, Windows tabanlı her uygulamada göremeyeceğimiz bileşenlerdir. Bunlardan bazıları oldukça kullanışlıdır. Bunlar Tshape, Timage gibi grafik tabanlı bileşenlerde vardır.

Win32: Bu sayfada 32-Bit Windows’la birlikte gelen bazı bileşenleri kullanabilmek için Delphi tarafından hazırlanan sarmalayıcı bileşenlerde vardır.

Data Acces: Bu sayfalardaki bileşenler yardımıyla sorgulama, veri tabanı ve tablo bağlantıları yapılabilir.

Data Controls: Bu sayfadaki bileşenler sayesinde tablolarımızdaki kayıtlara ait bilgileri ekran üzerindeki bileşenlerle ilişkilendirilmiş oluruz.

MIDAS: Bu sayfadaki bileşenlerle, DCOM ya da CORBA standardına uygun programlar yazmamız mümkün olmaktadır.

Win 3.1: Bu sayfada Windows 3.1’de kullanacağımız bileşenler yer almaktadır. Buradaki bileşenlere benzer bileşenleri Win 32 sayfasında kullanabiliriz.

Dialogs: Bu sayfada Dosya Aç, Yazıcı Ayarları, Dosyayı Sakla gibi windows uygulamalarında sıkça karşılaşılan bileşenler bulabiliriz.

System: Bu sayfada windows sisteminin bazı özellikleriyle ilgili bileşenlere sahiptir.(DDE ve OLE’ye ait bileşenler gibi)

Qreport: Bu sayfa üzerindeki bileşenler sayesinde görsel olarak raporlar yaratabilir ve baskı önizleme özelliğini, programın çalışma aşaması dışında, geliştirme aşamasında da kullanabiliriz.

Active X: Bu sayfada başka programlama dilleriyle oluşturulan Active X bileşenlerine ait örnekler vardır.

Decision Cube: Bu sayfada OLAP fonksiyonlarıyla ilgili bileşenler vardır.

Samples: Bu sayfada, Delphi içinde yazılan örnek bileşenler vardır.

     PROGRAM BLOKLARININ YAPISI

    Delphide bloklar iki parçadan meydana gelmektedir. Bunlardan birincisi Değişken, sabit, tip vb. tanımlama bloğu, diğeri ise program komutlarının doğrudan tanımlandığı bölümdür.
    Tanımlama bloklarının yapısı:

  • Prosedür/fonksiyon tanımlama bloğu
  • Değiken tanımlama bloğu
  • Sabit tanımlama bloğu
  • Tip tanımlama bloğu
  • Kod bloğu

UNİT BLOK YAPISI

    Bir unit tanımlama ve deyim bölümlerinden meydana gelir.
     

  Unit unit1;
    interface
    uses    .......

    type
        tform1 = class
        ...........
        pro...
        func..
        private
        ..
        public
   end;
    var

        form1.tform1;
   implementation
    {$R *.DFM}
    ........
    ........
    end.            

PUBLİC ve PRİVATE Deklarasyon

    Yeni bir form oluşturulduğu zaman delphi o forma ait unit içerisine boş olan public ve private alanları koyar.
    Public bölümü şu amaçlarla konulur.
    1-) Diğer unitlerin nesnelerinin içindeki metodların ulaşabileceği veri alanları deklare edilir.
    2-) diğer unitlerin nesnelerinin ulaşabileceği metodlar deklare edilir.
    Private bölümü şu amaçlarla konulur.
    1-) Sadece içinde bulunulan unitin metodlarının erişeceği veri alanları deklare edilir.
    2-) Sadece içinde bulunulan unitin nesnelrinin erişeceği metodlar deklare edilir.
                 

Değişkenler                                                                                     Mza WebKURS 2000-Delphi

Değişken Kuralları        

Değişkenler tanımlanırken şu şartlar göz önüne alınmalıdır.

  • Değişken adları en fazla 63 karakter olmalıdır.

  • Değişken adları tamamen ingiliz alfabesi olmalıdır. Rakamda olabilir. Adlar sayı ile başlamaz.

  • Değişken adları sembol içermez (@$%&)

  • Delphi komutları değişken adı olarak kullanılmamalıdır.

  • Değişken tanımlama işlemleri var bloğunda yapılmalıdır.

VERİ TİPLERİ        

    Delphi’da program içerisinde kullanılan bütün değişkenler tipleri ile beraber tanımlanmalıdırlar. Değişken, sabit ve tip tanımlamaları için Var, Const ve Type tanımlama blokları kullanılır. Kullanılan Tipler:

Tamsayı Tipler          

            Tamsayı, değişken ve sabitleri tanımlamak için kullanılan tiplerdir. Bu değişken ve sabitlere ondalıklı değer aktarılamaz.  Tamsayı Tipler:

Değişken Sınırları Kapasite
ShortInt -128 ile 127 1 Byte
SmallInt -32768 ile 32767 2 Byte
LongInt -2147483647 ile 2147483647 4 Byte
Integer -2147483647 ile 2147483647 4 Byte
Byte 0 ile 255 1 Byte
Word 0 ile 65535 2 Byte
Cardinal 0 ile 2147483697 4 Byte
Int64 -9x1018 ile 9x1018
LongWord 0 ile 4294967295
Variant Hem Tamsayı Hem String 16 Byte

Gerçek Sayı Tipler (REAL)        

                Ondalık değişken ve sabitleri tanımlamak için kullanılır. Gerçek sayı tipleri aşağıda verilmiştir.

 

Değişken Sınırları Kapasite
single 1.5x10-45 ile 3.4x1038 4 Byte
real48 2.9x10-39 ile 1.7x1038 6 Byte
real ve double 5.0x10-324 ile 1.7x10308 8 Byte
Extended 3.4x10-4932 ile 1.1x104932 10 Byte
Comp -263+1 ile 263-1 8 Byte
Currency -922337203685477.5808 ile 922337203685477.5807 8 Byte

Boolean Tip           

    Boolean

                    True ve False değerlerinden birini içerir. Hafızada 1  byte yer kaplar. Bir ifadenin doğru yanlış olduğunu veya evet hayır değerlerinden birini aldığı durumlarda kullanılır.

Karakter Tipleri      

    Char

                    Bir karakter içerebilen 1 byte'lık veri tipidir. Bu tip değişkenler sadece bir karakter barındırabilirler.

  AnsiChar

                    Char tipi ile aynıdır.

  WideChar

                    Bu tip 2 byte'lık bir karakter tipidir ve uzak doğu dillerinde kullanılır.

  String Tipler      

    ShortString

                    255 karaktere kadar karakter ataması yapabilen veri tipidir. Bellekte karakter sayısı +1 byte yer kaplar. 0..255 den fazla atama yapılamaz. yapılan atamaların 255'den sonrasının kesilmesine neden olabilir.

    Ansistring

                    Bu tip stringler dinamiktir. Belli bir sınırı yoktur.

    String

                    Ansistring tipi ile aynıdır.

   Pchar

                    64 kbyte'a kadar atama yapılabilen sonu #0 karakteri ile biten string veri tipidir. 

Dizi (Array) Tipi           

    Dizi tanımı var bloğunda aşağıdaki gibi tanımlanır.

Var

       Dizi_Adi:array[altsınır..üstsınır] of tip

   Örneğin 100 elemanlı bir sizi şöyle tanımlanabilir.

Var

       Sayilar:array[1..100] of integer;

    Dizi elemanlarına [ ] parantezi ile ulaşılabilir.

                            Sayilar[1]:=1;

   Dizilerin alt ve üst sınırlarını Low ve High fonksiyonları ile  öğrenebiliriz.

    Diziler tek boyutlu olduğu gibi çok boyutlu da olabilirler. N boyutlu bir dizi şöyle tanımlanabilir.

var

       dizi_adi:array[altsınır..üstsınır, altsınır..üstsınır.....................altsınırN..üstsınırN] of tip;

Dinamik Diziler      

   Boyutunun derleme sırasında belirlenmesi gerekmeyen dizilere dinamik dizi denir ve program çalışırken dizinin boyutu belirlenir.

Var

        dizi_adi: array of integer;

Pointerler       

    Pointerler gerçekte bir değeri değil bir değerin bulunduğu adresi gösterirler. Eğer pointer'in nasıl bir bilgiyi göstereceği belli ise aşağıdaki pointer tiplerinden birini kullanabiliriz.

PAnsiString

                    AnsiString tipinde bir değişkeni gösterecek pointer.

PByteArray

                    TbyteArray tipinde bir değişkeni gösterecek pointer. Çoğunlıkla bellekte ayrılmış bölgelerdeki her byte ulaşabilmek için kullanılır.

PCurrency

                    Currency tipinde bir değişkeni gösterecek pointer.

PExtended

                    Extended tipinde bir değişkeni gösterecek pointer.

PShortString

                    ShortString tipinde bir değişkeni gösterecek pointer.

PWordArray

                TWordArray tipinde bir değişkeni gösterecek pointer. Çoğunlukla bellekte ayrılmış bölgelerdeki her worde (2 Byte) ulaşabilmek için kullanılır.

    Bunların haricinde herhangi bir tip veya değişken için ^ karakteri kullanılarak kolayca pointer tanımlanabilir.

Var

      P:^integer;

Pointerin Barındırılacağı Adres         

    Pointer tipler gerçekte bir değeri değil adresi barındırırlar. Bu yüzden hangi adresi barındırdıkları belirlenmelidir. Bu adres belirleme işlemi @ karakteri ile yapılır. 

Var

        i:integer;

begin

          p:=@i;

end;

Pointerin Gösterdiği Değer        

    Bir pointerin aldığı adreste bulunan değeri ise ^ karakteri kullanarak öğrenebiliriz.

Var

        i:integer;

begin

          p:=@i;

          showmessage(inttostr(p^));

end;

Yeni Veri Tipleri Tanımlamak             

Sayılabilir Tipler    

    Bu tip değişkenin alabileceği değerlerin belli olduğu durumlarda okuma kolaylığı sağlanması için kullanılır. Bu tip type bölümünde tanımlanır.

Type

        TipAdi:(değer1, değer2, değer3...........n);

Type

         Bolumler:(Bilgisayar,muhasebe,YapıRessamlığı)

    Bu tip program içerisinde şu şekilde kullanılır.

Var

        bolum:bolumler;

    Bu tiplere atama iki şekilde yapılır.

                bolum:=succ(bolum);

                bolum:=bolumler(integer(bolum)+1);

Aralık sınırlı Tipler   

    Bir alt sınırlı tip tanımlamak için tanımlanacak aralığın min ve max değerine ihtiyaç duyulur. tanımlama işlemi yine type kısmında yapılır.

Type

         TipAdi=min..max;

Type

         dakika=0..59;

var

          a:dakika;

Küme Tipleri

    Matematikte bildiğimiz kümelerin karşılığı olan tiptir. bu tipte tanımlanan değişkenler üzerinde küme işlemleri   yapılabilir. type kısmında tanımlanabilir.

Type

         kume=set of tip;

Type

        harfkume=set of 'a'..'z';

var

        h:harfkume;

Kayıt Tipler

    Alt alan olarak adlandırılan 1’den fazla ifadenin oluşturduğu yapıdır. Bu tip ile farklı tipte birden fazla alan bir isim altında tanımlanabilir. Record içerisinde tanımlanan her alanın bir ismi vardır ve bu isimler birbirinden farklı olmak zorundadır. Ancak, bu isimler ile aynı olan başka tanımlamalar bu tip dışında kullanılabilir. Record tipinde olan veriler type bölümünde RECORD-END bloğu içerisinde tanımlanabilirler.

Type

        KayıtTipAdı = Record

        Alanadı1 : Tip adı;

        Alanadı2 : Tip adı;

               ..........

end;

    Yazılımdan da görüldüğü gibi her RECORD bloğu içerisinde birden fazla alan tanımlanabilir. Her record tip tanımı end deyimi ile son bulur. Record içerisindeki alan isimlerinin aynı tipte olmaları durumunda aralarına virgül (,) koymak şartıyla arka arkaya yazılabilirler.

Type

      Musteri = record

      Ad, Soyad :string[15];

      Adres :string[40];

      Telefon :string[12];

      Borc :LongInt;

end;

Var

      Mus:musteri;

    Verilen tip ismi (Musteri) özel bir tip olarak kabul edilir. Bu tip adı, real, integer gibi bir tip durumunda ve değişkenleri tanımlamada kullanılır. Tanımlamada kullanılan değişken record tipi içerisinde belirtilen bütün alt alanları temsil eder. Yukarıda tanımlanan musteri tipinde bir değişken tanımlamak için var değişken tanımlama bloğu kullanılır.

    Bu tanımlama ile musteri kayıt yapısı içerisinde yer alan alanların, icra bölümünde işleme alınması sağlanır. Bunun için mus değişken isminden yararlanılır. Mus değişkenine bağlı alt alanları kullanmak için; bu değişken ismi ile alt alan ismi arasına nokta(.) konur. Mesela Ad ve Soyad alanlarına bilgi atmak için;

Begin

Mus.Ad := ‘Mehmet Zahit’;

Mus.Soyad := ‘Aydın’;

şeklinde tanımlamalar yapılır. Record tipindeki veriler daha çok rasgele erişimli dosyalarda kullanılır. Dosyalara bilgi girişi ve dosyadan bilgi okuma işlemlerinde kayıt yapısını oluşturan her alanın tektek yazılması yerine, bütün alanları kapsayan bir değişken isminin yazılması yeterli olacak ve kullanımda büyük bir kolaylık sağlayacaktır. Record’u oluşturan alanlar herhangi bir tipte olabilir. Bir record tanımı içerisinde daha önce tanımlanmış olan başka bir record ismi, alt alana ait bir tip ismi olabilir.

İşlem öncelikleri

  • Parantez içi

  • Üs alma

  • Çarpma – bölme

  • Toplama – çıkarma

Örnek: b2-4ac formülünü delphidaki dilinde yazarsak;

B * B – 4 * A * C

                Buradaki öncelik sırası çarpma işlemindedir. İkinci öncelik ise çıkartma işlemindedir.

    Operatörler

Matematiksel Operatörler

Operatör

Açıklama

+

Toplama

-

Çıkarma

*

Çarpma

/

Bölme

Div

Tam Sayı Bölme

Atama Operatörü

:=

Atama

Karşılaştırma Operatörü

=

Eşittir

<>

Eşit Değil

<

Küçüktür

>

Büyüktür

>=

Büyük Eşittir

<=

Küçük Eşittir

Mantıksal Operatörler

And

Mantıksal And

Or

Mantıksal or

Not

Mantıksal Not

Diğer Operatörler

^

Pointer Operatörü

@

Pointer Adersi

$

Heksadecimal Op.

[ ]

Dizi Operatörü

. nokta op.

Sabit Tanımlama 

    Sabitler değişmeyen değerler içerirler. Bu değerler programın başından sonuna kadar geçerlidir. Sabit tanımlama işelmi Const bloğonda yer alır.

Const

          sabit_adi=Değeri;

İlk Değer Atama         

    Değişkenlere ilk değerin atanması ve bu değişkenin değerinin prosedürün çalışması bittikten sonra da koruması için yine const kısmına değişken tanımı yapılır.

Const

          Deg_Adi:tip=İlkDeğer;

Bir Diziye İlk Değer Atama        

Const

           Dizi_Adi:array[Altsınır..Üstsınır] of tipi = (değer1, değer2, değer3,.......);

Const

          Mevsimler:array[1..4] of string = ('İlkbahar','Yaz','Sonbahar','Kış');

Karşılaştırma ve Döngü Deyimleri             Mza WebKURS 2000-Delphi

Şartlı Çalıştırma Deyimleri

Programlar normalde satır satır çalışırlar. İstenirse belirli şartlar aranarak programın bir kısmının çalıştırılmasını veya çalıştırılmamasını sağlayabiliriz.

IF Yapısı

If şart yapısı bütün programlama dillerinde olan; bazı şartlar gerçekleşmesi durumunda ve gerçekleşmemesi durumunda ayrı-ayrı kodların çalıştırılmasına imkan veren yapıdır.

Yapısı:

If şart Then

Komutlar

Else

Komutlar;

     Şartın gerçekleşmesi halinde Then deyiminden sonraki satır işletilir. Geçekleşmemesi durumunda ise Else deyiminden sonraki satırlar işletilir. Şartın gerçekleşmemesi durumunda çalışacak Else bloğu istenirse verilmeyebilir.

If şart then

Komut;

     Buradaki komutlar birden fazla komut içeriyorsa Begin-End deyimleri kullanılmalıdır.

If şart then

Begin

Komutlar;

....

end else

begin

komutlar;

....

end;

     If yapısında Else bloğundan önce komut veya işlem sonunda noktalı virgül kullanılmaz.

Case Yapısı

     Bir değişkenin aldığı bir çok değere göre ayrı komutların çalıştırılması gereken durumlar için If yapısını kullanmak yerine Case yapısını kullanmak avantajlıdır.

Case değişken of

Durum1: komutlar;

Durum2, durum3: komutlar;

Durum4..durum7: komutlar;

.......

Durum n: komutlar;

Else

komutlar;

End;

      Burada değişken parametresi ile belirlenen değişkenin aldığı duruma göre Durum n değerinin karşısındaki komutlar işleme girer. Eğer değişkenin değeri durumlardan hiçbirine uymuyorsa else kısmındaki komutlar çalışacaktır.

     Case yapısındaki durumu karşılaştıran değişken string tipte veya kullanıcı tipte bir değişken olamaz. Bu değişken değeri sayı olarak ifade edilebilen bir değişken olmak zorundadır.

Döngü deyimleri

     Belirli bir komut parçasının belli şartlar gerçekleşinceye kadar defalarca çalışması gerekebilir. Çalışma sayısının belli olduğu durumlarda for döngüsü diğer durumlarda yani döngü sayısının değişken olduğu durumlarda ise repeat-Until, While-Do blokları kullanılır.

For döngüsü

For sayaç:=başlangıç değeri to bitiş değeri do

Begin

Komutlar;

End;

      Burada sayaç değişkeni tamsayıya çevirebilen tipte (integer,Longint, ShortInt, byte, word, boolean, Char) bir değişken olması gerekir. For döngüsü Sayaç’ın Başlangıç Değer’inden başlayarak bitiş Değerine kadar sayacı birer artırarak blok içindeki komutları çalıştırır.

     Başlangıç Değeri, bitiş Değeri den küçükse döngüye hiç girilmez.

     Sayaç’ın artarak değil azalarak çalışması için downto deyimi kullanılır.

For sayaç:=başlangıç değeri downto bitiş değeri do

Begin

Komutlar;

End;

      Başlangıç değeri, bitiş değerinden büyükse döngüye hiç girilmez.

While-do

     Bir şart gerçekleştiği sürece çalışması gereken program bloklarında kullanılır.

While şart do

Begin

Komutlar;

End;

     Burada; şart gerçekleştiği sürece döngü çalışmaya devam eder.

     For döngüsünün getirdiği bazı kısıtlamalar vardır. Sayaç değişkenimiz tamsayı olmak zorunda ve birer artıp/azalmak zorunda idi. Bu sınırlamaları açmak için while-do döngüsünü For döngüsüne uyarlayabiliriz.

For sayaç:=başlangıç değeri to bitiş değeri do

Begin

Komutlar;

End;

     Aynı işi while-do ilede yaparsak

Sayaç:=başlangıç;

While sayaç<= bitiş Değeri do

Begin

Komutlar;

Sayaç:=sayaç+1;

End;

     Artımı birden fazla yapmak içinde

Sayaç:=sayaç+1; yerine sayaç:=sayaç+art; kullanabiliriz.

Repeat-Until

      Bu döngü yapısıda şart gerçekleşene kadar çalışması gereken program bloklarında kullanılır.

Repeat

Komutlar;

Until şart;

     While-do döngüsünden faklı olarak döngüye girerken değil çıkarken şart kontrol edilir.

Döngü Kontrol İfadeleri

     Bazen döngü bitmeden döngüden çıkmak gerekebilir veya bazı durumlarda döngü içindeki bir miktar kodun çalıştırılması istenebilir. Bu gibi durumlarda döngü kontrol deyimlerini kullanmak gerekir.

Break

     Break prosedürü; for, while veya Repeat döngülerinden birinde bazı şartların gerçekleşmesi durumunda döngüden çıkmak için kullanılır.

Continue

     Continue prosedürü; for, while veya Repeat döngülerinde bazı şartlar gerçekleştiğinde döngünün sonuna gitmeden tekrar başa dönmesini sağlar.

Exit

     Exit prosedürü mevcut program bloğundan, bloğun sonuna ulaşmadan çıkmaya yarar. Çalışan blok bir prosedür ise prosedürden, bir döngü veya şart bloğu ise p bloktan çıkar.

Halt

     Halt prosedürü programdan çıkışı sağlar. Burada istenirse bir parametre ile çıkış kodu programdan geriye dönebilir.

Mesaj Fonksiyonları                                                                     Mza WebKURS 2000-Delphi

INPUT BOX               

Bu fonksiyon, Delphi projesinin aktif Form veya penceresinden bağımsız olarak bir dialog kutusu içerisinde kullanıcının dışarıdan bilgi girmesine yarar.

Kullanımı:

InputBox(‘Dialog Kutu Başlığı’,’Metin Kutu Başlığı’,’Varsayılan Bilgi’);

                               1                           2                           3

1-) Bu parametre ile dialog kutusunun başlığı belirtilir.

2-) Bilgi girişi için dialog kutusunda hazırlanan metin kutusunun başlığı girilir.

3-) Metin kutusuna varsayım olarak getirilmek istenen bilgi varsa metin kutusuna hazır olarak getirilmelidir.

Örnek:

1-) İlk olarak Unit kullanma bölümüne [DIALOG] eklenir.

2-) Değiken tanımlama bölümüne ise [Ad:string;] eklenir.

3-) Aşağıdaki İşlemler yapılır.

Ad:=InputBox(‘Bilgi Girişi’,’Adınız..’,’’);

 INPUTQUERY               

secilen=InputQuery(başlık,mesaj,girilen)

Başlık : Pencerenin başlığını belirler.

Mesaj : Pencerede çıkacak olan mesaj belirlenir.

Girilen : Pencere içinde yazılması istenilen varsayılan değer belirlenir, hem de kullanıcının girdiği değer bu değişken ile öğrenilir.

Fonksiyona geri dönen değer True ise Ok düğmesinin seçildiği False ise Cancel düğmesinin seçildiği belirlenir.

 SHOWMESSAGE           

Bu fonksiyon, Delphi projesinin istenilen her bölümünde kullanılabilmektedir.

Kullanımı:

ShowMessage(‘Varsayılan Bilgi’);

Örnek:

ShowMessage(Ad);

MESSAGEDLG (  )   

Ekranın ortasında bir mesajj penceresi görüntüler. Bu pencere ShowMessage prosedürü ile oluşturulan mesaj penceresinden farklı olarak kullanıcıdan onay alması gereken durumlarda kullanılır.

Secilen:= MessageDlg(Mesaj;Düğme;HelpCtx)

Secilen:= MessageDlgPos(Mesaj;Tip;Düğme;HelpCtx,x,y)

Mesaj : Pencerede çıkacak olan mesaj belirlenir.

Tip : Mesaj penceresinin tipini belirler.

Mesaj Pencere Tipleri:

MtWarning Dikkat
MtError Hata
MtInformation Bilgi Verme
MtConfirmation Bilgi İsteme

Düğme : Pencerede çıkacak olan düğmeyi belirler.

Düğmeler

MbYes   MbNo
MbOk    MbCancel
MbAbort   MbRetry     MbIgnore
MbHelp
MbAll

Not: Düğmelerin hangilerinin bulunacağı “[   ]” arasında belirlenir.

Örnek : [mbYes,mbCancel]

Birden fazla düğme görüntülemek için;

MbOkCancel mbAbortRetryIgnore mbYesNoCancel

HelpCtx : Yardım dosyasındaki ilgili konu numarası belirlenir.

MessageDlg fonksiyonunda kullanıcının seçtiği düğmeyi yani çıkış değerini belirlemek için şöyle değerler kullanılır.

Düğme Çıkış Değerleri

MrYes  MrNo
MrOk   MrCancel
MrAbort    MrIgnore      MrRetry
MrAll
MrHelp

APPLİCATİON.MESSAGEBOX (  )

Windows mesaj kutuları konusunda programlara standart pencereler sunar.

Secilen:= Application.MessageBox(Mesaj;Başlık;Tip)

Mesaj : Gösterilecek mesajı ifade eder.

Başlık : Mesaj Penceresinin başlığını ifade eder.

Tip : Mesaj Penceresinde gösterilecek düğme, ,con varsayılan düğme öncelik sırasını temsil eder.

Tip= Düğme + Icon + Varsayılan Düğme + Öncelik Sırası

Düğme:

Düğme kodları ve Manaları

S. Kodu Harf kodu Açıklama
0 MB_Ok Tamam
1 MB_OkCancel Tamam ve İptal
2 MB_AbortRetryIgnore İşlemi Durdur, Yeniden Dene Gözardı Et
3 MB_YesNoCancel Evet, Hayır, İptal
4 MB_YesNo Evet, Hayır
5 Mb_RetryCancel Yeniden Dene, İptal

Icon:

Düğme İconları ve Manaları

S. Kodu Harf kodu Açıklama
16 MB_IconStop Dur
32 MB_IconQuestion Soru
48 MB_IconExclamation Dikkat
64 MB_IconInformation Bilgi

 Varsayılan düğme:

Varsayılan Düğme Kodları ve Manaları

S. Kodu Harf kodu Açıklama
0 MB_Defbutton1 İlk Düğme
256 MB_Defbutton2 İkinci Düğme
512 MB_Defbutton3 Üçüncü Düğme

Öncelik sırası

Öncelik sırası

S. Kodu Harf kodu Açıklama
0 MB_TaskModal Sadece çalışan program cevap verilene kadar askıya alınır.
4096 MB_SystemModal Cevap verilene kadar çalışan bütün programlar askıya alınır.

Geri dönen kullanıcının seçtiği değerler şınlardır.

Geri dönen değerler

IDOK Tamam
IDCANCEL İptal
IDABORT İşlemi Durdur
IDRETRY Yeniden Dene
IDIGNORE Gözardı Et
IDYES Evet
IDNO Hayır

Standart Fonksiyonlar                                                               Mza WebKURS 2000-Delphi

Matematiksel ve Lojik Fonksiyonlar

Matematik ve lojik işlemleri yapmak için gerekli komutların tamamı Delphi'de mevcut değildir. Ancak mevcut komutlarla olmayan komutları türetmek mümkündür.

Matematiksel işlemleri yapmak için gerekli bir çok fonksiyon math ve system unitlerinde tanımlanmıştır. Math unitinde tanımlanmış fonksiyonları kullanabilmeniz için formunuzdaki Uses satırına math unitini eklemeniz gerekir.

Floor, Ceil, Int, frac (Yuvarlama fonksiyonları)

Function floor(x:extended):integer;

Function Ceil(x:extended):integer;

Function int(x:real):real;

(İlk iki fonksiyonun kullanılabilmesi için Uses satırına Math eklenmesi gerekir.)

floor fonksiyonu sayıyı aşağı doğru yuvarlatırken, ceil fonksiyonu yukarıya doğru yuvarlar.

Int fonksiyonu sayını tam kısmını verirken, ceil fonksiyonu sayının ondalık kısmını verir.

Power, IntPower, Sqr, Exp (Üst işlemleri)

Function power(taban,üst:Extended):Extended;

Function Intpower(taban:Extended; üst:integer):extended register;

Function Ldexp(katsayı:Extended; üst:integer):Extended register;

Function Sqr(X:extended):Extended;

Function exp(X:Real):Real;

(İlk üç fonksiyonun kullanılabilmesi için uses satırına Math eklenmesi gerekir.)

Xy işlemini yapabilmek için power fonksiyonu kullanılır. Eğer üst tamsayı ise IntPower fonksiyonu da kullanılabilir.

Katsayı*2üst işlemini yapmak için Ldexp fonksiyonu kullanılabilir. Yani bu fonksiyon iki sayısının üstlerini almak için kullanılır.

Ldexp(5,3) şu işleme denk gelir. 5*23

Aynı işlem 5*power(2,3) şeklinde yapılabilmektedir ancak Ldexp fonksiyonu bu işlemi daha hızlı yapar.

Ex işlemini yapabilmek için ise exp fonksiyonu kullanılır.

Sqr fonksiyonu ise bir sayının karesini almak için kullanılır.

Sqrt(Karekök)

Function sqrt(x:extended):extended;

X sayısının karekökü yukarıdaki fonksiyonla alınabilir. Daha yüksek dereceden kökler ise yine power fonksiyonu ile alınabilir.

Hypot(Hipotenüs)

Function hypot(x,y:extended):extended;

(Fonksiyonun kullanılabilmesi için Uses satırına Math eklenmesi gerekir.)

x ve y kenarları verilen dik üçgenin hipotenüsünü hesaplar. Yaptığı işlem aşağıdaki işlemlere denktir.

Sqrt(x*x+y*y);

Abs(Mutlak Değer)

Function Abs(x);

Bir sayını mutlak değerini (pozitifini) almak için kullanılır.

LogN, Log2, Ln (Logaritma)

Function LogN(Taban, x:Extended):Extended;

Function Log2(x:Extended):extended,

Function Ln(x:real):real;

(İlk iki fonksiyonun kullanılabilmesi için uses satırına math eklenmesi gerekir.)

Ln, doğal logaritmayı (e tabanındaki logaritma), Log2, 2 tabanındaki logaritmayı, LogN ise taban parametresi ile verilen logaritmayı bulur.

LogN(10,x) şeklinde kullanılırsa 10 tabanındaki,

LogN(5,x) şeklinde kullanılırsa 5 tabanındaki logaritmayı verir.

Pi(Pi Sayısı)

Function pi:extended;

Hiçbir parametresi olamayan bu fonksiyon matematikteki pi sayısını verir. Geri dönen değer 3.1415926535897932385 sayısıdır.

DegToRad, GradToRad, RadToDeg, RadToGrad (Açı Dönüşümleri)

Function degtorad(açı derece:Extended):Extended;

Function gradtorad(açı grad:Extended):extended;

Function radtodeg(açı radyan:Extended):extended;

Function radtograd(açı radyan:Extended):Extended;

(Fonksiyonların kullanılabilmesi için Uses satırına Math eklenmesi gerekir.)

DegToRad fonksiyonu derece olarak verilen bir açıyı radyana çevirir. Fonksiyonun yaptığı iş açı grad *PI / 180 işlemine eşittir.

GradToRad fonksiyonu gradyan olarak verilen bir açıyı radyana çevirir. Fonksiyonun yaptığı iş açı grad * PI / 200 işlemine eşittir.

RadTodeg fonksiyonu radyan olarak verilmiş açıyı dereceye çevirir. Fonksiyonun yaptığı iş açı radyan * 180/PI işlemine eşittir.

RadToGrad fonksiyonu radyan olarak verilmiş açıyı gradyana çevirir. Fonksiyonun yaptığı iş açı radyan * 200/PI işlemine eşittir.

RadToCycle, CycleToRad (Açı Periyodu)

Function RadToCycle(Radisns:Extended):Extended;

Function CycleToRad(Cycles:Extended):Extended;

(Fonksiyonların kullanabilmesi için Uses satırına Math eklenmesi gerekir.)

RadToCycle fonksiyonu radyan olarak verilen açının periyodunu verir. Yani birim çember üzerinde kaç tur attığını belirler. Açı / (2PI) işlemine eşittir.

Diğer fonksiyon ise açı * 2PI işlemine eşittir.

Cos, Sin, Tan, Cotan (Trigonometrik fonksiyonlar)

Function cos(x:Extended):Extended;

Function Sin(x:Extended):Extended;

Function Tan(x:Extended):Extended;

Function Cotan(x:Extended):Extended;

(Son iki fonksiyonun kullanılması için Uses satırına Math eklenmelidir.)

Trigonometrik fonksiyonlar yukarıdaki fonksiyonlar kullanılır. Sekant ve Cosenant işlemleri sin ve Cos cinsinden yazılabileceği için bunlarda yapılabilir.

Sekant:=1/Cos(x);

Cosenant:=1/Sin(x);

ArcCos, ArcSin, ArcTan, (Ters Trigonometrik Fonksiyonlar)

Function ArcCos(x:Extended):Extended;

Function ArcSin(x:Extended):Extended;

Function ArcTan(x:Extended):Extended;

(İlk iki fonksiyonun kullanılabilmesi için Uses satırına Math eklenmesi gerekir.)

Ters trigonometrik fonksiyonlar için yukarıdaki fonksiyonlar kullanılır. Bu fonksiyonlardan geriye dönen değer, derece cinsinden değil Radyan cinsindendir. ArcSin, ve ArcCos fonksiyonlarında giren parametre –1, +1 arasında olmalıdır. Özel olarak , sonsuzun ters tanjantı PI/2 olduğundan ve sonsuz sayısıda bilgisayara girilemediğinden ArcTan fonksiyonu geliştirilmiştir. Bu fonksiyon ArcTan(y/x) işleminin sonucunu verir ve x=0 olarak girilirse sonsuz derecenin ters tanjantı bulunmuş olur. Ters Sekant, Ters Cosenant ve Ters Cotanjant fonksiyonları ise yukarıdaki fonksiyonlardan aşağıdaki işlemlerle türetilebilir.

Artcosec:= arctan(x/sqrt(x*x-1))+ (abs(x)/x-1) *1.5708;

Arcsec:= arctan(x/sqrt(x*x-1))+ (abs(x)/x-1)/2 *1,5078;

Arccot:=arctan(x)+1.5708;

Cosh, Sinh, Tanh (Hyperbolik fonksiyonlar)

Function cosh(x:e extended):extended;

Function sinh(x: extended):extended;

Function tanh(x:extended):extended;

(Bu fonksiyonların kullanılması için Uses satırına Math gerekir)

Hyperbolik işlemleri yapmak için yukarıdaki fonksiyonlar tanımlanmıştır. Hyperbolik Sekant ,Hyperbolik Cosenant ve Hyperbolik cotanjant fonksiyonları ise aşağıdaki gibi türetilebilir

Sech:= 2/exp(x)+exp(-x));

Cosech:=2/(exp(x)-exp(-x));

Cotanh:=(exp(x)+exp(-x))/exp(x)-exp(-x));

ArcSinh, ArcCosh, ArcTanh (Ters Hyperbolik Fonksiyonlar)

Function ArcSinh(x:Extended):Extended;

Function ArcCosh(x:Extended):Extended;

Function ArcTanh(x:Extended):Extended;

(Bu fonksiyonların kullanılabilmesi için Uses satırına Math eklenmesi gerekir.)

Ters Hyperbolik işlemleri yapmak için yukarıdaki fonksiyonlar tanımlanmıştır. Ters Hyperbolik Sekant, Ters Hyperbolik Cosenant ve Ters Hyperbolik Cotanjant fonksiyonları ise aşağıdaki gibi türetilebilir.

Asech:=Ln((sqrt(-x*x+1)+1)x);

Acosech:=Ln((abs(x)x*sqrt(x*x+1)+1)x);

AconTanh:=Ln((x+1)/(x-1))/2;

Poly (Polinom Fonksiyonları)

Function poly(x:Extended; const katsayılar:array of double):Extended;

(fonksiyonun kullanılabilmesi için Uses satırına math eklenmesi gerekir.)

Delphi’de a0+a1x+a2x2+a3x3+........+anxn şeklinde fonksiyonların sonucu poly Fonksiyonuyla hesaplanabilir.

Fonksiyondaki katsayılar a0.....an katsayılarını temsil eder.

Shl, Shr (Bitleri Sola ve Sağa Kaydırma)

Shl ve Shr komutları bitler üzerinde detaylı işlemler yapabilmek için gerekli komutlardır.

Shl ve shr komutlarının yaptığı işlerden biri çok hızlı çarpma ve bölme yapmasıdır.

Dec, Inc (Artırma ve Azaltma)

Dec ve Inc prosedürleri toplama ve çıkarma işlemi yapmalarına karşın normal toplama ve çıkarma işlemine göre daha avantajlıdır.

X:=x+1; satırı ile Inc(x); satırı aynı işi yapmalarına karşın farklı yöntemleri kullanırlar. İkinci yöntem birincisine oranla çok daha hızlıdır. Özellikle döngülerdeki artım ve azaltmalarda Inc ve Dec fonksiyonların kullanımı döngü hızını artıracaktır.

Inc(x);{x=x+1};

Inc(x,5);{x=x+5);

Dec(x);{x=x-1};

Dec(x,5);{x=x-5};

Buralarda kullanılacak sayılar tamsayı olmalıdır.

Mod (Bölmede Kalan)

X mod y;

Mod operatörü x sayısının y sayısına bölümünde kalanı verir.

Bu operatör bir sayının katlarını bulmak için kullanılır. Örneğin her 10 işlemde bir başka bir işlem yapmak için işlem sayısını tutan değişken 10 sayısı ile mod işlemine tabi tutulur. Sonuç sıfır ise değişken 10 sayısının katıdır. (0,10,20 vb)

Sum, SumOfSquares, SumsAndSquares, Mean (dizi toplamı ve ortalama)

Function mean(const dizi:array of double):Extended;

Function sum(const dizi:array of double):Extended register;

Function SumOfsquares(const dizi:array of double):Extended;

Procedure sumsAndsquares(const dizi:array of double; var sum, sumofsquares:Extended)register;

(fonksiyonların kullanılabilmesi için Uses satırına Math eklenmesi gerekir.)

Mean fonksiyonu dizi parametresi ile fonksiyona giren dizideki elemanların aritmetik ortalaması bulur. Yani dizideki bütün elemanları topladıktan sonra eleman sayısına böler.

Sum fonksiyonu Dizi parametresi ile fonksiyona giren dizideki elemanların toplamını bulur.

SumOfSquares fonksiyonu dizi parametresi ile fonksiyona giren dizideki her elemanın karesini alarak toplamını bulur.

Sumsandsquares fonksiyonu ise Sum ve sumofsquares fonksiyonunun yaptığı işi tek seferde yapmaya yarar. Dizi parametresi ile fonksiyona giren dizideki elemanların toplamını ikinci parametre ile karelerinin toplamını ise üçüncü parametre ile verir.

MinValue, MinIntValue, MaxValue, MaxIntValue (En büyük ve en küçük değer)

Function MinIntValue(const data:array of integer):integer;

Function MaxIntValue(const data:array of integer):integer;

Function MinValue(const data:array of double):double;

Function MaxValue(const data:array of double):double;

(Fonksiyonların kullanılabilmesi için Uses satırına Math eklenmesi gerekir.)

Bu fonksiyonlar bir dizi içindeki en büyük en küçük sayıyı verir. MinIntValue ve MaxIntValue fonksiyonları tam sayı dizilerde diğerleri ise reel sayı dizilerde kullanılır.

Hi, Lo (Yüksek ve Düşük Seviyeli Byte)

Bazen bir sayının yüksek ve düşük seviyeli baytlarını ayırmak gerekir.

Hi ve Lo fonksiyonları sayının yüksek ve düşük seviyeli kısımlarını ayrı ayrı verir.

High, Low (Üst ve Alt Sınırla)

High ve Low fonksiyonları bir sayı tipi için kullanıldığında o tip alabileceği en büyük ve en küçük değerleri verirler.

Rasgele Sayı Üretim Fonksiyonları

Daha çok oyunlarda kullanılan rasgele sayı üretme işlemleri Delphi’de Random fonksiyonu ile yapılır.

Random

Function Random[(Üst sınır:integer)];

Fonksiyon 0 ile üst sınır arasında rasgele sayı üretir. Üst sınır parametresi verilmezse 0 ile 1 arasında sayı üretir.

Randomize

Randomize fonksiyonunun yaptığı tek iş rasgele sayı üretim fonksiyonunun başlangıç referansını belirler. Fonksiyondan herhangi bir değer geri dönmez. Yalnız Random fonksiyonunun ürettiği sayılar etkiler.

Tip Değiştirme Fonksiyonları

Bazen bir sayıyı bir string içinde veya bir reel sayıyı tamsayı gibi kullanmak gerekir.

Sayıları stringe çevirmek

IntToStr(Sayı)

Tamsayı tipinden olan bir değişken, string bir değişkene atanmadan önce bu fonksiyonla stringe çevrilmelidir.

IntToHex (Sayı, basamak sayı)

Sayi parametresi ile verilen sayıyı basamak sayısı kadar basamağı olan Hexadecimal (Onaltılık sistem) sayıya çevirerek sonucu geriye string olarak gönderir.

FloatToStr (Sayı)

CurrtoStr (Sayı)

FloatToStr fonksiyonu herhangi bir tipteki reel sayıyı stringe çevirir. Sonucun sadece 15 basamağı alınır.

CurrToStr fonksiyonu ise Currency tipindeki sayıları 19 basamağa kadar çevirir. Yani daha hassastır.

 

FloatToStrF(Sayi,Format,Hassasiyet,Ondalik)

CurrToStr(Sayi,Format,Hassasiyet,Ondalık)

FloatToStrF fonksiyonu herhangi bir tipteki reel sayıyı istenen format ta stringe çevirir.

CurrToStrF ise aynı şekilde çalışır.

Hassasiyet

Bu parametre ile sayıdaki kaçıncı basamağa kadar tam çevirme işlemi yapılacağı belirlenir.

Ondalik

Bu parametre virgülden sonra kaç basamağın gösterileceğini belirler.

Format

Bu parametreye aşağıdaki değerler verilerek sayının nasıl çevrileceği belirlenir.

FfExponent: Format parametresine verilen bu değer sayının üstel formda gösterileceğini belirler.

FfFixed: Sayı ondalık formatta gösterilir.

Ffnumber: Sayı ondalık formatta ve binler hanelerine ayrılarak gösterilir.

FfCurrency: Sayı para formatına dönüştürülür.

FfGeneral: Sayı üstel veya ondalık formatlarından hangisine uygunsa o formatta görüntülenir.

 

FormatFloat(Format Sayi)

FormatFloat fonksiyonu Extended tipindeki bir sayısı istenilen biçimde string tipine dönüştür.

 

Chr(Ascii Kod)

Ascii kodu verilen sayının karakter karşılığını gönderir.

Stringleri Sayıya çevirmek

StrToInt(Str)

Str stringini tamsayıya çevirir.

StrToIntDef(Str,varsayılan)

Str stringini tamsayıya çevirir.

StrToFloat(StrSayi)

Bu stringi reel sayıya çevirir.

Val(String,Sayi,Durum)

Val prosedürü stringi herhangi tipteki bir sayıya çevirir.

Ord(Karakter)

Verilen karakterin Ascii kodunu verir.

String İşlemleri

FillChar, StringOfChar (Karakter doldurma)

FillChar(str,adet,karakter)

Str parametresi ile verilen stringi adet kadar karakter ile doldurur.

StringOfChar(Karakter,Adet)

Bu fonksiyon da adet kadar karakter den oluşan stringi oluşturur.

 

AnsiCompareText, AnsiCompareStr (Karşılaştırma)

AnsiCompareText(s1,s2)

Ansicomparestr(s1,s2)

AnsiCompareText fonksiyonu S1 stringi ile s2 stringini büyük-küçük harf ayrımı yapmadan karşılaştırır.

AnsicompareStr fonksiyonu ise bunları farklı kabul ederek karşılaştırır.

             {Devamı Var}

Mehmet Zahit Aydın Aksaray Anadolu Teknik Lisesi Bilgisayar Bölümü

Ana Sayfa