Jump to content
Son zamanlarda artan kullanıcı hesap hırsızlıkları sebebiyle tüm kullanıcılara şifre sıfırlama maili gönderilmiştir. Lütfen güveli şifreler seçiniz. Mevcut e-mail adresinize erişemiyorsanız, en aşağıdaki destek linkinden bize ulaşınız. ×

Delphi


PaRDuS

Recommended Posts

DELPHI

Delphi’ye Hızlı Bir Başlangıç

DELPHI günümüzde kullanılan en yaygın programlama dillerinden biridir. Görsel geliştirme ortamının ( Visual Development Environment –VDE ) getirdiği kolaylık ile Pascal’ın esnekliğini bir araya getirmiştir. Sadece dünyada yaygın olarak değil ülkemizde de en popüler diller arasında ön sıralarda yer almaktadır. Bunların dışında DELPHI çok genişözellik yelpazesine sahip olmasından dolayıanlatılmasıve öğrenilmesi bir programcı için yıllar alabilecek bir dildir. Özetlemek gerekirse sabır bir numaralıkuralımız olacaktır. Elimizden geldiği kadar size en iyi şekilde bu dili anlamaya çalışacağız. İsterseniz konuya hemen hızlı bir girişyapalım.

Delphi nereden nereye?

Delphi’nin temelleri 1960 yılına kadar gider ve ALGOL programlama diline dayanır. ALGOL (Algorithmic Language) programlama dillerinin dizaynında önemli bir etkisi olan bir dildir. Uluslar arasıbir komite tarafından geliştirilen, getirdiği birçok yeni kavramla Pascal programlama dilinin ve diğer birçok dilde kullanılan kavramların atasısayılır. ALGOL 60 ile geliştirilen bazıkavramlar şunlardır:

Recursion

Begin ve end anahtar sözcükleri ile komut gruplarının birbirinden ayrılması

‘Block if’ tanımlanması

Aritmetik atamalar için := sembolünün kullanılması

Noktalıvirgüller kullanarak komutların ayrılması, böylece her satırda bir komut girmek yerine programcıyıarzu ettiği bir görünümde program komutlarıdiziminde serbest bırakır.

1968 yılında yayınlanan ALGOL 68 daha güçlüama öğrenmesi daha da zor olmasıyla bilinen kavramsal bir dil geliştirildi. ALGOL 68’in karmaşıklığından doğan memnuniyetsizliğinin bir sonucu olan ALGOL W Prof. Niklaus Wirth tarafından 1964-1967 yıllarıarasında geliştirildi. 1968 yılına gelindiğinde ise ALGOL 68 yayınlanmışve Niklaus Wirth ise bu süre zarfında ALGOL W dilini geliştirmiştir. Bu dillerin modernleştirilmesi gerektiğini düşünen matematik profesörüNiklaus Wirth 1968-1972 yıllarıarasında yeni bir dil geliştirdi. Bu dile 17. yüzyılın ünlü matematikçisi ve filozofu Blaise Pascal'a hitaben PASCAL olarak isim verilmiştir.

Pascal dili ile birçok yenilik gelmiştir. Pascal'ın uluslararasıalanda kazandığıbaşarının artmasıve değişik bilgisayar sistemleri için değişik türevlerinin yazılmasızamanla bazısıkıntılara yol açamaya başlamıştır. Bunun üzerine 1980 yılında Pascal UluslararasıStandartlar Enstitüsü(ISO) tarafından standartlaştırılmıştır(Jensen ve Wirth’in raporu esas olarak hazırlanan Standart Pascal’ın tanımıISO’nun DP7185 nolu belgesinde bulunmaktadır). Amerikan Ulusal Standartlar Enstitüsü(ANSI) de kısa bir süre sonra buna benzer bir standardıkabul etmiştir.

Birçok sürümügeliştirilmişolan Pascal’ın gelişim sürecinin en önemli ayaklarıolan Turbo ve Borland Pascal olarak gösterilebilir. Borland’ın dünyaca ünlüPascal derleyicisi Turbo Pascal’ı1985 yılında duyurdu. Turbo Pascal, kullanımdaki basitliği ve gücüsayesinde, zamanın en çok sdatan derleyicisi unvanına sahipti.

Turbo Pascal beraberinde Bütünleşik Geliştirme Ortamı( Integrated Development Environment IDE) getirmişti. Bu ortam sayesinde program kodunu düzenleyebilir, derleyiciyi çalıştırabilir, hataları görebilir ve bu hataların bulunduğu satırlardaki hatalar giderilebilir. Günümüzde bu gibi işlemler artık standart haline gelmiştir.

Bunların dışında Microsoft firmasıkendi PASCAL derleyicisini geliştirmişancak yüzlerce dolara satılmaktaydı, buna karşın Borlan firmasıTURBO PASCAL’ı49 dolara satmakta idi. Bu da TURBO PASCAL’ın yıllarca sürecek başarısınıperçinlemişolacaktıve bu süreç sonunda Microsoft ürettiği PASCAL derleyicisinden vazgeçmesiyle sonuçlandı.

Turbo ve Borland Pascal’ın dilin gelişmesini sağlaya 10’na yakın sürümünden sonra, Borland 1995 yılında Pascal derleyicisinin görsel bir programlama dili halini almışversiyonu olan Delphi’yi çıkarmıştır. Delphi Pascal dilini bir çok yönüyle geliştirmiştir. Bunlardan en önemlisi Object Pascal türevlerinden farklıolan Object-Oriented (Nesneye Yönelimli Programlama) mantığının yerleştirilmesi idi. Bunun yanı sıra Görsel Geliştirme Ortamıbu dile eklenmiştir.

Günümüzde Delphi

Hızlıbir gelişim süreci geçiren Delphi 7’inci versiyonuna ulaşmışve birçok yeni özellik eklenmiştir. Bunların en belirgin olanıherkesin görebileceği gibi component sayısıinanılmaz bir sayıda artmıştır. Kullanıcılara sunulan bazısürümleri şöyledir: Delphi 7 Architect, Delphi 7 Enterprise, Delphi 7 Professional ve Delphi 7 Personal.

Daha genişbilgi için www.bimeks.com.tr ve www.borland.com adresine göz atabilirsiniz. Borland’ın sitesinden de trial sürümünüindirip deneme şansınız var. Hemen belirtelim lisanslarına göre Delphi 7 paket fiyatları150$ ile 3995$ arasında değişiyor, bu konuyla ilgili de Bimeks’in web sayfalarından bilgi alabilirsiniz. Borland Delphi 7 geçişkiti ile, geliştiricilerin beklemekte olduğu Microsoft .NET'e geçişyolunu sağlamaktadır ve en son sürümü olan 7’inci versionunu ise 10 Ağustos 2002 tarihinde piyasaya sürmüştür.

Kurulum ve Arabirim

Delphiyi kurmak için gerek tek şey Delphi CD’sinde ki Setup.exe’yi çalıştırmaktır. Bundan sonra yapmanız gerekenler basit bir program kurmaktan öteye geçmez. Aşağıda Delphi 7 Setup Launcher’ıgörebilirsiniz.

delphisetuphf4.jpg

Kurulumu gerçekleştirdikten sonra artık Delphi’nın ara yüzüne bakabiliriz. Delphi7 ara yüzü2002 başında çıkan C++Builder6’dan biraz daha geliştirilmişdurumdadır. Bundan da bahsettikten sonra gelin hep birlikte Delphi’yi tanıyalım.

Delphi’nin 4 IDE penceresi vardır. Bu pencereler Menüpenceresi, Object Inspector penceresi, Form penceresi ve Code penceresidir. Bu ana pencerelerin dışında birkaçpencere daha vardır bunlar hakkında bilgileri yeri geldikçe bahsedeceğiz.

delphi1sy1.jpg

Menüpenceresi, bütünleşik geliştirme ortamındaki ana penceredir. Buradan dosya yüklemek, bir programıderlemek ya da bir seçeneği ayarlamak gibi komutlarıbildiren birçok menübulunur. Burada bulunan menüler sırasıyla File, Edit, Search, View, Project, Run, Component, Database, Tools, ModelMaker, Windows ve Help’tir. Bu menülerin de alt menüve seçenekleri vardır. Burada bunlardan bahsetmek çok güçolacağı için şimdilik en sık kullanacağımız seçeneğe deyineyim. File -> New -> Other... bu yolu izleyerek istediğimiz her türlüprojeyi oluşturabiliriz. Aşağıda da gördüğünüz üzere bu yolu izleyerek karşımıza çıkan pencereden projemize istediğimiz bir nesneyi ekleyebilir veya yeni bir uygulama oluşturabiliriz.

delphi2tj0.jpg

Diğer bir önemli kısım ise projemizi tamamen konfigüre etmemizi sağlayan Options seçeneği bu seçeneğe ise Project -> Options... yoluyla ulaşabilirsiniz. Gördüğünüz gibi projemizin gerekli ayarlarınıbu kısımdan yapıyoruz.

delphi3dc5.jpg

Tabii bir de araç çubuklarımız mevcut. Bunlardan en önemlisi kuşkusuz Component araççubuğu. Component araççubuğunu kullanarak projemizde kullanacağımız nesneleri rahatlıkla formumuzun üzerine çizerek oluşturabiliriz. Component araççubuğu dışında Standart, View, Debug, Custom, Desktop ve Internet araççubuklarıbulunur. İkinci önemli araççubuğumuz ise Debug’tur. Debug araççubuğu yardımıile projemizi çalıştırabilir ve çalışan projemizi durdurabiliriz. Projemizi çalıştırmak için F9 kısa yol tuşunu da kullanabilirsiniz.

Object Inspector penceresi, etkin nesneyle ilişkili özelliklerin olduğu ayrıntılıbir bölümdür. Bu pencere, uygulamaların görünüşüve çalışan kod arasındaki bağlantıdır. Bu pencere üzerinde iki tane sekme vardır. Bunlar, Properties ( Özellikler ) ve Events ( Olaylar ) sekmeleridir. Properties sekmesinde kullanılabilen özellikler ve ilişkili değerler listelenir. Events sekmesinde ise bu seçili nesnenin tetikleyebileceği olaylar vardır. Olay listesi, seçilen nesneye bağlıolarak değişir.

Form penceresini ise bir sanatçının tuvali olarak düşünebilirsiniz. IDE çalışmaya başladığında bu pencere açılır ve boşbir form görüntülenir. Bütün nesneler bu form üzerine yerleştirilir. Bir uygulama oluşturmak için bu form üzerine nesneleri sürükleyip bırakabilirsiniz. Bir uygulamayıoluşturmak için kullanılan bileşenlerin çoğu, Component Palette araççubuğunda bulunur.

IDE ilk kez çalıştığında, bu pencere form penceresinin nerdeyse arkasına gizlenmiştir. Bu pencerenin durum çubuğunu içeren alt bölümüseçerek ya da View->Window List seçeneğini işaretleyip ilgili seçeneği tıklayarak, pencereyi öne getirebilirsiniz. Bu, bir metin dosyasıpenceresidir. Bütün program kodlamasıbu pencereye yapılır. Birim pencerelerine aynızamanda kod pencereleri (code windows) de denir.

Pc World

Link to comment
Share on other sites

Programımıza yeni bir form eklemek için File menüsünden New-Form menüsükullanabilir. Programda birden fazla form kullanmışiseniz bunlara erişmek için de View-Forms veya Shift F12 tuşlarınıkullanabilirsiniz.

Yeri gelmişken kısaca belirtelim. Formlar “FormAdı.dfm”şeklinde kaydedilirken, formun kaynak kodları“FormAdı.pas”ve uygulama ise “UygulamaAdı.dpr”şeklinde kaydedilirler.

Yeni bir form oluşturduğumuza göre bunu uygulamamızda nasıl kullanacağımızıgörelim. Bir formdan diğerini kullanabilmek veya işlem yapmak için “implementation”satırından sonra şu kodu eklemek gerekir “uses FormAdı”.

Bir form aktifken diğer formu ekranda göstermek için FormAdı.Show metodu kullanılır. Örneğin Form2 formunu Form1’den açmak için uses Unit2; satırınıForm1’in kod penceresinde gerekli kısma yazdıktan sonra Form2.Show; metodu ile o form aktif hale getirilebilir.

unit1cx3.jpg

Project Manager Penceresi

Project Manager penceresi normalde ekranda görülmez. View-Project Manager menüseçeneği ile görüntülenebilir. Bu pencerede projemize ait formlar ve unitler gösterilir. Projemize yeni bir dosya eklemek veya çıkarmak bu pencere kullanılır

pmna8.jpg

Delphi’de Kullanılan Dosya Tipleri

Delphi’de kullanılan en önemli dosya tipleri şunlardır:

.exe Programımıza ait çalıştırılabilir dosya.

.cfg Proje seçeneklerini içeren ayar dosyası.

.dcu Derlenmiş unit dosyaları.

.dfm Form dosyaları.

.dpr Proje kaynak dosyası.

.pas Unitin kaynak kodlarınıiçeren dosya.

.dof Project-Options penceresindeki ayalarıiçeren dosya.

.res Derlenmiş binary kaynak dosyaları.

Değişken Tanımı

Delphi’de bir uygulama yazarken bazıdeğişkenler kullanmamız gerekebilir. İşte bu değişkenler kullanılmadan önce tanımlanmalıdırlar.

Değişken tanımıyapılırken dikkat edilecek bazıhususlar vardır. Kısaca bunlardan bahsedelim:

En fazla 63 karakter olabilir.

Değişken adlarıalfabetik (İngilizce) veya “_”karakteri ile başlamalıve ilk karakterden sonra ise “A..Z”, “a..z”, “0..9” veya “_” karakterlerini barındırabilirler.

Değişkenler sembol veya Delphi komutları içermemelidir. Örneğin “$, *, %”veya “Chr, IntToStr”gibi.

Tanımlama işlemi “Var”bloğunda yapılır. Değişken tanımıiki parçadan oluşur. Birinci kısımda değişken adıbulunurken, ikinci kısımda ise değişken tipi yazılır. Örneğin:

Var

isim:String;

sayi:Integer;

ondalik_sayi:Real;

Aynı anda birden fazla değişken de aralarına virgül konularak tanımlanabilir:

Var

isim, dogum_yeri:String;

yas, cocuk_sayisi:Integer;

Veri Tipleri

Değişkenler değişik tipteki veriyi tutmak için farklı türlerde olmak zorundadır. Bazıdeğişkenler sayıtutarken başka bir değişken de ise metin saklamamız gerekebilir. Delphi’de kullanılan başlıca değişkenler şunlardır:

Tam SayıTipleri

Integer

4 baytlık işaretli tamsayıtipidir. Alabileceği değerler -2147483648 ile 2147483647 arasındadır ve bu değişken tipi LongInt tipi ile aynı işlevi görür. LongInt

4 baytlık işaretli tamsayı tipidir. -2147483648 ile 2147483647 arasında değer alır.

SmallInt

2 baytlık işaretli tamsayı tipidir. -32768 ile 32767 arasında değer alabilir.

ShortInt

1 baytlık işaretli tamsayı tipidir. -128 ile 127 arasında değer alabilir.

Byte

1 baytlık işaretsiz tamsayıtipidir. 0 ile 255 arasında değer alabilir.

Word

2 baytlık işaretsiz tamsayıtipidir. 0 ile 65535 arasında değer alabilir.

Cardinal

4 baytlık işaretsiz tamsayıtipidir. 0 ile 4294967295 arasında değer alabilir.

Int64

8 baytlık işaretli tamsayı tipidir. -263 ile 263-1 arasında değer alabilir.

LongWord

4 baylık işaretsiz tamsayıtipidir. 0 ile 4294967295 arasında değer alabilir.

Variant

16 baytlık bir değişken tipidir. Bu değişkene hem sayısal hem de string ifadeler aktarılabilir.

Var

x:variant;

begin

x:=2003;

x:=’PC WORLD’;

end;

Sınır Aşımı

Değişkenler, veri tiplerine göre alabilecekleri değerlerin sınırlarıdışında doğrudan bir değer atamasıyapılamaz ve hata oluşur. Değişkenlerin alabileceği değerlerin sınırlarıdışında bir atama yapılmışprogram kodu çalışmaz. Değişkenlere sınırlarıdışında da değer atamasıyapılabilir. Bu atama işlemi dolaylıyoldan olur ve bu atamalar sonucunda beklenmedik sonuçlar karşımıza çıkabilir.

Reel SayıTipleri

Single

4 baytlık ondalıklısayıtipidir. 1.5x10-45 ile 3.4x1038 arasında değer alabilir. 7-8 haneli rakamlar. Real48

6 baytlık ondalıklısayıtipidir. 2.9x10-39 ile 1.7x1038 arasında değer alabilir. 11-12 haneli rakamlar. Real ve Double

8 baytlık ondalıklısayı tipidir. 5.0x10-324 ile 1.7x10308 arasında değer alabilir. 15-16 haneli rakamlar. Extended

10 baytlık ondalıklısayıtipidir. 3.6x10-4951 ile 1.1x104932 arasında değer alabilir. 19-20 haneli rakamlar. Comp

8 baytlık ondalıklısayıtipidir. -263+1 ile 263-1 arasında değer alabilir ve sadece 2’nin katlarını tutabilir. 19-20 haneli rakamlar. Currency

8 baytlık ondalıklısayıtipidir. -922337203685477.5808 ile +922337203685477.5807 arasında değer alabilir. 19-20 haneli rakamlar.

Boolean Tipi

Boolean

True ve False değerlerinden birini içerir ve hafızada 1 bayt yer kaplar.

Karakter Tipleri

Char

Bir karakterlik bilgi içeren 1 baytlık veri tipidir. Örneğin “A”, “p”, “-“ vb.

AnsiChar

Char tipi ile aynıdır.

WideChar

2 baytlık bir karakter veri tipidir.

String Tipleri

ShortString

255 karaktere kadar string atamasıyapılabilen veri tipidir. Bellekte karakter sayısı+1 bayt kadar yer kaplar. AnsiString

Yaklaşık olarak 231 karaktere kadar string atamasıyapılabilen veri tipidir. 2GB’a kadar veri barındırabilir. WideString

Yaklaşık olarak 230 karaktere kadar string atamasıyapılabilen veri tipidir. 2GB’a kadar Unicode veri barındırabilir. String

AnsiString tipi ile aynıdır. String değişken tiplerine değer atamasıyaparken metin tek tırnak arasına yazılmalıdır:

Varkonu:String;beginKonu:=’Delphi’;end;

String değişkenler üzerinde + operatörü ile birleştirme işlemi yapılabilir.

Var

konu,ekstra:String;

Begin

ekstra:=’World’;

konu:=’Delphi’+ ekstra;

end;

opdizileribk0.jpg

Dizi tanımıda değişkenlerin tınımıgibi Var kısmında yapılır. Dizi tanımıaşağıdaki şekilde yapılır.

VarDizi_adi:array[alt sınır..üst sınır] of tip;Örneğin 12 elemanlıve String tipli bir dizi şöyle tanımlanır.varaylar:array[1..12] of string;

Bu tanımlama ile 1’de 12’ye kadar bir dizi tanımlandı. Dizinin her elamanının tipi stringtir. Aylar dizisi aynıtipte 12 değer içerir. Dizi elemanlarına [] parantezleri ile ulaşılır. Aylar[1], Aylar[2] ... Aylar[12] gibi. Dizinin 1. elemanına Ocak değerini aktaralım:

aylar[1]:=’Ocak’;

Diziler 1’den başlamak zorunda değildir.

var aylar:array[5..16] of string;

Dizinin alt ve üst sınırlarınıLow ve High fonksiyonlarıile öğrenebiliriz. Kullanımıise Low(aylar) ve High(aylar) şeklindedir. Diziler tek boyutlu olduklarıgibi çok boyutlu da olabilirler.

VarDizi_adi:array[alt1..üst1, alt2..üst2,......, altN..üstN];

Dinamik Dizi Tanımlama

Boyutunun derleme aşamasında belirtilmesi gerekmeyen dizilerdir. Program çalışırken dizinin boyutu belirlenir. Diziyi tanımlarken boyutunu belirtmezseniz dinamik dizi olarak kabul edilir.

var dizi_adi:array of integer şekline kullanılır. Örneğin: var ay:array of string; Herhangi bir anda dizide bulunan eleman sayısınıöğrenmek için ise SetLength fonksiyonundan faydalanılır.

Sabit Tanımı, Static Değişken Tanımı

Sabitler değişmeyen değerler içerirler. Sabit tanımlama işlemi Const bloğunda yapılır. Tanım şekli ise Const SabitAdi = Değeri; şeklindedir. Örneğin:

ConstDergi=’PC WORLD’;Ay=’Ocak’;Yıl=’2003’;

Static değişken tanımıise Const Ded_Adi:Tipi=İlkDeğeri; şeklinde yapılır.

ConstDil:String=’Delphi’;

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...