FORM TASARIMI

Amaçlar:

 

-Form tarasımını açıklamak.

-Form üzerinde kullanılan araçları açıklamak.

 

I. FORM TASARIMI

Formlar Delphi uygulamalarının görsel arabirimini oluştururlar. Başlanılan bir Delphi uygulamasında Form1 adında boş bir form yaratılır. Bu form uygulamanın penceresi olur. Bu nedenle uygulamadaki gereksinimlere göre formun tasarımın gerekir. Formun tasarımı için Component Palette'den bileşenler form üzerine eklenerek arabirim tasarlanır.

 

Şekil 3.1: Form

Bu açıdan formlar görsel ve görsel olmayan bileşenlere konteynerlik yaparlar. Görsel bileşenler metin kutusu, grid vb kontroller olurken, görsel olmayan bileşenler ise özellik veritabanı bağlantılarında kullanılan bileşenlerdir.

 

 

Formlar uygulamanın kullanıcı arabirimini oluşturur. Bu nedenle uygulama geliştirmede önemli rol oynarlar.

 

En basit düzeyiyle form tasarımı şu konuları kapsar:

 

1) Formları yaratmak

 

2) Form üzerindeki bileşenleri yerleştirmek

 

3) Bileşen özelliklerini düzenlemek

 

4) Bileşenlerin olaylara yanıt vermesini sağlamak için kod yazmak.

 

A. İLK FORMUNUZU YARATMAK

Uygulamaya başlatıldığında Projenin formu otomatik olarak  görünür. Bunun dışında projeye ek form eklemek için araç çubuğundan New Form düğmesi tıklanır.

 

 

B. FORMU KAYDETMEK

Formu kaydetmek için File menüsünden Save Project komutu seçilir. Ardından forma verilecek ad istenir. Form adının girilmesinden sonra proje dosyasının adı verilir.

 

Örneğin form kaynak dosyası merhaba.pas olarak, proje dosyası ise merhaba.dpr olarak verilir.

 

 

Delphi form dosyaları DFM (Delphi Form Module) olarak tutulur. DFM Dosyaları Delphi 6'da metin olarak da saklanabilir. Bu gibi değişiklikler Tools menüsünden Environment Options seçeneğinden yapılır.

 

 

D. FORM DESIGNER

Form Designer, uygulamaların kullanıcı arabirimi olan formların tasarlanmasını olanaklı kılan ortamdır. Normal kullanım sırasıyla bileşenler (örneğin bir metin kutusu) araç kutusundan sürüklenerek form üzerine bırakılır. Ardından düzgün görünümü sağlamak için bileşenler form üzerinde yerleştirilir.

 

 

Form üzerindeki bileşenlerin yerini (konumunu) ayarlamak için fare ile istenilen yere sürüklenir ya da daha hassas bir ayarlama için Ctrl tuşu ile birlikte ok tuşları kullanılır.

 

Form üzerindeki bileşenlerin birbirlerine göre hizalanmalarını sağlamak için ise View menüsünden Alignment Palette kullanılır.

 

Şekil 3.2: Hizalama araçları

 

 

 

1. Bileşenleri Form Üzerinde Yerleştirmek

 

Bileşenleri form üzerinde eklemek için birçok yöntem vardır:

 

1) Component Palette üzerindeki bileşen üzerine tıklayın. Ardından fare ile istenilen yere sürükleyebilirsiniz.

 

2) Bir bileşenin birden çok kopyasını yerleştirmek için Component Palette üzerinde bileşene çift tıklayın.

 

Bileşenlerin fare ile sürüklenerek form üzerinde istenilen bir yere yerleştirilmesinin yanı sıra bileşenlerin Align özelliğini kullanarak da form üzerindeki yerleşimi sağlanır.

 

Align özelliğine alTop, alBottom, alLeft ve alRight değerleri vererek form üzerinde yerleşimi sağlanır.

 

2. Görsel Bileşenler

 

Görsel bileşenler çalışma zamanında görünürler ve genellikle kullanıcı arabiriminin bir parçasıdırlar. Bu bileşenler Component Palette üzerinde Standart, Additional ve Data Controls gibi sekmelerde bulunur.

 

3. Görünmeyen Bileşenler

 

Görünmeyen bileşenler tasarım zamanında görünürler, ancak çalışma zamanında görünmeden işlevlerini yerine getirirler.

 

 

Şekil 3.3: Görünmeyen form bileşenleri.

 

4. MDI Formlar

Delphi ortamında iki tür form kullanımından bahsedebiliriz. Modal formlar ve MDI formlar. MDI (Multiple Documents Interface) uygulamalarda ise birden çok form bulunur. Özellikle büyük ve bütünleşik bir uygulama geliştiriyorsanız uygulamanızın arabirimini MDI olarak düzenlemenizin çok sayıda yararı vardır.

 

E. OBJECT INSPECTOR

Object Inspector bileşenlerin özelliklerinin ve olaylarının listelendiği bir penceredir. Özellikler alfabetik sırada listelenmiştir.

 

Object Inspector bileşen özelliklerinin çalışma zamanında düzenlenmesini sağlar.

 

Şekil 3.4: Object Inspector

 

 

1. Özellikler (Properties)

 

Özellikler sayfası seçilen bileşenin yayınalan (published) özelliğini gösterir. Bazı özellikler doğrudan özellikler sayfasında düzenlenebileceği gibi diğerleri Property Editor aracılığıyla düzenlenir.

 

Özellikler IDE içinde düzenlendiği gibi kod ile de düzenlenir:

 

btnKaydet.Caption := 'Düğmenin Başlığı';

 

Şekilde de görüldüğü gibi özellikler Object Inspector aracılığıyla düzenlenir. Object Inspector sayfasında sol tarafta programcının tasarım zamanında düzenleyebileceği özellikler, sağ tarafta ise bu özelliklere verilen değerler yer alır. Yapılan düzenlemeler .DFM dosyasında yer alır.

 

F. OLAYLAR (EVENTS)

Olaylar sekmesinde bileşenin yanıt vereceği olaylar düzenlenir. Bir olay seçilerek (örneğin onclick), bileşen üzerindeki bu olayın olması durumunda yerine getirilecek kod yazılır. Bu mekanizmaya event handler denir. Event handler, olay oluştuğunda onu bileşen bağlar ya da aynı event handler'ı paylaşan diğer bileşenler olabilir.

 

Şekil 3.5'te de görüldüğü gibi Begin-End arasında Button1Onclick olayında çalıştırılacak kod yazılır.

 

 

 

Şekil 3-5: Düğmeye tıklandığında çalışacak kod.

 

 

1. Olaylara Yanıt Vermek

 

Object Inspector'daki event sekmesi bileşenin yanıt vereceği olayları listeler. Olaylar iki tür olarak listelenir:

 

Sistem tarafından başlatılan olaylar:

 

Bu olaylar Windows tarafından yönetilir.

 

Kullanıcı tarafından başlatılan olaylar:

 

Bu olaylar kullanıcı tarafından oluşturulur. Örneğin kullanıcının fare ile düğmeye tıklaması.

 

Her iki tür olayda da kod olaya bağlanır. Bun mekanizmaya Event Handler denir.

 

 Bir event handler yaratmak:

 

1) Bileşen seçilir ve Object Inspector'dan Events sayfasından işleyicisi seçilir.

 

2) Yanıt vermek istediğiniz olay üzerinde çift tıklayın. Bu durumda Delphi size olaya ilişkin yazılacak kod bloğunu açar.

 

 2. Clock Örneği

 

Bu örnek basit bir saat oluşturmaktadır.

 

1) Bir Timer ve bir Button bileşinn forma ekleyin.

 

2) Timer'ın Interval özelliğini 1000 olarak düzenleyin (1 saniye).

 

3. Timer'ın OnTimer olayı için bir event handler yaratın. Bu olay düzenli olarak olayı tetikleyecektir.

 

Aşağıdaki kodu ekleyin:

 

caption := TimeToStr(Now);

 

Formun caption özelliğini şu anın zaman değeri olarak değiştirir.

 

4) Button bileşeni için bir OnClick olay işleyicisi yaratın. Begin ile End arasına aşağıdaki kodu ekleyin:

 

Close;

 

Düğmeye tıklayarak formun kapanması ve programın sonlanması sağlanır.

 

5) Uygulamayı derleyin ve çalıştırın.

 

G. TAB ORDER

Delphi içindeki bir form üzerinde gezerken, form üzerindeki kontroller arasında geçiş yapılır. Bu işlem kontroller üzerine odaklanmak (focus) ve odağı kaybetmek olarak adlandırılır. Programın çalışması sırasında odaklanmanın bu hereketi Tab tuşuna basılarak olur. Form üzerindeki kontrollerin tab sırasının düzenlenmesi için TabOrder özelliği düzenlenir. Bu düzenleme Object Inspector üzerinde düzenlenir.

 

Bunun dışında Edit menüsünden Tab Order komutuyla da form üzerindeki kontrollerin tab sıraları düzenlenir.

 

H. NESNELERI GRUPLANDIRMAK-PANELLER, GRUPLAR VE KAYDIRMA KUTULARI

 

Kontroller gruplanarak tek bir kontrol gibi düzenlenir. Bu kontrol gruplarına konteyner denir. Formlar gibi bu bileşenler diğer bileşenleri içerebilir. Grup içinde yer alan bileşenler Parent özelliğine sahiptir. Bu özellik kontrolün içeride olduğunu belirtir. ParetColor ve ParentFont gibi diğer özellikler ise kontrolün belli özellikleri üst kontrolden almasını sağlar.

 

Konteyner bileşen sınıfları şunlardır:

 

1) Panel

 

Paneller genellikle araç çubuğu ve durum çubuğu gibi kontrolleri yaratmak için kullanılır.

 

2) GroupBoxes

 

GroupBoxes ise birbiriyle ilgili bir grup kontrolü bir araya getirir.

 

3) ScrollBoxes

 

Scrollboxes ise genellikle ana formlar için kullanılır. Genellikle kendi alanından daha fazla içeriğe sahip olan bu kontroller içeriğinin tümünü görüntülemek için kaydırma çubuğu kullanırlar.

 

4) TTabbedNotebooks & Notebooks

 

Çok sayfalı formlar yaratmak için kullanılır.

 

I. BIR TOOLBAR YARATMAK

Bir araç çubuğu yaratmak için:

 

1. Form üzerine bir Panel bileşeni ekleyin.

 

2. Panel'in Align özelliğini alTop olarak düzenleyin. Böylece panel formun üstüne yapışır ve formun büyüklüğü ve konumuna bakılmaksızın orada kalır.

 

3. İhtiyacınız olan her düğme için bir SpeedButton bileşeni ekleyin.

 

4. SpeedButton'ların grupları GroupIndex özelliği ile uyum içinde çalışır. Örneğin üç düğme için bu özellik değeri 1 olursa; bu düzenleme bu düğmelerden yalnızca birisinin basılı kalabileceğini belirtir.

 

5. Her SpeedButton bileşeni için OnClick event handler'ı yaratarak herbirine tıklandığında yapılacak işlemler için kod yazılabilir.

 

 

 

J. STATUS BAR YARATMAK

 

Bir Statusbar yaratmak için:

 

1. Form üzerine bir Panel bileşeni ekleyin.

 

2. Panel'in Align özelliğini alBottom olarak düzenleyin. Böylece panel formun altına üzerine yapışır ve formun büyüklüğü ve konumuna bakılmaksızın orada kalır.

 

3. Caption özelliğini değiştirebilirsiniz. Böylece belli olaylara yanıt olarak kullanıcıya durum bilgisi gösterilir.

 

Örneğin bir kontrolün amacı, fare işaretçisinin kontrol üzerine gelmesiyle durum çubuğunda görünür.

 

K. DIALOG BOX BİLEŞENLERI

Delphi'nin iletişim kutusu bileşenleri uygulama geliştirmede Delphi programcılarına kolaylıklar sağlar. Delphi'deki iletişim kutuları:

 

 

1) Open & Save file dialogs

 

2) Font & Colour selection dialogs

 

3) Find & Replace dialogs

 

4) Print and Print Setup dialogs

 

Her iletişim kutusu kendisinin Execute metodunun çağrılmasıyla görüntülenir. Metod, True değerini döndürmesi iletişim kutusu üzerinde OK düğmesinin tıklanması anlamına gelir.

 

 

L. TABBED NOTEBOOKS

Tablı (sekmeli) formlar Windows uygulamalarında yaygın olarak kullanılır. Tablar sayesinde sayfalı olarak kullanılır. İki tür tablı kontrol vardır. Bunlardan birisi TtabbedNotebook diğer ise yalnızca Notebook olarak bilinir ve Ttabset ve Tnotebook bileşenlerinin kullanılmasıyla gerçekleştirilir.

 

 

 

Tbbaed sayfalar Object Inspector içinde yaratılırlar.

 

M. MENÜ TASARLAMAK

Menüler Windows form uygulamalarının karakteristik parçasıdır. Delphi formları iki tür menüyü destekler. Bunlar Main Menu ve Pop Up menüdür. Bu iki menü farklı davranmasına karşın TmenuItem nesneleri için konteyner olarak davranırlar.

 

1. Main Menüler

 

Bir main menü formu üzerinde bir satır olarak yer alan menü çubuğudur.

 

2. Pop Up Menüler

 

Pop Up menüler ise belli kontrollere atanarak kullanılırlar. Kontrol üzerinde sağ tıklayarak pop menüler açılır. Bu menülere işlem menüleri denir. Konuya ya da o kontrole özel işlemleri sergilerler.

 

Pop up menülerin öğeleri birer event handler'a bağlanarak çalışır.

 

 

 

III. GÖZDEN GEÇİRME

 

1. Özellik nedir? Örnekleyiniz?

 

2. Olaylar nedir? Örnekleyiniz?