Delphi ile gelen şablonlardan yararlanmadan bir proje hazırlayıp bu projenin bir forma sahip olmasını sağlayacağım. Bu işlemin nasıl yapıldığını anlatmak için minimum özelliklere sahip bir Console Application hazırladım.

Delphi ile gelen Console Application şablonu ile proje hazırlandığı zaman DPR dosyasına {$APPTYPE CONSOLE} direktifi eklenerek uygulamanın konsol uygulaması olduğu işaret edilmektedir. APPTYPE direktifi derleyiciye verilmediği zaman bu direktifin {$APPTYPE GUI} olduğu varsayılmaktadır. Bu direktifi sildikten sonra Uses bloğunda uygulamaya Forms adlı unit’i dahil edip koda Type bloğu ekleyip TForm sınıfının özelliklerini miras alan “TForm1” adında bir Class hazırladım.

Hazırladığım bu Class’ta Create() adında bir metot bulunmaktadır. Bu metot class’tan nesne hazırlarken kullanılacaktır. Nesneye yönelik programcılıkta yeni iseniz bu kodda size yabancı gelecek kavramları sorun yapmayın derim.
Bu şekilde kısıtlı özelliklere sahip bu Class’ı hazırladıktan sonra Delphi projesinin DPR dosyasında Var bloğuna yer verip Class’tan yararlanıp nesne hazırlarken işime yarayacak değişkeni tanımladım.
uses
SysUtils, Classes, Forms;
Type
TForm1 = Class(TForm)
public
constructor Create(AOwner : TComponent);
Override;
End;
Var
Form1 : TForm1;
begin
end.
Bu şekilde kendi hazırladığım Class’ın tipinde değişken tanımladıktan sonra sıra Class’ın deklare edilen Create() metodunu kodlamaya geldi. Yukarıda belirtildiği gibi kendi hazırladığım sınıfın Create metodu class’tan yola çıkıp nesne hazırlarken kullanılacaktır.
program Project1;
uses
SysUtils, Classes, Forms;
Type
TForm1 = Class(TForm)
public
constructor Create(AOwner : TComponent);
Override;
End;
Var
Form1 : TForm1;
constructor TForm1.Create(AOwner : TComponent);
Begin
inherited CreateNew(AOwner);
SetBounds(10, 100, 300, 250);
Caption := 'Form';
End;
begin
end.
Bu şekilde Class’ın Create metodunu hazırladıktan sonra sıra uygulamanın Begin-End deyimleri arasına işletilecek satırlarını yazmaya geldi. Tahmin edeceğiniz gibi Begin-End deyimlerinin arasında nesne hazırlama ve Application nesnesi ile ilgili satırlar olacaktır.
program Project1;
uses
SysUtils, Classes, Forms;
Type
TForm1 = Class(TForm)
public
constructor Create(AOwner : TComponent);
Override;
End;
Var
Form1 : TForm1;
constructor TForm1.Create(AOwner : TComponent);
Begin
inherited CreateNew(AOwner);
SetBounds(10, 100, 300, 250);
Caption := 'Form';
End;
begin
Form1 := TForm1.CreateNew(Application);
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Bu kodda “TForm1” adını verdiğim Class’ın yapıcı veya Constructor metodunda hazırladığım form nesnesinin boyutlarını ve başlığını belirledim. Bu şekilde düzenlenen proje çalıştırıldığında aşağıdaki gibi bir sonuç alınır.
