You are on page 1of 48

Merhaba Sevgili arkadaşlar!

DELPHI ’yi çalıştırmak için;


Şekildeki gibi Başlat\Programlar\Borland\Delphi6
Delphi çalışınca,ekrana böyle bir görüntü gelir.
Delphi Hakkında

Delphi'nin hangi sürümü olursa olsun,


genel anlamda Delphi'yi öğrendiğiniz
zaman yeni sürümü kullanmakta hiç bir
zorluk çekmeyeceksiniz."
"Her sürümde Pascal dili temeli
bulunmaktadır. Sürümler arasındaki fark
genelde gelişen teknolojiye göre Pascal
diline yeni eklentilerin yapılması ve yeni
bileşenlerin eklenmesi olarak
özetlenebilir.
Nesne Yönelimli Programcılık

Nesne Yönelimli Programlama konusunun


amacı okuyucuya nesne yönelimli
yaklaşım hakkında bilgi vermek ve nesne
yönelimli programlamanın Delphi ile
başarımını anlatmaktır.

Konu aynı zamanda bileşen yazımı için


gerekli temel bilgileri de içermektedir.
OLE Kullanımı

OLE kullanımı konusunun amacı OLE


(Object Linking and Embedding)
hakkında okuyucuyu bilgilendirmektir.

Konu içerisinde Microsoft Excel ve


Microsoft Word uygulamalarının Delphi
uygulaması ile kontrolü hakkında genil
bilgi bulunmaktadır.
Ve Bunun gibi bir sürü kolaylık;

ARTIK DERSLERE
BAŞLIYORUZ.
Delphi Dersleri - 1

1 numaralı : kısım Object Inspector


Delphi Dersleri - 1

2 numaralı kısım Bileşen menüsü (Components)


Delphi Dersleri - 1

3 numaralı kısım Form tasarım


Delphi Dersleri - 1

4 numaralı kısım ise Kod penceresi


Object Inspector (1): Türkçesi "Nesne
Müfettişi" olduğu için biz en iyisi hep ingilizcesi
ile hitap edelim bu arkadaşa :) Herhangi bir
nesnenin özelliklerini (property) ve Olaylarını
(Event) ayarlamak ve değiştirmek için kullanılır.
Delphi de form tasarlarken form üzerine
yerleştirdiğiniz her buton , panel, edit, label vs.vs
hatta formun kendisi de birer nesnedir.
Nesnelerin özellikleri ve olayları vardır. Mesela
form üzerine koyduğumuz bir TButton nesnesinin
Caption property'sini değiştirerek o düğme
üzerinde yazan yazıyı değiştirmiş oluruz. Daha
sonra bu nesnenin OnClick olayına bazı kodlar
ekleyerek bu düğmeye tıklama eylemi
gerçekleştiği zaman tetiklenecek kodları
belirleriz.
Yandaki resimde ise
Object Inspector daha
ayrıntılı bir şekilde
görülmekte...
Object Inspector iki
bölümde oluşur. Property
(Özellikler) ve Events
(Olaylar). 1 nolu kısım
Property 2 nolu kısım ise
Events sekmesini açar. 3
nolu kısımda o form
üzerinde ne kadar nesne
varsa listesini görebilir ve
tıkladığınız zaman o
nesneye ait özellikler
object inspector'a gelir.
4 nolu kısımda seçili
nesnenin özelliklerinin
isimleri ve 5 nolu kısımda da
o nesneye ait özelliklerin
değerleri vardır. Bu değerleri
istediğimiz gibi
değiştirebiliriz.
Bileşen kütüphanesi (2): Bu kısımda ise
formumuzda kullanabilecğeimiz nesneler
gözükmektedir. Forma yerleştirmek istediğimiz
herhangi bir nesneyi seçip tıklayıp daha sonrada
formumuza götürüp herhangi bir yere tıkladığımız
zaman o nesneyi form üzerine yerleştirmiş oluruz.
Standard, Additional, Win32, Data acces gibi
sekmelerin içlerinde bir çok component (bileşen yada
nesne) görüyorsunuz... Bu şekilde bileşenleri
formumuza koyarak projemizi oluşturacağız... Bu
yazılarda en çok Standard, Additional , Dataacces ve
Datacontrols bileşenlerini kullanacağız...
Form Tasarım (3): Gördüğünüz üzere burda da
formumuzu tasarlıyacağız. Bilişen menüsünden
herhangi bir bileşeni tıkladıktan sonra form
üzerinden herhangi biryere tıklayınca o bileşenin
form üzerine taşındığını göreceksiniz... Form
üzerinde bir bileşeni fare ile tutup başka bir yere
taşıyabilirsiniz. Veya Ctrl + Ok tuşları ile de
yapabilirsiniz. (Shift + Ok tuşları ile nesnenin
boyutunu kısayoldan ayarlayabilirsiniz...)
Kod penceresi (4): Bu kısımda da projemizin ve
unitlerimizin object pascal kodlarını görmekteyiz.
IDE yani Delphi uygulama geliştirme arabirimimizi bu
şekilde kısaca anlatmış olduk. Bu 4 kısım arasında
geçişler yapmak birçok zaman size zor gelecektir.
Object inspector kod penceresinin altında kalabilir veya
kod penceresi formumuzun altında kalabilir veya
bileşen menüsü kaybolur maybolur onun için F11 ve
F10 tuşlarına eminim kısa sürede çok alışacaksınız...
Yine en çok kullanacağımız tuşlardan bir taneside F9
olacak. Bu tuş ile projemizi derleyeceğiz ve çalışır .exe
uzantılı dosyamızı huşu içinde izleyeceğiz.
Bir sonraki derste Delphi'deki Proje ve Unit kavramları
üzerinde duracağız ardından kısaca Object Pascal diline
değineceğiz. Procedure ve Fonksiyon nedir? bunlardan
da bahsedeceğiz.
Delphi Dersleri - 2
Bu yazımızda Delphi'deki Unit ve Proje
kavramından bahsedeceğiz ve Object Pascal
dilini kısaca anlatacağız. (Tanımlamalar,
Atamalar, Döngüler, Kontrol yapıları,
Fonksiyon ve Prosedürler)
Delphi Dersleri - 2
Delphi'de yazdığımız bir program tamamen ele alındığında ona
proje deriz. Bu projenin içindeki anaform , diğer formlar mesela
atıyorum arama formu, kayıt formu, hakkında formu vs. bunların
hepsi birer unit'dir. Ve bunları biz bir proje altında birleştiririz. Her
unit için ve projemiz için Delphi kendiliğinden dosyalar oluşturur.
(Bu dosyaların tiplerine daha sonra değineceğiz) Unit dosyaları
genelde form dosyalarımızdır yani hem kodları olur hemde görsel
tasarımları olur ama proje dosyamızın sadece kodları vardır.
Delphi Dersleri - 2
Zaten dedik ya proje; unitleri birleştiren bir çatıdır. Program
yazdıkça bu kavramları daha iyi anlayacaksınız. Yeri gelmişken
değinelim. Mesela siz arama formunda bir tuşa tıklanınca kayıt
formunda bir olayın tetiklenmesini istiyorsunuz. Bu iki form ayrı
ayrı unitler oldukları için arama formumuzun kod kısmına kayıt
formunu yani unit'ini tanımlamamız gerekir. Bunu aşağıda
görüldüğü şekilde yapabiliriz.
Aslında bu işi Delphi çoğu kez bizim yerimize yapar.
Projeyi derlemeye çalıştığımızda bizi uyarır ve uses
satırına gerekli unit'in adını kendisi ekler.

Delphi'yi ilk açtığımızda projemiz ve


anaformumuz kendiliğinden oluşur. Yeni bir form
eklemek istediğimiz zaman File > New Form
menüsünü kullanabiliriz. Böylece projemize yeni
bir form yani yeni bir unit eklemiş oluruz. Formlar
arasında geçiş yapmak için Shift + F12 tuşlarını
kullanabilirsiniz.
Böylece proje ve unit kavramlarından kısaca bahsetmiş
olduk. Birde Delphi'nin kullandığı ve oluşturduğu
dosyaların ne işe yaradığına değinelim.
Dosya Kısaltması (daha
Ne işe yarıyor peki?
Uzantısı doğrusu uzatması)

.DPR Delphi Project Proje dosyası

.DFM Delphi Form Form tasarım dosyası

.PAS Pascal Form (unit) kod dosyası

.DCU Delphi Compiled Unit Derlenmiş Unit dosyası

.EXE Executable Çalışabilir dosyamız


Object Pascal
Sabitler : const bloğunda tanımlanır ve tüm program
boyunca değişmeyen değişkenlerdir :) Mesela bir
değeri biz program içinde bi çok keresinde
kullanıyorsak ve bu değer hiç değişmiyorsa bunu sabit
olarak tanımlarız.
Const
dakikasaniye = 60;
saattedakika = 60;
hafta = 7;
yil = 365;
gibi... Bu deklarasyonu kod penceresinde var
bloğundan üste bir yerlere açabiliriz.
Değişkenler : Değişkenler programlarımızın olmazsa olmaz
parçalarıdır. Bir değişken program içinde runtime'de istenildiği gibi
değişebilir. Mesela programımızda kullanıcıdan bir fiyat girmesini
istiyoruz ve buna kdv oranının eklenerek gerçek fiyatının bulunmasını
istiyoruz. Eğer bu programda kdv oranını sabit olarak tanımlarsak
kdv oranı değiştiği zaman programımız çalışmayacaktır. Eğer burada
kdv oranını kullanıcıdan istersek kdv oranı ne olursa olsun program
çalışacaktır. Aslında programlarda kullanıcıdan istenen her bilgi de bir
değişkende tutulur...
Değişkenin adı ; onu tanımlar ve daha sonra bu isimle ona
ulaşmamızı sağlar. Değişkenin tipi; üzerinde çalıştığımız değişkene
ne tür bilgiler girebiliriz onu belirler. Değişik tipler hafızada ve diskde
değişik alan kaplar. Değer; değişkenimizin hafızada kapladığı alan
içinde o andaki değeridir. Hafızadaki alan; değişkenin tutulduğu
gerçek hafıza adresidir. RAM üzerinde herhangi biryerdir.
Var
Isim, soyad : string;
Yas : Byte;
Maas : Integer;
Telefon : String;
Var deklarasyonu bu şekilde oluşturulur.
Değişken tipleri :
Integer > Tamsayı (Shotint, smallint, longint, byte, word, int64)
Real > Gerçek sayılar
(real48,single,double,real,extended,comp,currency)
String > Alfanumerik karakterler dizileri (string)
Booelan > Mantıksal (booelan)
Parantez içindeki her kelime aslında birer tipdir ve özellikleri farklıdır.
Uzun uzadıya hangisi ne kadar alan kaplar max ne kadar veri alabilir
yazmadım. Bu yazımızda dizilerden ve kümelerden de
bahsetmeyeceğiz ama eğer ilerde yeri gelirse değineceğiz.
Kontrol yapıları ve döngüler:
If deyimi: Karar verme ve koşul sağlama işlemleri if
deyimi ile yapılır. Kullanım şekli
If koşul true ise then birşeyler yap else yani eğer
doğru değilse bu sefer de şunları yap;
If den sonra koşulumuzu yazarız mesela a=5 ise veya
isim='ahmet' ise gibi. Sonra bu kaşul doğru olduğu
takdirde işlenecek kodları then kelimesinin ardından
yazarız. Eğer yazacağımız kodlar bir satırdan fazla ise
begin end; bloğu içine alırız. Else cümlesinden sonra ise
koşulumuz sağlanmazsa işlenecek kodları yazarız. Her
koşul cümlesinde illaki else kullanmak gerekmez. Yani
else opsiyoneldir.
While düngüsü : Yapısı şu şekildedir. while sart=true do ifadeler;
Bir örnek üzerinde inceleyelim.
i := 1;
while i <= 10 do
begin
showmessage ( Inttostr(i) );
i := i + 1;
end;
Bu örneğimizde i değişkenin değeri ilk başta 1 olarak atanıyor ve bir
döngü başlıyor. While döngüsü şartı kontrol ediyor. Bu örnekte
şartımız i nin 10 dan küçük veya eşit olması. Eğer şart sağlanırsa
begin end; bloğu içindeki kodlar icra ediliyor sağlanmaz ise while
döngüsü çalışmadan sonlanıyor yeni döngüye hiç girilmiyor.
Sağlandığı takdirde ilk olarak i nin o andaki değeri showmessage ile
ekrana yazdırılıyor. Daha sonra i:=i+1; ile i nin o anki değeri bir
artırılıyor. Sonra while tekrar koşulu kontrol ediyor bu sefer i nin
değeri 2 olduğu için şart yine sağlanmış oluyor taaki 11 e kadar. 11
olunca i şart sağlanmıyor ve döngü bitiyor.
Repeat Until ve For döngülerinden ilerde
bahsedeceğiz.
Bu yazımızında sonuna geldik. Bundan sonraki
yazımızda yine Object Pascal üzerinde
duracağız ve bu derste anlatamadığımız repeat
until ve for döngüsünden, case kontrol yapısından
, procedure ve function'lardan bahsedeceğiz ve
bazı örnekler yapacağız.
Delphi Dersleri - 3
Bu yazımızda yine Object Pascal 'dan biraz daha
bahsedip yavaş yavaş görsel programlamaya geçeceğiz.
Öncelikle bir önceki dersten yarım kalan repeat until
ve for döngüsünü ve case kontrol yapısını ardından
prosedür ve fonksiyonları anlatacağız.
Repeat until: While döngüsüne çok benzer, arasındaki
tek fark şart ne olursa olsun icra edilecek kodlar bir
defa hiç şarta bakılmaksızın icra edilir ve daha sonraki
döngüler için şarta bakılır.
i := 1;
repeat
showmessage (inttostr (i) );
i := i + 1;
until i = 11;
For döngüsü: Bu döngüde başlangıç ve
bitiş değerleri vardır. Bu ardışık değerler için
döngü o sayıda tekrarlanır. Mesela
döngümüz 50 den 75 e kadarsa 25 defa
kodlarımız icra edilir.
Görüldüğü üzere i yi kendimiz artırmak
zorunda değiliz. For döngüsü kendi kendine i
nin değerini 1 den taa 10 a kadar birer birer
artıracaktır.

For i := 1 to 10 do
begin
showmessage (inttostr (i) );
end;
Case kontrol yapısı : İç içe birden çok if deyimi
kullanmak gerekirse veya çoklu seçim yapmak istersek
case deyimini kullanabiliriz.
Bu örnekde kayit arama cikis gibi ifadeler birer
prosedürdür. Yani şart sağlanırsa bir prosedür icra
edebileceğimiz gibi begin end; blokları arasında kodlar
da yazabiliriz.
Case menusecenek of
1 : kayit;
2 : arama;
3 : cikis;
4 : begin
showmessage ('bu bölüm gecici olarak iptal
edilmisitir');
end;
else showmessage ('yanlis tusa bastiniz');
end;
Altyordamlar:
Programların kodları arttıkça karmaşıklığıda artar.
Tekrarlanan kodları herseferinde yazmak hem kullanıcıya
zaman kaybettirir hemde programı gereksiz yere şişirir,
boyutunu artıtır. Object Pascal bu problemleri önlemek
için bazı görevleri ve kodları bazı altyodamlara böler. 2
çeşit altyordam vardır prosedür ve fonksiyon.
Prosedür: Çalıştırılabilir program parçalarının daha küçük
anlamlı parçalara bölünmesini sağlarlar. Prosedürler
değişken alırlar.
Fonksiyonlar : Fonksiyonlar programların anlamlı ve
küçük parçalara bölünmesinden başka değer de
döndürürler. Fonksiyonlar ve prosedürler parametre
alabilecekleri gibi almayabilirlerde...
unit Unit1;
interface uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs,
StdCtrls;
var
Form1: TForm1;
procedure yazdir (var sonuc:integer);
function min (x,y : integer) : Integer;
implementation
{$R *.DFM}
procedure yazdir (var sonuc:integer);
begin
showmessage ('en kucuk sayi ' +
inttostr(sonuc));
end;
function min (x,y : integer) : Integer;
begin
if x < y then min := x
else min := y;
end;
procedure TForm1.Button1Click(Sender: TObject);
var sonuc : integer;
begin
sonuc := min(5,3);
yazdir (sonuc);
end;
end.
Delphi Dersleri - 3

STANDART BİLEŞEN PALETİNDEKİ NESNELER

Öncelikle Standart bileşen paletindeki sık


kullanılan nesneleri tanıyalım.
1-TMainMenu Bileşeni:

Menü oluşturmamızı sağlar.


2-TPopupMenu Bileşeni:

Bir nesneye sağ tıklama sırasında çıkan


menüyü hazırlamadır.
3-TLabel Bileşeni:

Değişik fontlarda yazı yazmamızı


sağlar.
4-TEdit Bileşeni:

Şifreli yazıların yazılması ile * karekterinin


çıkmasını sağlar.
5-TMemo Bileşeni:

Uzun yazıların yazılmasını sağlar.


Memo1.Lines.LoadFromFile('c:\a.txt'); //c
deki a.txt dosyasını memonun içine açar.
Memo1.Lines.SavetoFile('c:\a.txt'); //c deki
a.txt dosyasına memonun içeriğini
kaydeder.
6-TButton Bileşeni:

Butonun üzerine tıklandığında icra


edilecek kodları Button1 'in
OnClick(tıklandığında) olayına yazarız.
7-TRadioButton Bileşeni:

Bu bileşen tek başına çok fazla


kullanışlı olmadığı için bunu
TRadioGroup bileşeninde
anlatacağım.
8-TListBox Bileşeni:

Form üstünde kullanıcılara herhangi bir


listenin gösterimesi yada listeden herhangi
bir elemanın seçilmesi için kullanılır.Listbox
içinde görünmesini istediğimiz elemanları
items isimli özelliğine yazabiliriz.
9-TCombobox Bileşeni :

Bu bileşen aslında TListBox bileşenine


çok benzer ve daha cok yerden kazanmak
için kullanılır. Listboxtaki komutların
hemen hemen aynısı ComboBox içinde
geçerlidir.
10-TRadioGroup Bileşeni :

RadioButton bileşenlerinin biraraya


gelmesiyle oluşur ve bu bileşenlerin yine
items adında bir özelliği vardır. Hangi
elemanın seçili olduğunu itemindex
özelliği ile anlayabiliriz.
Derslerimiz Burada Bitiyor.

Gerisi siz ve sizin araştırmacılığınıza


kalmıştır.Örnekler yaparak kendinizi
geliştirebilirsiniz.

You might also like