E S i n T i - Erdal ÖZBAN Der Ki ...
Karakter boyutu :
 Delphi Hakkında

Delphi logosuİlk kişisel bilgisayarların çıkması ve yaygınlaşması sebebiyle bunların üzerinde çalışacak programların yazılması ihtiyacı doğmuştur. Başlangıçta programlar sadece profesyonel bilgisayar programcıları tarafında üretiliyordu. Günümüzde ise yetenekli insanlar kendi çabalarıyla kısıtlı ve az olan program sayısını artırmış ve binlerce program üretilmiştir. Ayrıca internetin gelişmesi ve yaygınlaşması yapılan programların dağıtılmasını kolaylaştırmıştır. İnternet üzerinden istenilen program çeşitli -Demo (Deneme sürümü), Shareware (Kısıtlı veya zaman kısıtlamalı sürüm) veya Freeware (Bedava dağıtılan sürüm)- şekillerde bulunabilmekte ve indirebilmektedir (Download). Ayrıca kullanıcılar kendi yazdıkları programları kolayca internet sayesinde dağıtabilir (Upload).

İnternet üzerinden istenilen program istenildiği kadar ve şekilde bulunabildiği halde Türkçe program sayısı çok azdır. Bu yüzden ingilizce bilmeyen çoğu Türk, bilgisayar programlarını kullanamamakta veya bilgisayarın kullanımının çok zor olduğunu düşünmektedir. Türk insanının bilgisayar teknolojisinden daha fazla yararlanması için Türkçe programların yazılmasına ve sayılarının artırılmasına ihtiyaç vardır. Türkçe programları ingiliz, amerikalı veya başka ülke insanı yazmaz. Türkçe programları yazacak olanlar Türk mühendisleri ve programlamaya yetenekli Türk gençleridir. Programcılık zor, uğraştırıcı ve zaman alan, programlama yeteneğine sahip kişilerin başarabileceği bir iştir. Ama ülkemiz gençliği çok yeteneklidir, zehir gibi kafaya ve zekaya sahiptir. Gençliğimiz, çalışması ve sahip olduğu yetenekler sayesinde programcılıkta dahil olmak üzere her işi başarabilir...

Ülkemizde programlama ile ilgili kaynak sayısı sınırlıdır. Bilgisayar ve programcılıkla ilgili kitaplar ve internet siteleri çok azdır. Bilgisayar dergileri donanımlara ve oyun programlarına çok fazla yer ayrılmaktadır. Sırf oyunlar için bilgisayar dergileri çıkarılmaktadır. Oysa aynı dergiler programcılığa en fazla 3-5 sayfa ayırmaktadırlar. Bir tane bile programlama ile ilgili dergi yoktur. Bu büyük bir eksikliktir. Bunun çözümü programcılıkla uğraşan kişilerin sayısının artmasıdır. Uğraşan kişi sayısı arttıkça ilgili kaynak, kitap, bilgisayar dergisi ve programlama ile ilgili site sayısıda artacaktır. Bilgisayar dergileri programlamaya daha fazla sayfa sayısı ayıracaklardır.

Programcılık, Türk ekonomisi için de çok önemlidir. Dünya üzerinde en büyük şirketlerden bazıları Yazılım (Software) şirketleridir. (Microsoft, IBM, Sun vb..). Bu şirketlerin ürettiği programlara milyonlarca dolar ödenmektedir. Büyük yazılım şirketleri gelişmekte olan ülkelerle işbirliği yaparak büyük yazılım projelerine imza atmaktadırlar. Bu ülkelerden biride Hindistandır. Bu ülke halkının ingilizceyi çok iyi bilmesi ve ülkedeki ucuz iş gücü sayesinde programcılık ve sinema sektörleri çok büyük gelişme göstermiştir. Hindistanlı programcılar büyük projelere imza atmaktadırlar. Bu ülkede bilgisayar ve programcılık eğitimi çok yüksek seviyededir. Bu sayede Hindistan ekonomisi gelişmektedir. Hindistan halkı da programcılık sayesinde para kazanmakta, ailelerinin geçimlerini sağlamaktadırlar. Hindistanın yanında Çin, Japonya, Endonezya gibi ülkelerin bilişim teknolojilerinde attıkları adımlar ve geldikleri yerler bellidir.

Programlar yeteneklerine göre programı üretenin belirlediği bir lisans fiyatına sahiptir. Programı kullanmak isteyen kişi -eğer ücretsiz değilse- bu lisans ücretini ödemek zorundadır. Ülkemizde kopya yazılımın çok fazla olmasına ve bulunmasının kolay olmasına rağmen kopya(lisansız) yazılım kullanmak yasalarımıza göre suçtur ve yaptırımları vardır. Yabancı ülkelerde üretilen programları kullanmak isteyen bir kişi lisans ücreti ödemek zorunda olduğu için ödenen ücret yabancı ülke, kişi yada firmalara gidecektir. Bu ülke ekonomisi için istenmeyen bir durumdur. Çünkü ülke dövizi yurt dışına çıkmaktadır. Oysa aynı program Türk programcılar veya firmalar tarafından yapılsa ülkenin dövizi ülke içinde kalacaktır. Belki üretilen program dışarı satılıp döviz geliri bile elde edilebilecektir. Bu durum ülke ekonomisi ve ülkenin kalkınması için çok faydalıdır.

Sonuçta Türk gençliği olarak çok çalışmalı, araştırmalı, öğrendiğimiz her bilgiyi paylaşmalı ve bunu kodlara dökmeliyiz. Ülkemizde programcılık geliştikçe bilgisayar dalında ve ekonomide gelişmiş ülkelere ulaşabilir, onlarla yarışabiliriz...

May the codes be with you...

İşletim sistemi, Dos ve Windows nedir ? 80x86 Mikroişlemcilerin çalışma modları nelerdir?

İşletim sistemi, bilgisayarın açılmasını sağlayan, kulanıcıdan komut alacak hale getiren programlardır. Dos, metin tabanlı bir işletim sistemidir. Komutları klavyeden alır. Aynı anda sadece bir program çalıştırabilir. DOS işletim sistemi ancak 1 Mb belleği kontrol edebilir. Üstelik bu 1 MB belleğin yalnızca 640 Kb'lik bölümünü programlar için kullanabilir. Ms-Dos, dos işletim sisteminin Microsoft tarafından geliştirilmiş sürümüdür. Windows ise Microsoft tarafından geliştirilmiş, grafik tabanlı, aynı anda birden fazla programın çalışabildiği bir işletim sistemidir. Windows, Intel sistemlerinde 4 Gb bellek kullanabilir. Bir Windows programı istenildiği kadar uzun olabilir. Windows 3.1 ve önceki sürümler, DOS işletim sistemi üzerinde çalışan, 16 bitlik programlar çalıştırabilen işletim sistemleridir. Windows 95 ve sonraki işletim sistemleri ise 16 ve 32 bitlik programları çalıştırabilen, Dos işletim sistemine hiç ihtiyaç duymayan, aynı anda birden fazla programı gerçek zamanlı olarak çalıştırabilen işletim sistemleridir.

Windows aynı anda birden fazla programın bir arada çalıştırılabildiği çok işlemli (multi processing) bir işletim sistemidir. Çok işlemli çalışma zaman paylaşımlı bir biçimde yapılır. Yani her program bir süre çalıştırılarak bırakılır. Programların çalıştırılıp bırakılma işlemleri belli bir algoritma ile yürütülür. Bu algoritmaya çizelgeleme algoritması denir.

Sanal belek(virtual memory) programın belli bir kısmının RAM'e yüklenerek disk ile yer değiştirmeli olarak çalıştırılması için kullanılır. Intel, 80386 ve sonrası mikroişlemcileri geliştirirken RAM ve sabit disk arasında hafıza değişimini (swap) kolaylaştıran işlemci modları geliştirmiştir. Böylece windows gibi işletim sistemleri sabit diskin bir kısmını RAM gibi kullanabilmektedir. Bu Windowsun kullanabileceği hafızayı artırmaktadır. Dos ve Windows işletim sistemlerinin üzerinde çalıştığı 80x86 mikroişlemcilerin üç çalışma modu vardır:

1. Gerçek Mod (Real Mode)
2. Sanal86 Mod (Virtual 86 Mode)
3. Korumalı Mod (Protected Mode)

80x86 işlemcileri reset edildiğinde çalışma gerçek modda başlar. Korumalı moda gerçek moddan yazılım yolu ile geçilmektedir. 8086, 8088, 80186 işlemcileri sadece gerçek moda çalışabiliyordu. 80286 işlemcisi gerçek mod ve korumalı modlarda çalışabilmektedir. 80386 ve sonrası bu üç modu desteklemektedir. 80X86 işlemciler gerçek modda çok küçük farklılıklar dışına hızlı bir 8086 gibi çalışmaktadır. DOS işletim sistemi gerçek modda çalışabilecek biçimde tasarlanmıştır. 8086 işlemcisi 1 MB bellek kullanabilen 16 bit bir mikroişlemcidir. Bu nedenle gerçek modda ancak 1 MB bellek kullanılabilir. Korumalı mod koruma mekanizmasının, sanal bellek kullanımının, çok işlemli çalışmanın, mümkün olduğu en ileri çalışma modudur. UNIX ve Windows sistemleri korumalı modda çalışmaktadır. Sanal 86 Modu, 8086 gibi çalışmanın sağlandığı ancak korumalı modun çeşitli özelliklerinin kullanılabildiği bir ara moddur. Windows işletim sisteminde komut satırı Sanal 86 Modunda çalışmaktadır çünkü Windows işletim sisteminde kullanılan taskswitch mekanizmasında Gerçek Mod kullanılamamaktadır. Windows işletim sisteminde DOS penceresi açıldığında yada herhangi bir DOS programı çalıştırıldığında işlemci Sanal 86 moduna geçmektedir. Ancak işletim sisteminin açılışında F8 tuşuna basılarak Sadece Komut İstemi seçeneği seçildiğinde Gerçek Modda çalışma söz konusu olur.

Assembler, Pascal, Basic, C, C++, C#, Java nedir ?

Assembler, makine diline en yakın olan dildir. Assembler (Sembolik Makine Dili), taşınabilir genel bir dil değildir. Assembler kodları yazıldıkları işlemciye özeldirler ve tamamen işlemciye bağlı olarak değişirler. Assembler'da program yazabilmek için bir Assembler derleyicisi ve bir de linker programı gereklidir. Borland firmasının assembler derleyicisi TASM.EXE dosyası, linker programı ise TLINK.EXE programıdır. Microsoft'un assembler derleyicisi ise MASM.EXE, linker programı ise LINK.EXE programıdır. Assembler programların incelenmesi amacıyla "debugger" programları kullanılır. Bu amaçla Borland firmasının TD.EXE Microsoft firmasının CV.EXE programları vardır.

Basic dili 1960'lı yılların ortalarında John Kemeney ve Thomas Kurtz tarafından geliştirilmiştir. Yüksek seviyeli dillerin en eski ve en basit olanlarından biridir. Tüm basitliğine karşın, bir çok ticari uygulamada kullanılmıştır. QBasic, dos ortamında çalışan programlar yapmak amacıyla Microsoft tarafından geliştirilmiş bir programdır. Bu programla Basic dilinde programlar geliştirilmektedir.

Pascal dili 1971 yılında akademik çevrelere yapısal programlama kavramını tanıtmak için Profesör Niclaus Wirth tarafından geliştirilmiş yüksek seviyeli bir programlama dilidir. (Dile matematikçi ve filozof Blaise Pascal'ın ismini verilmiştir.) Bu dil kısa zaman içinde üniversitelerde kullanılan programlama dili haline gelmiştir. Modula ve Modula-2 dilleri Pascal dili baz alınarak geliştirilmiştir. Turbo Pascal, dos ortamında çalışan programlar yapmak amacıyla Borland Software Corporation tarafından geliştirilmiş bir programdır. Bu programla Pascal dilinde programlar geliştirilmektedir. Borland, Turbo Pascal'ın ardından Borland Pascal adını verdiği hem dos hem de windows ortamında programlar yapılabilen bir programlama aracı geliştirmiştir. Microsoft'da Quick Pascal adında programlama aracı geliştirmişse de Turbo Pascal kadar popüler hale gelememiştir.

Pascal dilinde her program satırı ";" işareti ile biter. Kullanılacak kütüphaneler uses direktifinin yanına yazılır. Örneğin "Uses crt, dos;" gibi. Bu dilde değişkenler var bloğunun içinde tanımlanmak zorundadır. Örneğin "Var a: integer; b: string;" gibi. Bu dilde Procedure ve Function denilen alt program çeşitleri vardır. Procedure değer döndürmez, Function değer döndürmek zorundadır. Programlaması ve öğrenilmesi kolaydır.

C dili 1970'li yılların başında AT&T Bell laboratuvarlarında Dennis M. Ritchie tarafından yazılmıştır. Kendinden önceki B dili üzerinde kurulu bir yapı oluşturmasından dolayı C olarak isimlendirilmiştir. C dili görünüş olarak Pascal, Basic gibi yüksek seviyeli bir dil olarak görünürken, temelde işlevler düşük seviyeli, -makine diline yakın olan- Assembler'a çok yakındır. Ayrıca C programları diğer dillere göre daha hızlı çalışır, C dili diğer dillere göre komut kütüphaneler bakımından daha zengindir. Yalnız C dilinde kontrol mekanizmaları kaldırılmıştır (Bundan dolayı hızlıdır). Yazılan programın çalışması esnasında oluşan hatalarda program durdurulmaz. C'de "Hatalar programcı tarafından bilerek yapıldı" felsefesi geçerlidir. Bundan dolayı programcı gerekli yerlerde hata kontrollerini kendisi yapmalıdır.

C++ dili ise 1980'lerin başında AT&T Bell laboratuvarlarında Bjorne Stroustrup tarafından geliştirilmeye başlanmıştır. 1985 yılında kullanıma sunulmuştur. C++, küçük detaylar dışında C'yi tamamen kapsayan daha iyi bir C olarak tasarlanmıştır. C'den C++'ye geçerken "++" eklenmesinin sebebi bu operatörün bu dilde bir arttır anlamına gelmesidir. Yani C++, C nini bir arttırılmışıdır. Bugün pek çok C++ derleyicisi mevcuttur. C++ derleyicileri aynı zamanda C programlarını da derlerler. C++ dili tam olarak 1997 yılının Kasım ayında ISO ve ANSI tarafından standartlaştırılmıştır. C++ hakkında internette çok fazla bilgi ve doküman bulmak mümkündür. C++ hali hazırda en güçlü dillerden biridir ve birçok işletim sisteminin C++ ile yazıldığını söylenebilir.

1999 yılında Microsoft tarafından geliştirilen C# (C Sharp) C tabanı üzerinden geliştirilen, C++, Java ve Visual Basic' ten bazı özellikler almış olan nesne tabanlı bir programlama dilidir. Microsoft' un iddiasına göre C#; C++' ın gücüne ve zenginliğine, Visual Basic' in de üretkenliğine sahiptir. C# temelde Windows tabanlı sistemlerin geliştirilmesi için tasarlandığı için C# nesne modelleri, Microsoft' un COM ve DCOM nesne biçimlerine direkt olarak uyum sağlar. Halen geliştirilmekte olan birçok uygulama derleyicisi bulunmaktadır.

Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış gerçek nesneye yönelik, platformdan bağımsız, yüksek performanslı, çok işlevli, yüksek seviye, interpreted (adım adım işletilen) bir dildir. Java ilk çıktığında daha çok küçük cihazlarda kullanılmak için tasarlanmış ortak bir platform dili olarak düşünülmüştür. Ancak platform bağımsızlığı özelliğinden dolayı C ve C++'tan çok daha üstün ve güvenli bir yazılım geliştirme ve işletme ortamı sunar. Hemen her yerde kullanılmaya başlanmıştır. Şu anda özellikle kurumsal alanda ve mobil cihazlarda son derece popüler olan Java özellikle J2SE 1.4 ve gelecek 1.5 sürümü ile masaüstünde de gücünü arttırmayı hedeflemektedir. Java'nin ilk sürümü olan Java 1.0 (1995) Java Platform 1 olarak adlandırılmıştır ve tasarlama amaçına uygun olarak küçük boyutlu ve kısıtlı özelliklere sahiptir. Daha sonra platformun gücü gözlenmiş ve tasarımında büyük değişiklikler ve eklemeler yapılmıştır. Bu büyük değişikliklerden dolayı geliştirilen yeni platforma Java Platform 2 adı verilmiştir ama versiyon numarası 2 yapılmadı, 1.2 olarak devam etti. 2004 sonbaharında çıkan Java 1.5, geçen 1.2, 1.3 ve 1.4 sürümlerinin ardından en çok gelişme ve değişikliği barındıran sürüm olmuştur.

Java, normalde grafik ortamında programlama yapmak için araç içermez. Programı derleme ve çalıştırma işlemleri metin ortamında yapılır. Fakat Java için grafik programlama ortamı sağlayan birçok araç vardır. Bunlardan birisi NetBeans'dır. NetBeans, java ile aynı internet sayfasında bulunan ücretsiz bir java grafik programlama aracıdır.

Nesneler (Objects) ve Nesneye Yönelik Programlama (NYP) nedir ?

Nesneye Yönelik Programlama (NYP) ve Nesneler programcılıkta kullanılan bir yöntemdir. NYP'nin 1960'lı yıllarda Simula dilinin tasarlanması ile başladığı kabul edilmektedir. İlerleyen yıllarda NYP'nin uygulanabilirliğinin artmasıyla diğer programlama dilleride bu yöntemi desteklemeye başlamıştır. C++ ve -Pascal dilinin gelişmiş hali olan- Objects Pascal dilleri de Nesneye Yönelik programlar geliştirmeye imkan vermektedir.

Günümüzde bilgisayar donanımlarının gelişmesi ile bunlar üzerinde daha gelişmiş ve daha fazla ihtiyaca cevap verebilecek programların yazılmasına gereksinim oluşturmuştur. Başlangıçta basit ve az satıra sahip olan programlar karmaşıklaşmış ve daha çok koddan ve program satırından oluşmaya başlamışlardır. Bu programcıları yeni arayışlara ve yöntemlere itmiştir. İşte Nesneler ve NYP burada devreye girer. Klasik programlamada programcı programın herşeyi ile ilgilenmek zorundadır. NYP'de ise programcı ihtiyacına göre sınıflar (class) tanımlar ve programında istediği sınıftan istediği kadar nesne (object) oluşturur. Nesnenin oluşturulması (kullanıma hazır hale getirilmesi) ve gerektiğinde yok edilmesi (hafızadan silinmesi) için gerekli kodlar sınıf tanımlanırken bir kez yazılır. Bu yazılan kodlar oluşturulan bütün nesneler için kullanılır (sınıfta yer alan bir kod oluşturulan binlerce nesneye geçerlidir). Aynı kod tekrar tekrar yazılmaz ve bazı kodların çalıştırılması bütün nesneler için otomatik olur (kalıtım). Ayrıca NYP'nın bir avantajı da şudur: Bir sınıftan binlerce nesne üretilse bile bütün sınıflar üretildikleri sınıfın kodunu kullanır. Her nesne için ayrı kod saklanmaz bu hafızadan tasarruf sağlar. Hafızada yalnızca her nesnenin kendisine özgü olan değişken değerleri saklanır. Yani kalıp bir tanedir. Aynı kalıptan binlerce iş üretilir.

NYP ile Klasik programlama arasındaki farka şu örneği verebiliriz: Klasik bir atölyede yeterince malzeme, bilgi ve deneyime sahip bir kişi her parça ile teker teker uğraşarak, büyük emek ve zaman harcayarak kendi arabasını üretebilir. Ama aynı arabadan binlece üretilmesi gerekiyorsa bunun için klasik yöntemler yetersiz kalır. Klasik yöntem kullanılarak yapılan üretimde çok büyük emek ve zaman kaybı olur. Oysaki üretimde bazı şeyleri otomatiğe bağlayarak (fabrikasyon üretimle) zaman ve emek tasarrufu sağlanır. Programcılıkta da Nesneler kullanarak çok büyük işler daha az zaman ve emekle gerçekleştirilir.

Windows'da tümüyle NYP kullanılarak yazılmıştır. Bu yüzden windows'ta çalışacak bir program yazmak isteyen kişinin Nesneleri iyi bilmesi gerekir. Bu delphi için de geçerlidir. Delphide yazılan windows programlarına bakıldığında NYP kolayca fark edilecektir. Windows'ta ekran üzerinde bulunan her resim, buton, pencere, menü vb herşey penceredir (nesnedir). Birbirlerine ve sisteme sürekli mesajlar gönderen, birbirlerinden ve sistemden sürekli mesajlar alan binlerce pencere (nesne). Windows'un görevi bu pencereleri (nesneleri) ve mesajları idare etmektir. Çalışma sırasında hafızada binlerce nesne oluşturulur yine binlercesi hafızadan silinir. Windows programlarının çalışması aslında bu nesnelerin mesaj göndermeleri ve aldıkları mesajları değerlendirmeleridir.

Programlama ve Görsel Programcılık Nedir?

Programcılık normalde program kodunun bir metin editöründe (Dos'ta Edit, Windows'ta ise Notepad veya Wordpad vb..) yazılması ve yazılan kodun -komut satırında yazılan komutlarla- kendi derleyicisinde derlenmesi sonucu oluşan programın yine komut satırında çalıştırılarak denenmesi şeklinde yapılır. Bu zor ve uzun bir işlemdir. Son zamanlarda metin editörü de bulunan derleyiciler işi biraz daha kolaylaştırmışlardır. Bunlar aynı mantıkla çalışırlar fakat komut satırı işlemlerini otomatik yaparlar.

Görsel programcılık ise durum farklıdır. Kullanıcı, windows programını yazarken sürükle ve bırak mantığıyla nesneleri alır ve program formunun üzerine koyar. Bazı kodlar otomatik yazılır ve kaynak dosyaları otomatik oluşturulur. Programcı bunlarla ilgilenmez. Nesnenin, form üzerindeki yerini, rengini, vb. işlemleri bile fare ile ayarlar. Böylece programcı sadece yapacağı işe konsantre olur. Diğer işleri görsel programlama aracı halleder. Şu anda görsel programcılık amacıyla kullanılan pek fazla programlama dili yoktur. Görsel programlama araçlarına Visual Basic, Delphi ve Visual C++ programları örnek verilebilir.

Delphi nedir ?

Visual Basic, Basic programının gelişmiş hali olan, windows ortamında çalışan programlar yapmak amacı ile Microsoft tarafından geliştirilmiş bir programdır. Borland, Visual Basic in yaygınlaşmasıyla Pascal dilini temel alan Delphi'yi ortaya çıkarmıştır. Delphi de, Visual Basic gibi windows ortamında çalışan programlar yapmak amacı ile geliştirilmiş bir programdır. Delphi pascal dilinin gelişmiş sürümü olduğundan (Object Pascal) tüm komutları pascal komutlarıdır. Delphi'ye başlayacak bir kimse ilk önce Pascal komutlarını gözden geçirmelidir.

Delphinin şu an 2005 sürümü kullanılmaktadır. Bu sürümle windows ortamında çalışan 32 bitlik programlar yapılabilmektedir. Çalışan .exe programlardan haricinde .dll (Dinamik bağlantı kütüphaneleri) ve ActiveX nesneleride delphi ile kolayca oluşturulabilmektedir. Ayrıca bu sürüm .NET teknolojisini de desteklemektedir. Delphi sürümleri piyasaya Enterprise, Professional ve Standard olmak üzere üç farklı halde sunulmaktadır.

Delphi ücretli bir uygulamadır. Delphi kullanarak uygulama yapmak isteyen kişilerin lisans ücretini ödemesi gerekir. Ücretsiz programlama yapmak ve öğrenmek amacıyla delphiye benzeyen Lazarus adlı GPL lisanslı ücretsiz program kullanılabilir. Bu programın şekli ve çalışması delphiye benzemektedir. Fakat kod yapısında farklılıklar vardır.

Delphide kullanılan bazı terimlerin açıklamaları:

Class (Sınıf) : Nesneye Dayalı (Object Oriented) programlamada belli bir işlevi yerine getirmesi için kurulmuş, fonksiyonlardan ve verilerden oluşan yapıya class(sınıf) denir.
Property (Özellik) : Bir class'ın belli özelliklerinin sakladığı ve kullanıcı tarafından değiştirilmesine veya kontrol edilmesine izin verilen değişkene property(özellik) denir.
Event (Olay) : Programın çalışması sırasında dışarıdan girişlere göre değeri değişen özel property'lere event(olay) denir.
Procedure (Prosedür) : Geriye herhangi bir değer döndürmeyen alt programlara Procedure(Prosedür) denir
Function (Fonksiyon : Geriye belirli tiplerde değer gönderen alt programlara Function(Fonksiyon) denir.
Method (Metot) : Bir class üzerinde çalışan procedure ve fonksiyonlara method(metod) denir.
Component (Bileşen) : Görsel bir programlama dilinde belli bir işlemi yapmak için tasarlanmış property, event ve methodlar içeren küçük program parçasına component(bileşen) denir.
Form : Görsel bir programlama dilinde program yazarken kullanılan her türlü komponenti, üzerine yerleştirebilen ve programın kullanıcı ara yüzünü oluşturan pencerelere form denir.

.NET Nedir ?

.NET Framework, Microsoft tarafından geliştirilen, açık İnternet protokolleri ve standartları üzerine kurulmuş komple bir uygulama geliştirme platformudur. Bu platform, işletim sisteminden ve donanımdan daha üst seviyede taşınabilir olarak tasarlanmıştır. .NET platformu için uygulama geliştirmek isteniyorsa, işletim sistemine .NET çalıştırma ortamını kurulması gerekir. Bu ortamı, Java uygulamalarını çalıştırmak için gerekli olan Java Run-time Environment (JRE) gibi düşünülebilir. .NET platformu ücretsiz olarak Microsoft'un http://msdn.microsoft.com/net/ adresinden indirebilir.

Borland, .NET'i destekleme kararı almıştır. Delphinin 2005 sürümü .NET'i desteklemektedir. Bu sürümün kurulumunda .NET ile ilgili programlar ve dosyalarında kurulumu gerçekleşmektedir. Zaten .NET'in ve .NET ile birlikte ortaya çıkan C# ın babası Anders Hejlsberg 13 yıl Borland'da çalışmış birisidir. Daha sonra astronomik rakamlarla Microsoft'a transfer olmuştur. .NET için Microsoft ile Borland'ın işbirliği yaptığı iddia edilmektedir.

Delphi'mi yoksa Visual Basic'mi ?

Delphi'de de Visual Basic'te de windows ortamında çalışan görsel programlar yapmak mümkündür. Fakat iki program tarafından oluştulan programlar arasında çeşitli farklar vardır.

Delphi ile derlenerek oluşturulan programlar hızlı çalışır fakat oluşturulan program çok basit bile olsa boyut olarak biraz büyüktür ve hafızada çok yer kaplar. Bunun sebebi delphinin program için gerekli kodların hemen hemen hepsini oluşturulan program dosyasının içerisine yerleştirmesidir. Oluşturulan programlar hemen hemen harici dosyalara ve kütüphanelere ihtiyaç duymaz.

Visual Basic'te ise oluşturulan dosya delphi'ye göre daha yavaş çalışır fakat boyut olarak daha küçüktür. Bunun sebebi bütün kodların oluşturulan dosyanın içine yerleştirilmemesidir. Program harici kütüphanelerden bazılarına (vbrun300.dll, vb40032.dll, msvbvm50.dll, msvbvm60.dll vb..) ihtiyaç duyar. Bu dosyalar sisteme en az bir defa kurulmalıdır. Programın dağıtılacağı zaman bu kütüphanelerden gerekli olanların da dağıtılacak sisteme kurulması zorunludur. Kütüphanelerden sistemde bulunmazsa oluşturulan program çalışmaz. Oluşturulan programın yavaşlama sebebi çalışması esnasında bu kütüphanelere erişmek zorunda olmasıdır.

Gnu-Linux ve Kylix nedir ?

Linux, Linus Torvalds adlı bir üniversite öğrencisinin üniversite ödevi olarak başlamıştır. Linus'un yazdığı bilgisayarın temel işlemlerini yerine getiren basit bir yazılımdır. Bu yazılıma kernel denir. Linux kerneli internet vasıtasıyla gönüllü kişiler tarafından geliştirilmiş ve geliştirilmektedir.

1985 yılında Richard Stallman, Free Software Foundation (Özgür Yazılım Derneği) adlı derneği kurarak 1984'de başlayan GNU projesine hız vermiştir. Bu projenin amacı özgür, herkesin kullanabileceği, ücretsiz bir işletim sistemi oluşturmaktır. Bu işletim sistemide kodlar açık olacaktır. Kodları herkes değiştirip, katkıda bulunabilecektir. GNU-Linux böyle sistemdir. Bu sistemde kodlar GPL (General Public Licence) Genel Kamu lisansı ile korunur. Bu lisansta yazılan program yazılımcıya aittir, kullanıcı kodları kopyalayabilir, değiştirebilir, geliştirebilir, satabilir. Ancak kodu her zaman açık tutmak zorundadır.

Linux kerneli ve GNU desteği ile GNU-Linux internetten yayınlanan, gönüllü kitleler tarafından geliştirilen ve şu an kişisel bilgisayarlar ve çeşitli platformlarda başarıyla çalışan bir sistemdir. Yalnız bu bir işletim sistemi değildir. Ücretsiz olan bu sistemi alan her kişi buna dayanan bir işletim sistemi yapabilir. (Red Hat, Suse, Debian, Knoppix, Pardus, Gelecek Linux, vs..)

Linux tabanlı işletim sistemlerinden bazıları windows gibi sabit diske kurulmak zorundadır. Fakat Knoppix gibi CD'den çalışan ve kuruluma ihtiyaç duymayan linux sistemleri de vardır. Bu işletim sistemleri sabit diske kurma ve sabit disk bölümlenmesi gibi işlemlerin yapılmasına gerek kalmadan işletim sistemi CD'si ile herhangi bir bilgisayarda gerekli setup ayarının yapılması kaydıyla rahatlıkla çalıştırılabilirler.

Kylix, Borland firmasının Gnu-Linux temelli işletim sistemleri için program geliştirilmesi amacıyla ürettiği bir programlama aracıdır. Linux'da Delphi'nin karşılığıdır. GPL lisansına tabi değildir ve ücretlidir.

Delphi 7.0 Sürümü Ana Sayfası Görüntüsü:

Delphi Ana Sayfası

Delphi programının yapısı :

Delphi programı uygulama geliştirme ortamı (IDE - Integrated Development Environment), yukarıda da görülebileceği gibi temel olarak şu kısımlardan oluşur:

Kod penceresi: Programcının kodları yazdığı kısımdır
Form Penceresi: Programcının VCL bileşenleri eklediği, programın ekranda görünen kısmıdır.
VCL Bileşenleri: Programcının forma ekleyebileceği VCL bileşenleri seçtiği, VCL bileşenlerin bulunduğu kısımdır.
Object TreeView (Bileşenleri Gösterici): Programcının forma eklediği bileşenleri ağaç yapısında gösterir ve seçebilmesini sağlar.
Object Inspector (Bileşenlerin Özelliklerini ve Olayları Ayarlayıcı): Bileşenlerin özelliklerinin, olayların ayarlandığı ve görüldüğü kısımdır.
Program menüsü ve toolbar.

Delphinin toolbar kısmında görülen ikonlardan en sık kullanılan bazıları ve görevleri:

Delphi toolbar Run : Yapılan programı derleyip çalıştırmak için kullanılır.
Program Pause: Yapılan programı çalıştırdıktan sonra çalışmasına ara vermek için kullanılır.
Program Reset: Yapılan programı çalıştırdıktan sonra durdurmak için kullanılır. Program hatalarında işe yarar.
Units...: Yapılan programda bulunan unitleri görmek ve bir uniti seçmek için kullanılır.
Forms...: Yapılan programda bulunan formları görmek ve bir formu seçmek için kullanılır.
Open Project...: Önceden kaydedilmiş program projesini yüklemek için kullanılır.
Save Project As...: Program projesini farklı adla kaydetmek için kullanılır.
Save All: Program projesindeki bütün dosyaları kaydetmek için kullanılır.
Close All: Program projesindeki bütün dosyaları kapatmak için kullanılır.

Ayrıca delphi başka araçlar da içermektedir. Bu araçlara Menünün Tools kısmından ulaşılabilir.
 

Image Editor: Image Editor, delphinin kaynak editörüdür. Bir Windows programındaki bitmap, dialog penceresi, menü, icon, string gibi görsel elemanlara kaynak (resource) denir. Kaynaklar ya doğrudan kaynak dili kullanılarak yazılırlar ya da görsel olarak kaynak editörlerinde oluşturulurlar. Kaynak editörü bu görsel belirlemelerden kaynak kodunu oluşturur. Image Editor ile tasarlanacak programlar için her türlü bitmap, ikon, kursör gibi kaynaklar rahatlıkla oluşturulabilir. Ayrıca tasarlanacak programın kaynak dosyasının (.res) içermesi istenen her türlü veri (bitmap, ikon, kursör vb.) bu programda ayarlanıp, oluşturulabilir.
Database Desktop: Bu programla delphi projelerinde kullanmak üzere Veritabanı (Database) dosyaları oluşturmak, bunlarla ilgili ayarlar yapmak ve bu dosyalar veriler eklemek mümkündür.

Delphi, temel kısımlardan ve araçlardan başka programlayıcının işini kolaylaştıran çeşitli diyaloglara da sahiptir. Bunlara Menünün View kısmından ulaşılabilir.
 

Project Manager: Bu diyalog ile projede bulunan form ve unitlerden istenilen silinebilir, projeye yeni unit ve/veya form eklenebilir.
To-Do List: Bu diyalog ile projede yapılacak ve bitirilmiş olan işlerin listesi tutulabilir.Liste .todo uzantılı dosyada saklanır.
Alignment Palette: Bu diyalog ile projede bulunan nesnelerin birbirlerine veya forma göre yerleşimleri ayarlanabilir.
Component List: Bu diyalog ile delphi ile kurulmuş olan tüm bileşenlere ulaşmak ve kullanmak mümkündür.
Window List: Bu diyalog ile delphinin bütün açık pencerelerinin listesi görülebilir, istenen pencereye ulaşılabilir.
Units...: Bu diyalog ile delphide açık olan projede bulunan bütün unitlerin listesi görülebilir, istenen unite ulaşılabilir.
Forms...: Bu diyalog ile delphide açık olan projede bulunan bütün pencerelerin (form) listesi görülebilir, istenen pencereye ulaşılabilir.

Delphi'de kullanılan temel kısayol tuşlarından bazıları şunlardır:
 

F9: Programı çalıştırma.
F8: Programı adım adım çalıştırır.
Ctrl+F2: Programı resetler.
Ctrl+F9: Programı derler.

Object Inspector nedir ?

Object inspector, form üzerine sürüklenip bırakılan VCL bileşenlerin özelliklerini ve olaylarını ayarlamak için kullanılan delphinin önemli bileşeşenlerinden biridir. Form üzerinde konulan bileşenin bazı özellikleri fare kullanılarak değiştirilebilir. Fakat bütün özellikler fare kullanılarak değiştirilemez ve özelliklere fare kullanılarak ince ayar yapılamaz. Bunları ayarlamak için Object Inspector kullanılır. Object Inpector iki kısımdan oluşur: İlk kısım nesnelerin özelliklerinin ayarlandığı Properties kısmıdır. İkinci kısım ise nesnelerin olaylarının ayarlandığı Events kısmıdır.

Object Inspectorun Properties Kısmı :

Properties kısmında bulunan bazı seçenekler şunlardır:

Object Inspector   ActiveControl: Formun üzerindeki hangi nesnenin aktif olacağı seçilir. Aktif olması istenen nesnenin ismi çıkan listeden seçilir.
Align : Bazı nesneler ekran üzerinde farklı yerlerde ve farklı boyutlarda yer kaplar. Bu nesneleri ekran üzerinde hangi kısımda duracağını veya formun boyu değiştiğinde nasıl davranacağını bu özellik belirler. alClient seçilirse nesne tüm ekranı kaplar. alLeft ile nesne formun sol kısımda, alRight ile sağ kısmında, alTop ile üst kısmında, alBottom ile ise alt kısımda yer alır. alNone seçili ise nesne boyu, yeri forma göre değişmez, sabit kalır.
AlphaBlend : Formun saydamlığının AlphaBlendValue değeri ile ayarlanıp ayarlanmayacağı buradan seçilir. Değeri TRUE olursa form AlphaBlendValue değerine göre saydam olur, FALSE olursa form hiçbir zaman saydam olmaz.
AlphaBlendValue : Formun üsaydamlığı buradan ayarlanır 0 en saydam, 255 ise formun normal halidir. Saydamlık için AlphaBlend TRUE alomalıdır.
AutoScroll : Formun üzerindeki nesnelerin sığmadığı durumda kaydırma çubuklarını otomatik eklenmesini sağlar. Değeri TRUE olursa otomatik eklenir, FALSE olursa otomatik eklenmez.
BorderIcons : Formun köşesindeki hangi tuşların aktif olacağı seçilir.
BorderStyle : Formun şekli seçilir. Formun sınırlarını (kenarlarını) ve şeklini belirler. Buraya göre form boyutları değiştirilebilir, sabit kalabilir. Dış kısmı görünmeyebilir.
Caption : Formun veya nesnenin başlığı buraya yazılır.
ClientHeight : Formun başlık hariç kullanılabilir yüksekliğini ayarlar. Yükseklik değeri girilir.
ClientWidth : Formun kullanılabilir genişliğini ayarlar. Genişlik değeri girilir.
Color : Formun veya nesnenin zemin rengini ayarlar. Gelen listeden renk seçilir.
Ctl3d : Formun 3 boyutlu görünüp görünmemesi. Değeri TRUE olursa 3 boyutlu görünür, FALSE olursa normal görünür.
Cursor : Formun veya nesnenin üzerine gelindiğinde görünecek fare kursör şekli seçilir. Gelen listeden kursor seçilir.
Enabled : Formun, nesnenin aktif veya pasif olması seçilir. Değeri TRUE olursa aktif, FALSE olursa pasif olur.
Font : Formun veya nesnenin yazitipi ayarları yapılır. Alt seçenekleri vardır. Alt seçeneklerden istenilen ayarlar yapılır.
Height : Formun veya nesnenin yüksekliğini ayarlar. Yükseklik ayarı girilir.
HelpContext : Form veya nesne için yardım dosyasında ilgili konu numarasını ayarlar. Konu numarası girilir.
HelpFile : Form veya nesne için yardım dosyasını belirler. Yardım dosyası ismi girilir.
Hint : Formun veya nesnenin üzerine gelindiğinde gelecek açıklama buraya yazılır.
Icon : Formun simgesi buradan ayarlanır.
KeyPreview : Tuş olayını belirler. bu değer TRUE ise basılan tuş değeri önce forma gider, FALSE ise direkt seçili nesneye gider.
Left : Nesnenin, form sol kenarına olan uzaklığı ayarlanır. Değer girilir.
Menu : Formun ana menusu burdan seçilir. Gelen listeden menu seçilir.
Name : Formun veya nesnenin ismi buraya yazılır.
PopupMenu : Formun veya nesnenin sağ tıklandığında çıkacak menu buradan seçilir. Gelen listeden popupmenu seçilir.
ShowHint : Formun veya nesnenin için yazılan açıklamanın gösterilip gösterilmeyeceğini ayarlar. Değeri TRUE olursa görünür, FALSE olursa görünmez.
Top : Nesnenin, formun üst kenarına olan uzaklığı ayarlanır. Uzaklık ayarı girilir.
Visible : Formun veya nesnenin ekranda görünüp görünmemesi ayarlanır. Değeri TRUE olursa nesne görünür, FALSE olursa nesne görünmez.
Width : Formun veya nesnenin genişliğini ayarlar. Genişlik ayarı girilir.
WindowState : Formun görünme durumunu ayarlar. Değeri TRUE olursa form görünür, FALSE olursa form görünmez.

Not Buradaki seçeneklerden bazıları sadece form için geçerlidirler ve diğer bileşenlerde bulunmazlar.

VCL Bileşenlerin özelliklerinin değiştirilmesi :

VCL Bileşenlerin çeşitli özellikleri vardır. Örneğin her bileşenin ismi, büyüklüğü, form üzerindeki yeri farklıdır. Bunlar Object Inspector'un Properties kısmı kullanılarak değiştirilir. Örneğin üzerinde bir adet TButton bileşeni olan bir formda bu bileşenin ismi otomatik olarak Button1 olacaktır. Bu isim istenilen başka bir isimle değiştirebilir. Button1 seçiliyken Object Inspector'un Properties kısmında Name yazılı satırın karşısında Button1 yazılı olacaktır. Bu kısımdaki Button1 yazısı değiştirilince bu bileşeninin ismi değişmiş olacaktır. Bu durum diğer özellikler içinde geçerlidir.

Object Inspectorun Events Kısmı :

Event kısmında olaylar ayarlanır. Windows'ta bir program çalışırken windows'tan mesajlar alır ve windows'a mesajlar gönderir. Delphide program yazarken yazılan programın hangi mesajlardan etkilenmesi isteniyorsa Events kısmında ayarlanır. Örneğin Delphide basit bir uygulama bölümünde bulunan form üzerinde bulunan Button nesnesinin tek tıklamadan etkilenmesini ve yazılacak kodu çalıştırması istensin. Button nesnesi aktifken Event bölümünde OnClick kısmının yanındaki bölüme tıklanırsa Kod penceresinde otomatik olarak aşağıdaki kodlar belirir:

procedure TForm1.Button1Click(Sender: TObject);
begin

end;


İşte bu kısımda begin ile end arasına yazılan kod Button nesnesine tek tıklandığında çalışacaktır. Events kısmında bulunan bazı olaylar şunlardır:

Object Inspector   OnActive : Form veya nesne aktif olduğunda olur.
OnChange : Birden fazla seçeneğe sahip nesnelerde seçili olandan seçenekten başkası seçildiğinde olur.
OnClick : Form veya nesneye fare ile sol tek tıklandığında olur.
OnClose : Form kapanırken olur.
OnCloseQuery : Form kapanırken OnClose olayından önce olur. Formun kapanması sorgulanır. Formun kapanması için CanClose parametresi TRUE olmalıdır.
OnCreate : Form belleğe ilk defa yüklenirken olur.
OnDblClick : Form veya nesneye fare ile sol çift tıklandığında olur.
OnDeactive : Form veya nesne pasif olduğunda olur.
OnDestroy : Form yok olurken (bellekten silinirken) olur.
OnDragDrop : Bir nesnenin sürüklenip bırakılmasında olur.
OnDragOver : Bir nesnenin diğer nesne üzerine sürüklenip bırakılmasında olur.
OnHelp : Form için yardım dosyası çağrıldığında olur.
OnHide : Bir nesnenin gizlendiğinde olur.
OnKeyDown : Bir tuşa basıldığında olur. Bırakılıncaya kadar devam eder.
OnKeyPress : Bir tuşa basıldığında olur. Bazı tuşlar bu olayı meydana getirmez.(CTRL,SHIFT vb.)
OnKeyUp : Basılı tuş bırakıldığında olur.
OnMouseDown : Farenin bir tuşuna basıldığında olur.
OnMouseMove : Farenin form veya nesne üzerinden geçerken olur.
OnMouseUp : Farenin basılı tuşu bırakıldığında olur.
OnPaint : Form yeniden çizdirilirken olur.
OnResize : Formun boyutları değiştirildiğinde olur.
OnShow : Form görünür hale geçerken olur.

Not Buradaki olaylardan bazıları sadece form için geçerlidir ve diğer bileşenlerde bulunmazlar.

VCL BİLEŞENLER: VCL ve CLX bileşenler nelerdir?

VCL (Visual Component Library) bileşenleri kullanıcı delphi'de windows programları yazarken işini kolaylaştırmak amacıyla üretilmişlerdir. Normalde kullanıcı bir windows programı hazırlarken kullanacağı windows bileşenlerini kendi eklemek, ayarlarını kendi yapmak ve bileşenin kullanacağı kaynakları kendi hazırlamak zorundadır. Oysa delphi'de kullanıcı form penceresine bir VCL bileşeni ekler ve bu işlemlerin bir kısmının delphi tarafından otomatik yapılır. Zaten bazı kodlarda otomatik eklenmektedir. Kaynak dosyalarıda otomatik oluşturulmaktadır. Normalde kullanıcı bunları kendi hazırlamak zorundadır. VCL bileşenler sadece windows işletim sistemi için tasarlanmıştır.

CLX (Component Library for Cross Platform) bileşenler ise hem Windows hem de Linux işletim sistemleri için QT kütüphanesini içerir. Yeni bir CLX uygulaması oluşturulduğunda (File->New->CLX Application) VCL bileşenlerin yerini QT kütüphanesi ile yazılmış CLX bileşenleri alır. QT kütüphanesi her iki işletim sistemi için ortak olduğundan yapılan uygulama her iki işletim sisteminde derlenebilir. Bu yapılan uygulama için uyumluluk ve taşınabilirlik sağlar. Linux ortamında programlama için Delphi yerine Kylix kullanmak gerekir.

Bütün VCL ve CLX bileşenleri Delphi'nin TComponent nesnesinden türetilir.

VCL bileşenlerin kullanılması:

VCL bileşenleri kullanılacakları zaman Bileşenlerin bulunduğu sayfadan sürüklenerek formun uygun yerine bırakılır. Object Inspector kısmından bileşenin ayarlamaları yapılır. Delphi 1.0'dan beri vcl bileşenleri vardır ve hatta bazı bileşenler artık standart olmuştur. Bileşenler isimlendirilmiş sayfalar halinde bulunurlar. Delphi'de artık Standart hale gelmiş bileşen sayfaları şunlardır: Standart, Additional, Win32, System, Samples, Dialogs vb. Delphi ile gelen bunlardan başka vcl bileşenlerde bulunmaktadır.

Eski ve yeni delphi sürümlerinde VCL bileşenler:

Bileşenler her sürümle beraber daha da geliştirildiklerinden eski delphi sürümlerinde bileşenlerin yeni özellikleri tanınmaz. Yeni sürümle yapılmış programlar eski sürümlerde çalıştırılmak istendiğinde hata mesajı verir, program çalışmaz. Örneğin Label ve Edit bileşenleri Delphinin standart VCL bileşenleridir ve bütün delphi sürümlerinde bulunurlar. Bu iki bileşimin birleşimi olan LabelledEdit Delphinin 7.0 sürümünde varken 5.0 sürümünde bulunmaz. Bundan dolayı bu bileşen kullanılarak yapılan programlar Delphinin 7.0 sürümünde çalışırken, 5.0 sürümünde çalışmaz. Çalıştırılmak istendiğinde Delphi 5.0 hata mesajı verir. Programı derlemez.

VCL bileşenlerin bulunması :

Programcı ücretsiz veya ücret karşılığı VCL bileşenleri bulabilir veya satın alabilir. Bunları delphi'ye tanıtarak programlarında kullanabilir. İyi bir programlama bilgisine sahip kişiler de vcl bileşenlerini kendileri oluşturup kullanabilir, ücretsiz dağıtabilir, ücret karşılığı satabilirler.

Yeni bir VCL bileşeninin oluşturulması ve tanıtılması:

Delphi'de Component menüsünde New Component seçilerek yeni bileşen oluşturulabilir. Bu seçeneğin seçilmesi ile ekrana beş kutudan oluşan bir diyalog gelir. Burada Ancestor Type kısmında yazılmak istenen bileşene baz olacak bileşen seçilir. Bütün bileşenler, diğer bileşenlerden veya TComponent bileşeninden oluşturulur. Sonradan oluşturulan türetilmiş bileşen baz bileşenin tüm özelliklerini barındırır. Class Name kısmına ise yazılacak bileşenin adı yazılır. Palette Page kısmında ise bileşenin yer almasının istenilen VCL sayfasının ismi seçilir. Genellikle Samples sayfası tercih edilir. Buraya farklı bir isim girilerek yeni bir VCL sayfası da oluşturulabilir. Bu bilgiler girildikten sonra OK tuşuna basılarak diyalog kapatılır. Ekrana otomatik doldurulmuş kod sayfası gelecektir. Bu kod sayfasına gerekli kodların yazılması ve eklemelerin yapılmasından sonra kodlar .pas uzantılı olarak kaydedilir. Bu .pas uzantılı bileşen delphiye tanıtılabilir ve kullanılabilir. Delphinin bazı bileşenlerinin hangi bileşenlerden üretildiklerini ve bileşenlerin birbirleri ile olan ilişkilerini gösteren resim aşağıda görülmektedir.

Nesne Hiyerarşisi

Delphi programcilarin islerini hızlandırmak ve kolaylaştırmak amacıyla hazır olarak bir çok hazır fonksiyon ve sınıf sunar. Bileşenleri temel olarak türetildikleri yerlere göre 3 grupta ele alınabilir:

1- Görsel Bileşenler: TControl 'dan türetilmiş bütün sınıflar bu gruba girer. İki farklı türü vardır :

   a- Pencereli Denetimler :Delphi Görsel Bileşen Kütüphanesinin en büyük bileşen grubudur. TWinControl'den türemişlerdir. Bir pencereye dayalı bütün görünür (visual) bileşenlerin ebeveyn sınıfıdır. Bu sınıftan türetilmiş olan bileşenler windows mesajlarını, giriş (Focus) odağını alabilirler. Bu pencerelerde API fonksiyonları için kullanılabilecek pencere tutamaçları (window handle) kullanılabilir.
   b- Penceresiz Denetimler : TGraphicControl'den türemişlerdir. Bir pencere tutamacı (handle) olmayan, görünür bileşenlerin ebeveyn sınıfıdır. Tutamakları yoktur. Pencereli denetimler gibi başka denetimleri içeremezler.

2- Görsel olmayan Denetimler: TComponentten türetilmiş bütün sınıflar bu gruba dahildir. Form'a bıraktığınızda genellikle bir simge olarak görünürler. TComponent, bütün bileşenlerin ebeveyn sınıfıdır ve görsel olmayan bileşenler için doğrudan ebeveyn sınıf olarak kullanılır.

Tanıtmak için ise Component menüsündeki Install Component seçilir. Gelen pencerede Browse tuşuna basarak ya bileşenin .pas dosyasını yada derlemiş .dcu dosyasını seçilir. Ok tuşuna basıldığında pencere kapanır ve yeni bir pencere gelir. Burada Compile tuşuna basıp derlenir ve Install tuşuna basıp işlemleri bitirilir. Eğer hata çıkmazsa bileşenin Bileşen sayfasına ekleneceğini gösteren bir uyarı mesajı gelir. Mesajın onaylanmasıyla birlikte yeni bileşenler eklendikleri sayfadan kullanabilir. Bazen bileşenler .dpk uzantılı paketler halinde gelir. File menüsünden Open komutu seçilerek bu dosya açıldığında kurulum başlar. Gelen pencereden önce Compile ve sonra Install yapılması yeterlidir.

Sonradan eklenen bileşenler ile ilgili bilgiler genellikle delphinin kurulu olduğu yerde Lib alt dizininin içindeki dclusr.dpk dosyasında tutulur. Herhangi bir hata durumunda çözüm için bu dosyaya bakılması tavsiye edilir.

VCL bileşenlerin eksikliği :

Delphi'de yazılan bir programın çalışması için bu programa eklenmiş bütün VCL bileşenlerin delphiye tanıtılmış olması gerekir. Aksi takdirde delphi hata mesajı verir, programı derlemez ve çalıştırmaz.

VCL bileşenlerin kodları :

Delphinin kendi bileşenlerin kodları Delphinin kurulum dizininde bulunmaktadır. (C:\Program Files\Borland\Delphi7\Source). Ayrıca internette birçok ücretli ve ücretsiz VCL bileşen bulmak mümkündür. Ücretsiz bileşenlerin bazılarının kodları da bileşenin kendisi ile beraber dağıtılmaktadır.

VCL bileşenleri kullanmadan programlama :

Kullanıcı Delphi'de VCL bileşen kullanmadan da Windows API'leri ile de programını yazabilir. Bu tür bir programı görmek için tıklayınız. VCL bileşenler kullanmadan uygulama geliştirmek için Delphi kullanılabileceği gibi ücretsiz GNU-GPL (Genel Kamu lisansına) sahip Bloodshed.net adresindeki Dev Pascal programı kullanabilir. Eğer programlama dili olarak C++ kullanılmak isteniyorsa yine aynı internet adresinde bulunan aynı şartlara sahip Dev C++ programı kullanılabilir.

VCL bileşenleri sayfaları görüntüsü :

Yukarıda bileşen sayfalarının yerleşimi görülmektedir.

Aşağıdaki açıklamalarda yer alan bileşenler, kendi sayfalarındaki yerlerine göre değil ALFABETİK sıraya göre sıralanmıştır. Sayfalar ise Bileşen sayfasında bulundukları yerlere göre sıralanmışlardır.

Delphi Standart Sayfasında Bulunan Bazı VCL Bileşenler:

Standart-Button Button : Basılabilen bir buton oluşturan bileşen. En çok kullanılan olayı OnClick'tir.
 
Standart-CheckBox CheckBox : Form penceresinde bir seçeneğin onaylanıp-onaylanmadığını gösteren bir bileşen. En çok kullanılan olayı OnClick'tir.
 
Standart-ComboBox ComboBox : Form penceresinde birden fazla seçenekten birini seçmek için kullanılan bileşen. Seçeneklerden seçileni gösterir. En çok kullanılan olayı OnChange'tir.
 
Standart-Edit Edit : Tek satır yazı, rakam vb bilgiler girmek için kullanılan bileşen. En çok kullanılan olayı OnChange'tir.
 
Standart-GroupBox GroupBox : Form penceresinde birden fazla bileşeni bir araya getirmek için kullanılan bileşendir. Panel bileşenine göre daha az kaynak harcar. En çok kullanılan olayı OnClick'tir.
 
Standart-Label Label : Form penceresine yazı eklemek için kullanılan bileşen. En çok kullanılan olayı OnClick'tir.
 
Standart-ListBox ListBox : Form penceresinde birden fazla seçenekten birini seçmek için kullanılan bileşen. Seçeneklerden hepsini gösterir. En çok kullanılan olayı OnChange'tir.
 
Standart-Mainmenu Mainmenu : Form penceresine bir Ana menü eklemek için kullanılan bileşen. En çok kullanılan olayı OnClick'tir.
 
Standart-Memo Memo : Birden fazla satıra yazı yazılabilecek bileşen. En çok kullanılan olayı OnChange'tir.
 
Standart-Panel Panel : Form penceresinde birden fazla bileşeni bir araya getirmek için kullanılan bileşen. En çok kullanılan olayı OnClick'tir.
 
Standart-PopupMenu PopupMenu : Form penceresinde bileşenlere sağ tıklandığında açılacak menüler oluşturmak için kullanılabilecek bileşen. En çok kullanılan olayı OnClick'tir.
 
Standart-RadioButton RadioButton : Form Penceresinde birden fazla seçenekten birini seçmek için kullanılabilecek bir bileşen. Her seçenek için bir RadioButton bileşeni eklenir. En çok kullanılan olayı OnClick'tir.
 
Standart-RadioGroup RadioGroup : Form penceresinde birden fazla seçenekten birini seçmek için kullanılabilecek bir bileşen. RadioButton'a benzer. Tüm seçenekler için bir bileşen yeterlidir. En çok kullanılan olayı OnClick'tir.
 
Standart-ScrollBar ScrollBar : Form penceresinde bir maksimum ve bir minimum değerler arasında değerlerin seçilebildiği ayrıca ekranda bir kaydırma gerektiğinde kullanılan bileşen. En çok kullanılan olayı OnChange'tir.
 

Delphi Additional Sayfasında Bulunan Bazı VCL Bileşenler:

Additional-Bevel Bevel : Form üzerindeki bazı nesneleri görsel olarak ayrı pencerede gibi göstermek kullanılan bileşen.
Additional-BitBtn BitBtn : Üzerine resim yerleştirilebilen buton şeklinde bileşen.
Additional-CheckListBox CheckListBox : Listbox ve check box bileşenin birleştirilmiş halidir. Verilen listeden birden fazla seçeneğin seçilmesini sağlar.
Additional-Image Image : Resim göstermek için kullanılan bileşen.
Additional-MaskEdit MaskEdit : Edit bileşenine benzer. Her türlü bilgi girişini değilde formatlı bilgi girişini kabul eder.
Additional-StringGrid StringGrid : Tablo oluşturmak için kullanılan bileşen.
Additional-Shape Shape : Form penceresine geometrik şekiller eklemeyi sağlayan bileşen.
Additional-SpeedButton SpeedButton : Kullanılabilen bir butondur. Basılınca tekrar basılıncaya kadar basılı kalabilir, birden fazla kullanılırsa RadioButton gibi davranabilir.

Delphi Win32 Sayfasında Bulunan Bazı VCL Bileşenler:

Win32-HeaderControl HeaderControl : Form üzerine birden fazla ListBox bileşeni konularak bunların beraber kullanılmalarını, yönetilmelerini ve şekillendirilmelerini sağlayan bileşen.
Win32-ListView ListView : İçindeki seçenekleri liste ve diğer şekillerde gösteren bileşen.
Win32-PageControl PageControl : Form üzerinde çoklu sayfalar sağlayan bileşen.
Win32-ProgressBar ProgressBar : Yapılan işlemin ne kadarlık kısmının tamamlandığını görsel olarak gösteren bileşen.
Win32-RichEdit RichEdit : Memo bileşenine benzer. Birden fazla satıra yazı yazılabilecek bileşen. Yazıları şekillendirmeyi, formatlamayı kabul eder.
Win32-StatusBar StatusBar : Form penceresinin en altında programla ilgili durumları göstermek için kullanılan bileşen.
Win32-TabControl TabControl : Form penceresinde çoklu sayfalar sağlayarak bunlara Tab tuşu ile geçiş sağlayan bileşen.
Win32-TrackBar TrackBar : Belirlenmiş iki değer arasında bulunan bir değerin görsel olarak seçilebilmesini sağlayan bileşen.
Win32-TreeView TreeView : İçindeki seçenekleri ağaç şeklinde gösteren bileşen.

Delphi System Sayfasında Bulunan Bazı VCL Bileşenler:

System-MediaPlayer MediaPlayer : Ses ve video formatındaki dosyaları çalıştırmayı sağlayan bileşen.
System-Ole Ole : Windows uyumlu programlarla bağlantı kurarak bilgi alışverişi sağlayan bileşen.
System-Timer Timer : Programda zamana bağlı işlemler yapılabilmesini sağlayan bileşen.

Delphi Dialogs Sayfasında Bulunan Bazı VCL Bileşenler:

Dialogs-ColorDialog ColorDialog : Program içerisinde renk seçmek için kullanılan Renk Seçme diyaloğunun kullanılmasınını sağlayan bileşen.
Dialogs-FindDialog FindDialog : Program içerisinde Bul (Find) diyaloğunun kullanılmasınını sağlayan bileşen.
Dialogs-FontDialog FontDialog : Program içerisinde yazıtipi seçmek için kullanılan Font diyaloğunun kullanılmasınını sağlayan bileşen.
Dialogs-OpenDialog OpenDialog : Program içerisinde Dosya aç diyaloğunun kullanılmasınını sağlayan bileşen.
Dialogs-OpenPictureDialog OpenPictureDialog : Program içerisinde -sadece resim dosyaları için- Dosya aç diyaloğunun kullanılmasınını sağlayan bileşen. Resim dosyaları için gelişmiş özellikleri vardır.  
Dialogs-PageSetupDialog PageSetupDialog : Program içerisinde sayfa ayarlarının yapıldığı diyaloğunun kullanılmasınını sağlayan bileşen.
Dialogs-PrintDialog PrintDialog : Program içerisinde Yazdır diyaloğunun kullanılmasınını sağlayan bileşen.
Dialogs-PrintSetupDialog PrinterSetupDialog : Program içerisinde yazıcı ayarlarının yapıldığı Yazıcı ayarları diyaloğunun kullanılmasınını sağlayan bileşen.
Dialogs-ReplaceDialog ReplaceDialog : Program içerisinde Bul ve Değiştir (Find and Replace) diyaloğunun kullanılmasınını sağlayan bileşen.
Dialogs-SaveDialog SaveDialog : Program içerisinde Dosya kaydet diyaloğunun kullanılmasınını sağlayan bileşen.
Dialogs-SavePictureDialog SavePictureDialog : Program içerisinde -sadece resim dosyaları için- Dosya kaydet diyaloğunun kullanılmasınını sağlayan bileşen. Resim dosyaları için gelişmiş özellikleri vardır.

Delphi Win 3.1 Sayfası:

Bu sayfada Windows'un 3.1 ve öncesi sürümlerinde kullanılan eski diyalog ve nesneleri programlardan kullanmak için gereken bileşenler vardır. Bu sayfadaki bileşenler pek fazla gerekli değildir ve kullanılmazlar.

Delphi Samples Sayfasında Bulunan Bazı VCL Bileşenler:

Samples-Calendar Calendar : Takvim gösteren bileşen.
Samples-ColorGrid ColorGrid : Renkleri gösteren ve seçilebilmesini sağlayan bileşen. Fareni sol tuşu yazı rengi, sağ tuşu zemin rengini seçer.
Samples-Gauge Gauge : Yapılan işlemin tamamlanan yüzdesini görsel olarak gösteren bileşen.
Samples-SpinEdit SpinEdit : İki sayı arasında bir değeri seçmek için kullanılır. Yukarı va aşağı tuşlarıyla istenen değer seçilir.

Delphinin Veritabanı ile ilgili VCL Bileşenleri:

DataAccess-DataSource DataAccess : DataAccess bileşen sayfasında bulunan bu bileşen Table, TQuery gibi bileşenlerle DataKontrol (DataControls) bileşenlerini bağlayan arabirimdir. Veritabanı programı yazılırken en az bir tane bulunmalıdır.
BDE-Table Table : BDE bileşen sayfasında bulunan bu bileşen Veritabanı dosyalarındaki tablolara fiziksel erişim sağlar. Data Access ile beraber kullanılır. Delphi7'de BDE bileşen sayfasında bulunurken daha önceki delphi sürümlerinde DataAccess bileşen sayfasında yeralmıştır.
BDE-Query Query : BDE bileşen sayfasında bulunan bu bileşen Table bileşenine benzer görevi vardır. Fakat SQL cümleleri ile çalışabilmesi Table'dan güçlü olmasını sağlamaktadır. Data Access ile beraber kullanılır. Delphi7'de BDE bileşen sayfasında bulunurken daha önceki delphi sürümlerinde DataAccess bileşen sayfasında yeralmıştır.

Delphi Data Controls Sayfasında Bulunan Bazı VCL Veritabanı Bileşenleri:

DataControl-DBCheckBox DBCheckBox : Veritabanında iki farklı değer (true-doğru veya false-yanlış) alan alanlarda değer girmek için kullanılan bileşendir. Kutu işaretli ise alan true(doğru), işaretli değilse false(yanlış) değerine sahip olur.
DataControl-DBComboBox DBComboBox : Veritabanında üzerine veri yazılarak veya aşağı doğru açılan listeden seçim yapılarak veritabanı alanına değer girilmesini veya değiştirilmesini sağlayan bileşendir.
DataControl-DBComboBox DBEdit : Veritabanında üzerine veri yazılarak veritabanı alanına değer girilmesini veya değiştirilmesini sağlayan bileşendir.
DataControl-DBGrid DBGrid: Veritabanında istenilen tablonun satır ve sutunlarını ızgara şeklinde programda göstermek için kullanılan bileşendir.
DataControl-DBImage DBImage: Veritabanında resim alanlardaki resimleri göstermek veya üzerlerinde işlem yapmak için kullanılan bileşendir.
DataControl-DBListBox DBListBox: Veritabananında var olan listeden seçim yapılarak veritabanı alanına değer girilmesini veya değiştirilmesini sağlayan bileşendir.
DataControl-DBLookupComboBox DBLookupComboBox: DBCombobox'a benzeyen ancak aşağı doğru açılan listesindeki değerleri başka bir tablodan (dosyadan) alan bileşendir.
DataControl-DBLookupListBox DBLookupListBox: DBListBox'a benzeyen ancak listesini listesindeki değerleri başka bir tablodan (dosyadan) alan bileşendir.
DataControl-DBMemo DBMemo: Veritabanında büyük metin bilgilerinin girilebildiği ve değiştirilebildiği bileşendir.
DataControl-DBNavigator DBNavigator: Veritabanı tabloları içerisinde gezinti yapabilmeyi (ilk, önceki, sonraki, enson kayıt) ve kayıt ekleme, silme, düzeltme, saklama, iptal etme, tazeleme gibi işlemleri yapabilmeyi sağlayan tuşlardan oluşan bileşendir.
DataControl-DBRadioGroup DBRadioGroup: Veritabanında birden fazla seçenek sunan ve seçeneklerden birini seçilmesine imkan vererek ilgili alana değer girilmesini sağlayan bileşendir.
DataControl-DBText DBText: Veritabananında istenen alandaki değerin sadece ekranda gösterilmesini sağlayan bileşendir.

İnternetten Bulunabilen Ücretsiz Delphi Bileşenlerinden Bazıları:

 DelphiX: DirectX, Microsoft tarafından üretilen, windows ile gelen, multimedia donanımına doğrudan ve hızlı erişim sağlayan, özellikle oyun yapımında kullanılan bir kütüphaneler topluluğudur. DirectX bilgisayarın grafik donanımına doğrudan erişir, bu da uygulamaların çok daha hızlı işlemesini sağlar. Ücretsiz DelphiX bileşen paketi, Delphi altından DirectX kullanımını sağlar ve kolaylaştırır. Delphix bileşen paketi ve örnek programlar, internette kolayca bulunabilir. DelphiX'in içinde hem kaynak kodları hem de her Delphi sürümü için hazır kurma paketleri bulunmaktadır. Delphix, borland kylix programı ile çalışmamaktadır.
 

DelphiX bileşen sayfası

 TComport: Windows ortamında seri porttan bilgi göndermek ve almak için kullanılan ücretsiz bir bileşenler paketi. Gönderilen veya alınan bilgi ile ilgili her türlü ayar (port, hız, bilgi biti sayısı, stop biti sayısı) yapılabiliyor.
 

TComport bileşen sayfası

 MaxComponents: Takvim diyalogu, karakter(sembol) diyalogu, yardım diyalogu, internet bağlantılı label, programların sadece birkez çalışmasını sağlayan bileşen gibi ücretsiz birçok bileşeni barındıran bileşen paketi. Bileşenler ayrı ayrı olarak Maxcomponents.net adresinden ücretsiz indirilebilir. Bileşenlerin herbirinin kurulum programı vardır.
 

Maxcomponents bileşen sayfası

 Essantials: 3B etiket, takvim, hesap makinesi, tarih işleme, rakam işleme, menu butonu, renk seçme listesi, arka plana resim veya renk yerleştirme, tablolarda tarih işleme, tablolarda rakam işleme bileşenleri gibi ücretsiz birçok bileşeni barındıran bileşen paketi. Bileşenler Turbopower.com/products/essentials adresinden ücretsiz indirilebilir.
 

Essantials bileşen sayfası

 ShellShock: Hakkında, Sürücü ve dizinleri gösterme, dosya sürükleme ve bırakma işlemleri, dosya işlemleri, disket-sabit disk formatlama, kısayol oluşturma, sistem traya yerleşme, vb ücretsiz birçok bileşeni barındıran bileşen paketi. Bileşenler Turbopower.com/products/shellshock adresinden ücretsiz indirilebilir.
 

Shellshock bileşen sayfası

Delphinin yardım sistemi:

Delphide komutlara, komutların ayrıntılarına ve komutlar ile ilgili örneklere ulaşmak için ayrıntılı bir yardım sistemi vardır:

Delphide bulunan en basit yardım kod penceresinde uygun bir yere fonksiyon ismi veya komut yazıldığında otomatik olarak sarı renkte kutular ekranda belirir ve bu kutularda ilgili bilgiler verilir.

Bir nesne ismi yazılıp sonuna "." işareti konulduğunda ise o nesne ile ilgili değişken ve fonksiyonların listesi otomatik olarak ekranda belirir ve bu listeden istenilen seçilerek kullanılabilir.

. ile kod tamamlama

Bir nesne ismi yazılırken Ctrl+Space tuşlarına beraber basılırsa o yazı ile başlayan alternatif tüm nesne isimleri ve komutlar liste halinde ekranda belirir ve bu listeden istenen seçilip kullanılabilir.

Ctrl+Space ile kod tamamlama

Delphide program yazarken yazılan komut veya tanımlamanın üzerine CTRL tuşuna basılı iken fare ile tıklanması halinde komut bir bağlantı halini alacaktır. Bu bağlantıya tıklayarak komutun koduna veya tanımlamaya ulaşmak mümkündür. Komut veya tanımlama delphinin veya kullanıcının kendisinin olabilir.

Ctrl+Fare ile komut koduna ulaşma

Bunların dışında Help menüsünden Delphi Help seçeneği ile komutlara, komutların ayrıntılarına ve komutlar ile ilgili örneklere ulaşılabilir. Delphi Tools seçeneği ile delphinin araçları ile ilgili detaylı bilgi bulunabilir. Windows SDK seçeneği ile ise doğrudan windows komutlarının kendisine ve ayrıntılarına ulaşmak mümkündür

Borland'ın internet sitesinde delphi ve programlama ilgili birçok .pdf yardım dosyası bulunmaktadır. Sitede yapılacak küçük bir arama ile ihtiyaç duyulan .pdf yardım dosyaları bulunabilir ve siteden ücretsiz indirilebilir. Pdf dosyalar, ücretsiz Acrobat Reader programı ile okunabilir.

Yardım dosyaları oluşturma:

Kullanıcılar kendi projeleri için yardım (.hlp) dosyaları hazırlayabilir. Bunun için Delphinin kurulu olduğu dizinde (C:\Program Files\Borland\Delphi7\Help\Tools) yardım derlemeye yarayan HCW.EXE (Microsoft Help Workshop) programı bulunmaktadır. Bu programla yardım dosyaları derlenebilir, yardım içerik dosyaları (.cnt) ve yardım proje dosyaları (.hpj) oluşturulabilir ve düzenlenebilir.

Yardım projeleri 3 adet dosyadan oluşur. Bu dosyalardan ilki yardım proje (.hpj - help project) dosyasıdır. Bu dosya yardım dosyasının yapısı ve ilgili dosyalar hakkında bilgiler içerir. Bu dosyanın adı aynı zamanda oluşacak yardım (.hlp) dosyasının da adı olacaktır. İkinci dosya ise yardım içerik (.cnt - content) dosyasıdır. Bu dosya yardımın içeriğini belirler. Bu dosyanın ismi proje dosyasının içinde belirtilir. Son dosya ise yardım bilgilerin olduğu (.rtf - rich text file ) dosyasıdır. Bu dosyada yardım dosyasının içinde bulunacak bilgiler bulunur. Bu dosyanın ismi de proje dosyasının içinde belirtilir. Bu dosya belirli düzende olmalıdır. Rtf dosyaları, Wordpad veya Microsoft Word programı ile oluşturulabilir. Yardım dosyası içerikleri ve proje dosyaları örnekleri internetten kolayca bulunabilir. Kullanıcı örneklere bakarak kendi yardım dosyalarını oluşturabilir.

DELPHIYE GİRİŞ VE YENİ BİR PROGRAMA BAŞLAMA:

Delphi, windows programlarını basitçe oluşturmak amacıyla yapılmış bir programlama aracıdır. Delphi'de programlamaya başlamak çok kolaydır. Kullanıcı başlangıçta Form Penceresine VCL bileşenleri sürükleme ve bırakma (drap and drop) suretiyle programlamaya başlar. Yapılan program geliştikçe kod penceresine kodlar ekleyerek devam eder. Programlama başlangıçta oldukça kolaydır. Daha sonra kodlama aşamasında işler zorlaşmaktadır. Ama kodlama aşamasında dahi delphi gerek içindeki araçlar gerekse yardım sistemi ile kullanıcıya yardımcı olmakta, kolaylıklar sağlamaktadır.

File ->New -> Application seçilerek başlangıçta boş bir form penceresi ve kod yazılacak -bazı kodları otomatik doldurulmuş- bir kod penceresi gelir. Programınız bu haliyle bile bir windows programıdır. Derlenirse program çalışır, büyültüp küçültebilir, tam ekran olabilir, taşınabilir ve kendi iconu vardır. Yani boş bir form bile olsa aslında bazı gerekli kodlar yazılmış ve ayarlar otomatik yapılmıştır.

Delphide yazılan programın kaydedilmesi ve yeniden açılması:

Yeni proje kendine ait bir tane proje adına, bir form'a ve unit'e sahiptir. Delphide yazılan programı ilk defa kaydederken File menüsünde Save Project As seçeneği kullanılır. Bu seçenek seçildiğinde önce .dpr uzantılı proje ismi ve sonra .pas uzantılı unitlerin isimlerini ister. Proje ismi programın da ismidir. Proje ismi herhangi bir isim olabilir. Proje ismi ile unit ismi aynı olamaz. Her ne kadar form isminin değiştirilmesi gerekmese de kaydetme işleminden önce form ismi ayarlanıp kaydetme öyle yapılmalıdır. Form dosyalarının ismi otomatik olarak ilgili unit dosyalarıyla aynı olacaktır. Form'ların isimlerinin başına fr, unitlerin isimlerinin başına un gibi standart ekler koymak programcıya kolaylık sağlayacaktır. Örneğin frHesap, unTopla gibi. Bir proje tek bir proje isminde oluşur fakat birden fazla formdan ve unitten oluşabilir. İlk kaydetme işleminden sonra File menüsündeki Save All komutuyla yapılan tüm değişiklikler kaydedilebilir.

Tek bir unit'e sahip bir proje klasöründe bulunacak dosyalara şu örneği verebilir:

mproje.dpr : Proje dosyası, program ismi
mproje.res : Proje kaynak dosyası (ikonlar,bitmaplar vb.)
mproje.dof : Proje ayarlarının saklandığı dosya
mproje.cfg : Proje derlenirken kullanılacak derleyici direktifleri
mproje.exe : Çalıştırılabilen program dosyası. Projenin derlenmiş son hali
munit.pas : Pascal programlarının bulunduğu dosya
munit.dfm : Ekran form ayarlarının saklandğı form dosyası
munit.dcu : Unit dosyasının derlenmiş hali

Buradan da anlaşılacağı gibi bir proje oluşturup sadece bir proje ismi (örneğin mproje) ve bir unit ismi (örneğin munit) verilmesine rağmen delphi tarafından bazı dosyalar yukarıdaki gibi otomatik oluşturulmaktadır.

Dpr uzantılı dosya projenin en önemli dosyasıdır. Windows ortamındada .dpr uzantılı dosyalar Delphi ile ilişkilendirilmiştir. Açmak istenilen program projesinin .dpr uzantılı dosyasınada çift tıklanırsa delphi ile birlikte otomatik açılacaktır. Exe uzantılı dosyalar ise Proje derlendikten sonra oluşan çalıştırılabilir program dosyalarıdır. Bunlar çalışmaları için delphiye ihtiyaç duymazlar.

Dfm uzantılı dosyalar projede kullanılan formlar ile ilgili bilgilerin saklandığı dosyalardır. Bir projede en az bir adet form bulunur. Her form ile ilgili pascal kodları o formla aynı adı taşıyan .pas uzantılı dosyada bulunur. Res uzantılı dosyalar delphi projelerinde kaynakların saklandığı dosyalardır. Program icon'u veya programda kullanılacak herhangi bir bitmap bu dosyalarda saklanabilir. Bu dosyalara eklenmiş bir kaynak herhangi bir anda kullanılabilir. Diğer uzantılara sahip dosyalar ise delphi tarafından otomatik oluşturulup programcı tarafından nadir olarak değiştirilirler.

Delphide önceden kaydedilmiş bir programı açmak için File menüsünde Open Project seçeneği seçilir. Açılan Dosya Aç diyaloğundan önceden kaydedilen .dpr uzantılı dosyayı seçilirse program projesi açılır.

Delphide yapılan proje ile ilgili işlemler bittiğinde File menüsündeki Close All seçeneğiyle yapılan iş kapatabilir. Delphi programınından çıkmak için ise File menüsünden Exit'in seçilmesi yeterlidir.

Delphide yazılan programın çalıştırılması:

Delphide yazılan programı çalıştırmak için Run menüsünde Run komutunun seçilmesi veya F9 tuşuna basılması yeterlidir. Bu yapıldıktan sonra program derlenerek programın .dpr uzantılı dosyasıyla aynı yerde .exe dosyası oluşturulur ve bu oluşturulan program çalıştırılır. Delphi kapatılsa dahi oluşturulan .exe dosyası silinmez ve aynı yerinde kalır. Run menüsünde Program Pause kullanılarak programın çalışmasına ara verebilir. Yaptığımız programda bir hata oluşması durumunda Run menüsünde Program Reset seçeneğini seçerek veya Ctrl+F2 tuşlarını kullanarak kilitlenmeyi önlenebilir program yeniden sıfırlanmış olarak başlatabilir.

Projeyi çalıştırmadan sadece derlemek için Project menüsününde Build komutu kullanılır. Delphi, derleme yaparken projenin tüm kod dosyalarını, son derlemeden bu yana değişip değişmediğini kontrol eder ve sadece değişen dosyaları derler. Projedeki tüm dosyaları değişikliğe uğrayıp uğramadığına bakmadan derlenmesi istenirse Project menüsünden Build All Projects komutunu verilmelidir. Project menüsündeki Information for komutu ile yapılmış olan en son derleme hakkında bazı bilgileri görülebilir.

Delphide DOS programı yazma ve çalıştırma:

Delphi, windows programları oluşturmak için yapılmıştır. Fakat Delphi ile DOS programları da yapılabilir. Delphinin derleyicisi (dcc32.exe) dos programları derleyebilir. Delphide dos programı oluşturmak için dos programı .dpr uzantılı dosya içerisine yazılır. Yalnız program satırının altına {$APPTYPE CONSOLE} direktifi eklenmelidir. Bu delphi derleyicisine yazılı programın Dos programı olduğu ve kodun buna göre derleneceğini belirtir. File -> New -> Other-> Console Application seçilmesiyle de aynı kodlar elde edilebilir.

Programın yazılması bittikten sonra çalıştırma ve derleme windows programları ile aynıdır. Aşağıda delphide yapılmış bir Dos programı görülmektedir:
 

Programın kodu:

Program Project1;
{$APPTYPE CONSOLE}

uses SysUtils;

Begin
Writeln('Deneme yazisi');
Readln;
End.
Programın Dcc32 ile Dos satırında derlenmesi:

Dcc32 Project1.dpr {Enter}

Proje .dpr yerine .pas uzantılı olabilir. Fakat .pas dosyası delphide derlenip çalıştırılamaz. Yalnızca Dcc32 ile derlenebilir ve dos komut satırında program ismi yazılarak çalıştırılabilir.

DELPHIDE BASİT BİR UYGULAMA:

Windows işletim sisteminde bütün nesneler birer penceredir. Windows bunların birbirleriyle olan mesajlaşmasını sağlar. Delphi uygulamalarında formlar diğer bütün nesneleri ihtiva eden penceredir. Yeni proje açtığımızda ilk olarak karşımıza boş bir form gelir. Biz bu formun üzerine kullanıcı ihtiyacına göre diğer nesneleri (VCL bileşenleri) sürükler ve bırakır. Uygulamaya birden fazla form eklenebilir. İlk form Ana form, diğer eklenen formlar yardımcı formlar olacaktır. Aşağıda üzerine buton eklenmiş bir ana form ve delphi tarafından otomatik oluşturulmuş kaynak kodu görülmektedir:

Programın Proje dosyası:
program Project1;
uses Forms, Unit1 in 'Unit1.pas' {Form1};
{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Programın Unit dosyası:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
Button1: TButton;
private
{ Private declarations }
public
{ Public declarations }
end;

var Form1: TForm1;
implementation
{$R *.dfm}
end.
Programın Form dosyası:
object Form1: TForm1
 Left = 281
 Top = 164
 Width = 335
 Height = 241
 Caption = 'Form1'
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = 'MS Sans Serif'
 Font.Style = []
 OldCreateOrder = False
 PixelsPerInch = 96
 TextHeight = 13
 object Button1: TButton
  Left = 96
  Top = 56
  Width = 97
  Height = 25
  Caption = 'Button1'
  TabOrder = 0
 end
end

Program kodlarının açıklaması :

Burada bulunan dosyalar ve kodlar kimsenin gözünü korkutmasın. Programcı sadece yeni bir proje açmış ve bunun formunun üzerine fare ile Standart sayfasında bulunan TButton VCL nesnesini sürükleyip bırakmıştır. Kodlar ve dosyalar delphi tarafından otomatik oluşturulmuştur:))

Burada asıl program proje dosyası içindedir. Delphi, proje dosyasının başlangıcında bulunan uses kısmından kendi Forms kütüphanesini ve kullanıcının kendi oluşturduğu Unit1.pas dosyası içinde bulunan Unit1 unit'ini kulanılanacağını anlar. {$R *.res} kısmında ise otomatik oluşturulacak res uzantılı dosyadan programın iconlarını ve diğer kaynaklarını alır. Program begin ve end. arasında bulunur. Application.Initialize, programın hazır hale getirileceğini gösterir. Application.CreateForm(TForm1, Form1), TForm1 sınıfından Form1'in oluşturulacağını gösterir. Application.Run, Unit1'e yazdığımız veya otomatik oluşturulan kodların çalıştırılacağını gösterir.

Unit dosyasının başlangıcında uses kısmında delphi program için gerekli olan kütüphaneleri otomatik ekler. Kullanıcı kendisine ait bir unit oluşturursa kendisinkini de ekleyebilir. Type kısmında ise TForm1 sınıfı tanımlanır. Bu sınıf, formun özellikleri ve form üzerinde bulunan nesneleri tanımlar. Formda TButton Nesnesi bulunacaktır. Altta var bloğunda ise TForm1 sınıfı kullanılarak Form1 nesnesinden bir adet oluşturulacaktır. {$R *.dfm} kısmında bulunan bütün form dosyalarını kullanılacağını gösterir. Bu dosyalarda formumuzun ve form üzerinde bulunan nesnelerin özellikleri saklıdır. Bu kısımdan sonra end. kısmına kadar olan kısımda ise kullanıcının yazacağı kodlar bulunacaktır.

Uygulamanın geliştirilmesi:

Var olan uygulamanın geliştirmesi için form üzerine yeni bileşenler eklenmeli ve bu bileşenlerle ilgili kodlar kod penceresinde ilgili yerlere yerleştirilmelidir. Form üzerinde bulunan bir butona tek tıklandığında yazıyı "Hoş Geldiniz..." şeklinde değiştirecek uygulama şu şekilde olacaktır:

Form üzerinde yazının görünmesi için uygulamaya bir adet TLabel bileşeni eklenmesi gerekmektedir. TLabel form üzerine yazı yazmak için kullanılan bir bileşendir. Form üzerine TLabel bileşeni eklendiğinde TForm1 sınıfının içine Label1: TLabel; satırı otomatik olarak belirecektir.

Delphide basit bir proje resmi

Form üzerinde artık bir adet Button ve bir adet Label vardır. Buttonun üzerinde "Button1" yazarken, Label ise "Label1" şeklindedir. Button'a tek tıklandığında Label'in değişmesini sağlamak için Buttonun "OnClick" olayına gerekli kodun yazılması gerekir. Bunun için Button seçili iken Object Inspectorun Events kısmında Onclick'e tıklanır. Kod Penceresinde implementation ve {$R *.dfm} satırlarının altında aşağıdaki kod belirir:

Kod içinde begin ile end; arasına yazılacak kod Buttona tek tıklandığında çalışacaktır. Burada yapılan Button'un tıklama (OnClick) olayına kod yazmaktır. Ekrandaki yazının "Hoş Geldiniz..." şekline gelmesi istendiğinden Label1'in Caption özelliğinin değiştirilmesi yeterlidir. Kod aşağıdaki şekilde olacaktır:

Program çalıştırıldığında Label1 önce "Label1" şeklinde iken Button'a tek tıklandığında "Hoş Geldiniz..." şekline dönüşmektedir. Fakat Label1 başlangıçta "Label1" olarak görünmektedir. "Label1" yazısının başlangıçta "Merhaba" şeklinde olmasını istenirse bunu Label1 seçiliyken Object Inspectorun Properties kısmından Caption değiştirilerek yapılır. Yani program başlarken olması gereken ayarlar (tasarım anı ayarları, design-time settings) Properties'ten yapılırken, program çalışırken olması gereken ayarlar (run-time settings) program kodu ile yapılır. Tasarım anında değiştirilebilen tüm özellikler çalışma anında da -program kodu ile- değiştirilebilir.

Bazı Ufak Deneme Programları

Delphide 3d programlama

Comport

Puzzle

Tetris


 
FacebookBloggerDiggRedditMyspaceWordpressTwitter09 Mayıs 2011 Pazartesi - Programlama - Yorum Yaz/Oku (0)- #