Delphi’ye giriş ve yeni programa başlama.

M4K4R

Kıdemli Üye
14 Mar 2017
4,368
3
Delphi’ye giriş ve yeni bir 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 simgesi 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. Bütün dosyaları projenin kaydedildiği dizinde bulmak mümkündür.


Bir proje klasöründe bulunabilecek dosyalara şu örnek verilebilir:

.dpr : Proje dosyası, program ismi.
.res : Proje kaynak dosyası (ikonlar,bitmaplar vb.) Proje ile ilgili ve genellikle simgesini içeren ikili dosya. Bu türden başka dosyaları da projeye eklemek mümkündür. Derleme için gereklidir.
.dof : Proje ayarlarının saklandığı metin dosyası. Sadece özel derleme seçenekleri atandıysa gereklidir.
.cfg : Proje derlenirken kullanılacak derleyici direktiflerini, proje seçeneklerini içeren metin dosyası. Sadece özel derleyici seçenekleri ayarlandığında gereklidir.
.exe : Çalıştırılabilen ikili program dosyası. Tüm derlenmiş üniteleri, kaynağı ve formları içerir ve programın baştan derlenmesi ile güncellenebilir.
.pas : Pascal programlarının bulunduğu metin dosyası.
.dfm : Ekran form ayarlarının saklandğı metin dosyası.
.dcu : Unit dosyasının derlenmiş hali olan ikili dosya.
.bpl : Borland Paket Kütüphanesi (Borland Package Library). Delphi ortamı tarafından tasarım kipinde veya diğer uygulamalar tarafından çalışma kipinde kullanılacak VCL bileşenlerini içeren bir DLL. Paketleri diğer Delphi geliştiricilerine ve duruma bağlı olarak son kullanıcılara dağıtmak için gerekir.
.dcp : Delphi Bileşen Paketi (Delphi Component Package). Pakette derlenen kod için sembol bilgilerini içeren bir dosya. Dcu dosyalarında saklanan derlenmiş kodu içermez. Paketleri kullandığımızda gerekir. Bu dosya bir projenin parçası değildir ve Delphi tarafından bir paketin derlenmesi sonucu oluşturulur.
.dll : Dinamik Bağlama Kütüphanesi ( Dinamic Link Library). Projelerde kullanabilecek fonksiyonların projeden bağımsız ayrı saklandığı kütüphane dosyaları.


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 simgesi 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.

Delphi’de basit bir 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:

rJyopm.jpg

Programın Proje dosyası: (Project1.dpr)

Kod:
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ı: (Unit1.pas)

Kod:
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ı: (Unit1.dfm)

Kod:
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

Herhangi bir formun içeriğini Delphi çalışırken de yazı olarak görmek mümkündür. Bunun için forma sağ tıklanıp View as Text seçeneği seçildiğinde form kaybolacak ve formun içeriği yukarıdaki form dosyası gibi yazı olarak görünecektir. Bu yazıda değişiklik yapılarak form düzenlenebilir. Formu tekrar eski halinde görmek için yazıya sağ tıklanıp View as Form seçeneğini seçmek yeterlidir.

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 simgelerini 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.

rJyov3.gif

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:
procedure TForm1.Button1Click(Sender: TObject);
begin
 
end;

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:

Kod:
procedure TForm1.Button1Click(Sender: TObject);
begin
 Label1.caption := 'Hoş Geldiniz...';
end;

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.

Forma eklenen bileşenlere isim verirken bileşenin türü ve yapacağı işe uygun isim verilmelidir. Örneğin tıklandığında toplama işlemi yapacak bir Tbutton bileşeninin ismi Button1 olabilir. Bu çalışır fakat bileşene btTopla gibi bir isim verilirse hem bileşenin türü hemde yapacağı iş belirtilmiş olur. Örneğin TButton için btCikis, TLabel için lbYazi, TEdit için edtGiris vb… Bu yöntem tanımlanan tip ve değişkenlere de uygulanabilir. Bu programcıya ileride kodlar üzerinde işlem yaparken okuma kolaylığı sağlayacaktır.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.