New: Pencerenin new kısmında bulunan bazı secenekler şunlardır:
Form seceneği ile aktif projeye yeni bir form eklenir.
Application seceneği aktif projeyi kapatarak yeni bir projenin başlatılmasını sağlar. Bu secenek standart windows programını oluşturmak icin kullanılır.
Component seceneği ile delphi component dosyası oluşturulabilir.
DLL seceneği ile DLL dosyaları gibi kutuphane dosyaları oluşturmak icin kullanılır.
Text seceneği ile yeni bir text dosyası eklenebilir. Bu dosyalar kod değil metin icerirler.
Unit seceneği projeye yeni bir unit ekler.
ActiveX:
Active Form seceneği ile active formlar oluşturmak icin kullanılır.
Oluşturulan bu formlar web tarayıcılar tarafından calıştırılabilir programlardır.
ActiveX Control seceneği yeni activeX controller oluşturmak icin kullanılır. Bu secenek ile birlikte activex sihirbazları devreye girerek atılacak adımlar icin programcıya yardımcı olurlar.
ActiveX Library seceneği yeni activex kutuphaneleri oluşturmak icin kullanılır.
Automation Object seceneği yeni OLE elemanları oluşturmak icin kullanılır. Bu secenek ile birlikte OLE otomasyon sihirbazları devreye girerek atılacak adımları icin programcıya yardımcı olurlar.
Property Page seceneği activex kontrollerine ait ozelikleri değiştirmek icin kullanılabilecek
Ozellikler penceresi oluşturmak icin kullanılır.
New application
Aktif projeyi kapatarak yeni bir projenin başlatılmasını sağlar.
New data module
Yeni bir modulu oluşturmak icin kullanılır.
New form
Projeye yeni form eklenir.
Open
Diskte var olan DPR (delphi-project), PAS (delphi-unit), DFM (delphi-form) ve TXT (metin) dosyalarını acmaya yarar.
ReOpen
Son calıştığınız projelerin listesi bu menu altında tutulacak. Boylece son kullandığınız bu menu altından kolayca acabilirsiniz.
Save.Save As,Save All
Projedeki dosyaları aynı isimle veya yeni isimle kaydeder. Projenizi kaydettiğinizde projedeki unitlerin isimi kaydettiğiniz isim olacaktır. Bu yuzden dosya isimlerinde bazı Turkce karakterleri kullanamazsınız. Ayrıca kaydettiğiniz isimle Unit satırında tanımlanan isim aynı değilse delphi hata verecektir. Bu yuzden unit satırındaki ismi değiştirmemelisiniz.
Close,CloseAll
Aktif dosyayı veya projedeki butun dosyaları kapatır.
Add To Project
Projeye var olan Unitlerden (.PAS) ekler.
Remove form Project
Acılan pencereden secilen unit veya formu projeden cıkarır.
Edit menusu:
Cut,Copy,Paste
Keme kopyalama ve yapıştırma işlemlerini yapar. Sadece kodları değil kontrolleride kesip yapıştırabilirsiniz. Bu işlem o kontrol ile aynı ozelliklere sahip fakat isme sahip yeni kontroller oluşturulur.
Eğer bir kontrolun kopyasını cıkarırsanız oluşan yeni kontrol eski kontrole ait olay alt programlarını kullanacaktır.
Align to Grid
Secilen kontrolun koordinatları form uzerindeki gridlere denk gelmiyorsa en yakın grid noktasına denk gelecek şekilde taşınır.
Brign To Front, Send To Back
Ust uste gelen kontrollerden birini one ve arkaya almaya yarar.
Align
Secilen kontrolleri aynı hizaya getirmeye yarar.
Size
Secilen kontrollerin hepsinin aynı boya ve/veya aynı yuksekliğe sahip olmasını sağlar. Acılan pencerede secile secime hepsi en kucuğunun veya en buyuğunun boyuna getirilmesi sağlanır.
Scale
Form uzerindeki kontrollerin secilen oranda buyultup kucultmeye yarar. Bir seferde %25 ile %400 oranında olceklendirilebilir.
Tab Order
Form uzerindeki kontrollerin tab sırasını değiştirmeye yarar. Tab sırası kullanıcının kontroller arasında tab tuşu ile geciş yaparken sırası ile hangi kontollere gecileceğini belirler. Acılan pencerede şu anki tab sırası goruntulenir. Aşağı/Yukarı duğmesi ile secilen kontrolun tab sırası değiştirilebilir.
Lock Control
Form uzerindeki şu anki koordinatlarına kilitleyerek yerlerinin değiştirilmesini onler. Tekrar secilirse bu kilit kalkar. Ozellikle uzerinde bir cok kontrolun bulunduğu formlarda form tasarımı bittikten sonra yanlışlıkla kontrollerin yerinin değiştirilmesini onlemek icin faydalı bir secenektir. Ozellikle bir cok kontrolun bulunduğu formlarda ekrana sığmayan kontrolleri de ekranda kaydırma cubuğu olmadan gostermek icin kullanışlı bir secenektir.
Search menusu :
Find
Kod penceresinde herhangi bir ifadeyi bulmak icin kullanılır.
Find in Files
Belirlenen bir dosyanın icinde bir ifade bulmak icin kullanılır.
Replace
İstenilen ifadeleri bir diğeriyle değiştirmek icin kullanılır. Aynı yerde gecen birden fazla olan ifadeler otomatik olarak tek adımda değiştirilir.
Search Again
Aranılan ifade F3 tuşu ile tekrar aratılır.
Incremental Search
Arama aşağı doğru devam ettirilir.
Goto Line Number
İstenile bir adıma tek adımda ulaşmak icin kullanılır.
View Menusu :
Project souce
Projenin oluşturulması icin gerekli olan kodu kod penceresinde gosterir.
Bu kod, proje oluşturulurken delphi tarafından oluşturulur.
Project Manager
Project manager penceresini goruntuler. Project manager penceresi normalde ekranda gorulmez. Bu pencerede programınıza ait formlar ve unitler gosterilir. Bu pencere icindeki dosyalar DPR uzantılı bir dosyada tutulur. Projeden bir dosyayı cıkarmak icin remove seceneğini, pencereye var olan dosyalardan eklemek icinde add seceneğini kullanabilirsiniz. Projenizle ilgili ayarları da options seceneği ile yapabilirsiniz. Ekranda gorulmeyen bir formu goruntulemek icin bu penceredeki view form seceneği kullanılabilir.
Object Inspector
Object inspector penceresini goruntuler. F11 kısayol tuşu ile de ulaşabilirsiniz. Bu pencere form uzerine component paletten yerleştirilen her kontrolun ozellik ve olaylarını belirler.
Alignment Palette
Bu pencere secilen kontrolleri aynı hizaya getirmeye yarar.
Windows List
O anda acık olan pencerelerin listesini gosterir.Listeden secili olan pencereye geciş yapabilirsiniz.
Component List
Form uzerinde kullanabileceğimiz kontrol elemanlarını gostermeye ve istenilen form uzerine almaya yarar.
Break Points
Programı adım adım calıştırırken programın bir noktaya kadar calışıp gecici olarak durmasını sağlamak ve o noktadaki değişkenlerin değerlerini incelemek icin belirli noktalara F5 tuşu ile breakpointler konabilir. Programınıza fazla sayıda breakpoint koyduysanız bunları takip etmek icin bu menu seceneğini kullanabilirsiniz.
Call Stack
Bu secenekte adım adım calıştırmada kullanılır. Şu anda calışan fonksiyonun hangi fonksiyonlar tarafından cağrıldığını gosterir. Ozellikle kendi kendini cağıran prosedurler soz konusu ile prosedurun kac duzeyde kendini cağırdığını gormek icin gereklidir.
Watches
Program adım adım calıştırılırken değişkenleri izlemek uzere run-add watch seceneği ile eklenmiş değişkenlerin bulunduğu pencereyi goruntuler. Bu pencerede değerleri izlemek uzere eklenmiş değişkenlerin değerleri gorulmektedir. Bu değişkenlere yeni birisini eklemek icin listedeki boş bir satırı cift tıklayabilir, listedeki değişkenlerden birini silmek icin del tuşuna basabilirsiniz.
Toggle Form/Unit
Formlar ve unitler arasında geciş yapmak icin kullanılabilecek bir secenek. F12 kısayol tuşu ile de kolayca gecebilirsiniz.
Unit
Şu anda projede mevcut olan unitleri bir pencerede listeleyerek bunları secip goruntuleme imkanı verir.
Forms
Şu anda projede mevcut olan formları bir pencerede listeleyerek bunları secip goruntuleme imkanı verir.
New Edit Window
Şu andaki kod penceresinin bir kopyasını yeni bir kod penceresi ile gosterir. Bunlardan birinde yaptığınız değişiklik diğerinde de anında yapılır. Bu yeni pencere size kodunuzun aynı anda goremediğiniz kısımlarını gome imkanı verir.
Project Menusu :
Add to project
Projeye var olan unitlerden eklemeye yarar. Seceneği sectiğinizde karşınıza cıkan dialog penceresinde istediğiniz unit ilgili klasorden bulunup eklenebilir.
Remove from project
Acılan pencere vasıtasıyla secilen formları veya unitleri projeden cıkarır.
Import type library
Bu secenekle acılan pencere vasıtasıyla bilgisayarınızda kullandığınız ve kontrol elemanlarını iceren kutuphane dosyalarını projenize ekleyebilirsiniz. Buradaki add duğmesi bu pencereye yeni kutuphane dosyaları ekler. Remove duğmesi de penceredeki dosyaları kaldırır. Ok duğmesi ise secili olan dosyayı bir unit olarak projeye ekler.
Compile
Programı calıştırmadan derler. Orneğin bir DLL dosyası yazılırken bu dosya calıştırılamaz. Bunun sadece derlenmesi gerekir.
Build All
Compile veya run seceneği ile derlenen projede butun unitler ve formlar derlenmez. Bunun yerine en son derlemeden sonra değişen dosyalar derlenir. Build all seceneği değişmiş olsun olmasın butun dosyaları yeniden derler.
Syntax Check
Bu secenek Link yanmadan sadece yazım hataları olup olmadığını kontrol eder.
Information
Program derlendikten sonra proje hakkındaki teknik bilgiyi bir dialog penceresi ile goruntuler.
Options
Programla ilgili ayarların yapılabileceği pencereyi acar. Bu pencerede yapılan ayarlar sadece şu andaki projeyi etkileyecektir. Eğer butun projeler icin bu ayarların kullanılmasını istiyorsanız default duğmesini işaretlemelisiniz. Penceredeki forms tabı kısmı(bolumu)’nda main form kutusunda programın hangi formun ana form olacağı belirlenir. Normalde projede ilk oluşturulan form ana formdur ve ilk olarak bu formla program calışmaya başlar.
Auto create forms listesinde hangi formların otomatik olarak oluşturulacağı belirlenir. Diğer listede (available forms listesi) bulunan formlar ise otomatik olarak oluşturulamaz. Bunları oluşturmak icin create metodu kullanılmalıdır. Hangi formları otomatik olarak oluşturulup oluşturulamayacağını formları bu listeler arasında taşıyarak belirleyebilirsiniz.
Application tabında ise programın başlığı, help dosyasının ismi ve ikonu belirlenir. Proje icin bir help dosyası belirlenmişse kullanıcı programı calıştırırken F1 tuşuna basarsa bu help dosyası winhelp32 aracılığıyla goruntulenir ve kullanıcının uzerinde bulunduğu kontrolun helpcontextID ozelliği ile belirlenen konu gosterilir.( Bu numaralı konunun ne olduğu help dosyası tasarlanırken belirlenir.)
Title kutusunda belirlenen başlık ise formun değil programın başlığıdır. Bu başlık program minimize edildiğinde, gorev cubuğunda gorulen isimdir.
Icon kutusunda belirlenen ikon da title ozelliği gibi forma ait değil programa ait ikondur. Yukarıdaki durumlarda da yine bu ikonla temsil edilir.
Run :
Run
Programı derleyip calıştırır. Program zaten derlenmişse sadece calıştırır. Ayrıca programın calışması kırılmışsa kaldığı yerden devam ettirir. F9 kısayol tuşu da kullanılabilir.
Parameters
Program komut satırından parametre alıyorsa tasarım aşamasında komut satırı parametreleri buradan verilir.
Program Reset
Programın calışmasını durdurur. Ancak bu işlem bazen sitem kaynaklarının azalmasına sebep olabilir. Boyle bir durum soz konusu ise delphi sizi uyaracaktır. Program bu secenek sonlandırıldığında acık olan dosyalar kapatılır, component library’den oluşturulmuş kontrollere verilen sistem kaynakları geri alınır ve değişkenler bellekten atılır. Ancak programınızda kendi kodlarınızla oluşturduğunuz sistem kaynağı tuketen bileşenlerin kullandığı kaynaklar serbest bırakılmayacaktır.
Hata Ayıklama İşlemleri
Eğer programın sonsuz donguye girmesi sebebi ile normal yollardan kapatamıyor ve program reset menusune de ulaşamıyorsanız Ctrl+Alt+SysReg tuşlarına bamayı deneyin.
Menudeki diğer secenekler vasıtası ile program adım adım calıştırılarak programdaki hatalar ayıklanabilir. Bahsedilen hatalar yazım hataları değil mantık hatalarıdır. Program adım adım calıştırılarak değişkenlerin durumu bu secenekler vasıtasıyla incelenebilir.
• Programı debug modunda calıştırmak icin F8(step over) veya F7(trace intro) tuşu kullanılabilir.
• Ayrıca belirli bir satıra kadar calışması icinde F5(Add breakpoint) tuşu ile durulacak satır belirlendikten sonra F9 tuşu ile derlenir.
• Programa bu işlemler yapılmada başlansa bile program pause seceneği ile programın calışması durdurulup debug moduna gecilebilir.
• Bu modda değişkenlerin durumu fonksiyonların cağrılma sırası gorulebilir.
Step Over(F8)
Programı bir onraki satıra kadar calıştırır. Her satırı tek tek calıştırıp eskisini gormek icin kullanılabilir.
Trace Intro(F7)
Step over gibi satırları tek tek calıştırmaya yarar, ancak step over’den farklı olarak eğer satırda bir fonksiyon cağrısı varsa fonksiyona gidilir.
Add Breakpoint(F5)
Programı F8 ile adım adım calıştırmak her zaman kullanışlı değildir. Orneğin 1’den 1000’e kadar olan bir for-do dongusunden F8 ile cıkmak zordur. Bu gibi durumlarda break point dediğimiz, programdaki bazı satırlara F5 ile kesme konur ve F9 ile program calıştırılır. Kontrol kesme konan satıra program kırılır ve sonuclar bu şekilde izlenebilir.
Show Execution Point
Kursoru şu anda calışacak satıra goturur.
Add Watch
Program calışırken izlenecek değişkenler bu secenek ile eklenir. Bu yontemle eklenen değişkenlerin değerleri watch list penceresinde goruntulenir.(Bu pencereyi view-watches menu seceneği ile goruntuleyebilirsiniz.) Global ve o anda calışan prosedurdeki local değişkenlerin şu naki değerleri pencerede goruntulenir.
Add watch seceneği bir inputbox penceresi acarak izlenecek değişkeni girmenize imkan verir. Bu penceredeki expression kutusuna izlenecek değişkenin adı girilir.
Enabled seceneği kaldırılırsa değişkenin değeri listede gosterilmez. Bir cok değişkeni birlikte izliyorsanız programın calışması yavaşlayacaktır. O anda değerine ihtiyac duymadığınız bazı değişkenleri bu yontemle izlenmesini durdurabilirsiniz.
Radio duğmeleri ile değişkenin uygun başka bir formatta gosterilmesini sağlayabilirsiniz. Default seceneği değişkeni orijinal haliyle gosterir. Orneğin integer bir değişkenin hexadecimal sistemde gosterilmesi icin hex integer seceneği kullanılabilir.
Memory Dump seceneği değişkenin bellekteki halini gosterir. Orneğin bir string değişkenin bellekte durumunu gormek icin bu seceneği kullanabilirsiniz. String’in ilk byte’nın karakter sayısını gosterdiğini gorebilirsiniz.
Evaluate/Modify
Bu secenekle girilen değişkenin sadece o andaki değeri oğrenilebilir veya değiştirilebilir. Add watch seceneğinden farklı olarak değişken debug penceresine eklenmez ve surekli takip edilmez. Sadece secildiği andaki değeri goruntulenir. Bu secenek bir inputbox penceresi acarak değişkeni girmenize ve değiştirmenize imkan verir.
Expression kutusuna değişkenin adı girilir. Evalute komutu değişkenin şu anki değerini goruntuler. Bu değer değiştirilmek isteniyorsa New value kutusuna değişkenin almadı istenen yeni değer girildikten sonra Modify duğmesi kullanılır. Ayrıca view-call stack seceneği ile de şu anda calışan prosedurun kimler tarafından cağrıldığı gorulebilir.
Component Menusu :
New
Yeni bir component dosyası oluşturmak icin kullanılır.
Install Component
Component palete yeni kontroller eklemek icin kullanılır.
Configure Palette
Component palette yer alan kontrollerin yerlerini değiştirmek icin veya silmek icin kullanılır.
Import Activex Control
Activex (OCX) kontrollerini de delphi ile kullanabilirsiniz. Bu menu ile acılan aşağıdaki pencereyi kullanarak sisteminize kayıt yapılmış activex kontrollerinden sectiklerinizi ekleyebileceğiniz gibi Add duğmesi ile de yeni OCX dosyalarını ekleyebilirsiniz.
Database Menusu :
Explore
Database explorer programını calıştırır.
SQL Monitor
SQL monitor programını calıştırır.
Form Wizard
Programa database formları eklemek icin yardımcı olur. Acılan pencereler takip edilerek formun tipini, kullanacağı database dosyasını ve bu dosyadaki anları secmenizi sağlayarak bir database formu oluşturmanızı sağlar.
Tools Menusu :
Environment Options
Bu secenekle acılan pencereden editorle ilgili ozellikler belirlenir.
Repository
Delphi kendi formlarınızı hazırlayarak bunları daha sonrada standart form olarak kullanmanıza imkan verir. Bu pencere vasıtası ile hazırlanan formlar galeriye eklenerek daha sonra new-form seceneği ile yeni bir form oluştururken buraya eklediğiniz formlardan birini secebilmenizi sağlar.
Configure Tools
Tools menusune cok kullandığınız programlardan ekleyebilirsiniz. Bu menuye yeni program eklemek icin tools menusunun configure tools seceneği kullanılır.
Sağ Fare Tuşunun Kullanımı
Windows altında calışan programların coğu sağ fare tuşunu destekler. Boylece sağ fare tuşu ile acılan popup menuler aracılığıyla yapılacak işlemlere oldukca hızlı errişim sağlanmış olur.
Form Uzerinde Sağ Fare Tuşu
Form uzerinde sağ fare tuşu tıklanacak olursa acılan popup menudeki secenekler edit menusu ile aynıdır.
Align to Grid
Secilen kontrolun koordinatları form uzerindeki gridlere denk gelmiyorsa en yakın grid noktasına denk gelecek şekilde taşınır.
Brign To Front, Send To Back
Ust uste gelen kontrollerden birini one ve arkaya almaya yarar.
Align
Secilen kontrolleri aynı hizaya getirmeye yarar. Acılan penceredeki radio duğmeleri kullanılarak secili olan eleman sağdan,solan,ustten,merkezden,alttan aynı hizaya getirilebilir. Hatta secili olan elemanlar formun tam ortasına alınabilir.
(Center in window seceneği ile)
Size
Secilen kontrollerin hepsinin aynı boya ve/veya aynı yuksekliğe sahip olmasını sağlar. Acılan pencerede secile secime hepsi en kucuğunun veya en buyuğunun boyuna getirilmesi sağlanır. Buradaki no change seceneği ile elemanlar uzerinde bir işlem yapılmazken, shrink to smallest seceneğiyle, secili olan en kucuk boyutlu elemanın boyutuna, grow to largest ile de en buyuk elemanın boyutuna getirilir. Width, heigth secenekleri ile de secili olan elemanları genişlik ve uzunlukları değiştirilir.
Scale
Form uzerindeki kontrollerin secilen oranda buyultup kucultmeye yarar. Bir seferde %25 ile %400 oranında olceklendirilebilir. Bu pencerenin kutusuna girilen sayısal ifade secili olan elemanların boyutlarını değiştirir.
Tab Order
Form uzerindeki kontrollerin tab sırasını değiştirmeye yarar. Tab sırası kullanıcının kontroller arasında tab tuşu ile geciş yaparken sırası ile hangi kontollere gecileceğini belirler. Acılan pencerede şu anki tab sırası goruntulenir. Aşağı/Yukarı duğmesi ile secilen kontrolun tab sırası değiştirilebilir.
Creation Order
Uygulamanın oluşturduğu visual olmayan elemanları sırası bu pencere ile duzenlenebilir.
Kod Penceresinde Sağ Fare Tuşu
Close Page :Seceneği ile mevcut kod penceresi kapatılır.
Open file at cursor : Kursorun bulunduğu pozisyona istenilen dosya, ac dialog kutusu ile eklenir.
Topic search :Secili olan deyim hakkında online yardım goruntulenir.
Toggle marker : Kod editorunun istenilen yerine işaret koyar. Bu işlem birinci defasında işaret koyarken ikinci defasında kaldırır.
Go to marker : Daha once işaretlemiş yere direkt cursoru konumlandırır.
Toggle breakpoint : Kod editorunun istenilen noktasına, program kesme noktası bırakılır veya kaldırılır.
Run to cursor : Kursorun bulunduğu noktaya kadar programı calıştırır.
Evaluate/Modify : Bu menu seceneği ile evaluate/modify dialog penceresi aktif hale getirilerek, var olan bir ifadenin değeri değiştirilebilir yada değerlendirilebilir.
Add watch at cursor : Menu seceneğiyle watch dialog penceresi acılır. Burada gozleme pencereleri oluşturulur veya değiştirilir.
Read only : Menu seceneğiyle mevcut acık olan dosyaya sadece okunabilirlik ozelliği verilir. Dosya uzerinde herhengi bir değişiklik yapılmaz.
Message view : Hata mesajlarını gosterecek olan pencereyi goruntuler yada saklar.
Properties : Bu secenekle kod penceresine ait bazı ayarlamaların yapıldığı pencere goruntulenir. Burada genel olarak kod editoru ile ilgili yazı ayarlamaları, renk ayarlamaları ve goruntu ayarlamaları yapılır.
Project Inspector Penceresinde Sağ Fare Tuşu
Expand : Alt secenekleri + ile temsil edilen ozellikler icin aktif hale gelir. Bu seceneğin tıklanmasıyla alt seceneklerde gorulur.
Collapse : Alt secenekleri acılmış ozellikler icin aktif hale gelir. Bu seceneğin kullanılmasıyla alt secenekli ozellikler + halinde temsil edilir.
Saty on top : Object inspector penceresini daima en ustte tutar.
Hide : Object inspector penceresini gizler.
Help : Pencere ile ilgili yardım dosyasını acar.
Component Paleti Sağ Fare Tuşu
Configure : Component paletini yeniden belirlenen şekli ile kaydeder.
Show hints : Component paletinde bulunan elemanların isimlerini goruntuler.
Hide : Component paletini saklar.
Properties : Componentlerle ilgili bazı ayarlamaların yapıldığı pencereyi goruntuler.
Standart Kontrol Elemanları
Standart kontrol elemanlarının kullanım amaclarını kısaca verelim:
TMainMenu : Menu cubuğunu tasarlamada kullanılır. Bu kontrol kullanıcının bilgi girişi yapmasına imkan veren en cok kullanılan elemanlardandır.
TPopupMenu : Sağ fare tuşu ile calışan menuler hazırlamada kullanılır.
TLabel(Etiket) : Form uzerine acıklama yazmak yada kontrollere acıklama yazmada kullanılır.
Tedit(Metin kutusu) : Kullanıcının bilgi girmesi icin kullanılır.
TMemo(cok satırlı bilgi girişi kutusu) : Kullanıcının birden fazla satıra sahip bilgileri girmesi icin kullanılır. Edit kutusunun yapabildiği butun işlemleri yapabilirken
TButton(Komut duğmesi) : Kullanıcının bir işi yaptırabilmesi icin kullanılır.
TCheckBox(İşaret kutusu) : Bir seceneği aktif veya pasif yaptırmak icin kullanılır.
TRadioButton(Secenek kutusu) : Birden fazla secenekten birisinin secilmesi gereken durumlarda kullanılır.
TLisbox(Liste kutusu) : Birden fazla elemanı listelemek ve duzenlemek icin kullanılır.
TComboBox(Aşağı doğru acılan liste) : Kullanıcının hazır değerlerden birini secebilmesi icin kullanılır.
TScrollBar(Kaydırma cubuğu): Kaydırma işlemlerinde veya değer artırıp azaltma işlemlerinde kullanılır.
TRadioGroup : Şecenek duğmelerini tasarım zamanı oluşturabilmek icin kullanılır.
TPanel Kontrol Elemanı : Diğer kontrolleri gruplamak ve durum cubuğu oluşturmakta kullanılır.
TGroupBox(Gruplama kutusu) : Diğer kontrolleri (daha cok secenek duğmelerini) gruplamakta kullanılır.
Tablo Ozellikleri
Bu Bolumde saha gecerlilik kurallarının tanımlanması,Table lookup,secondary indexes(ikincil anahtarlar),referantial Integrity(tablo ilişkileri),Şifre guvenliği ve Tablo dilinin ayarlanması konularıolacak.
A) Sahaların Gecerlilik Kuralları:
Bir sahanın uzerinde dolaşırken eğer tipini tanımladıysanız sahanın tipine gore saha ozelliklerini belirleyebileceğiniz metin kutuları,bir onay kutusu ve bir duğme kullanılabilir hale gelir.Bu metin kutularını kullanarak sahayı istediğiniz ozelliklerde belirleyebilirsiniz.
Required Field: Tabloya giriş esnasında kullanıcı sahayı atladığında hata vermesini sağlar.Boylece kullanıcını hic bir şekilde bu sahayı boş gecmemesini sağlarız.
Minimum Value:Sahanın tip tanımlamasına uygun bir şekilde sahanın alabileceği minimum değeri icerir. Orneğin bir sepetteki elma sayısı asla eksili bir değer olamaz. Bunun icin minimum değerine 0 atamalıyız.
Maximum Value:Sahanın tip tanımlamasına uygun bir şekilde sahanın alabileceği maximum değeri icerir.Orneğin iskambik kağıdı no'su tutan bir saha icin iskambil kağıdı sayısı 52'den fazla olamaz.olursa hile var demektir

Default Value:Bu sahanın varsayılan değeridir. Minimum ile maximum değerleri arasında bir değer almalıdır.
Picture: Bu sahanın gorunum ve giriş şeklidir.Bu ozelliği kullanarak sahanıza yapılan girişin sizin belirlediğiniz kurallara uygun olup olmadığını hic bir kod yazmadan kontrol edebilirsiniz.
Ornekler:
yazılabilir.
Orneklere bakarak sizde kendi giriş formullerinizi yazabilirsiniz.Bunun icin once yukarıdaki resimde gorduğunuz Assist duğmesine basarak yandaki resimde olduğu gibi bir ekran cıkaracaksınız. Daha sonra picture yazan metin kutusuna duşunduğunuz formatı yazacaksınız. Doğru olup olmadığını test etmek istiyorsanız Verify Syntax duğmesine basmalısınız.
Eğer yazdığınız formatı denemek istiyorsanız Sample Value metin kutusuna formatta belirttiğiniz şekilde bir veri girmelisiniz. Eğer girdiğniz verinin formata uygun girilip girilmediğini merak ediyorsanız Test Value duğmesine basın.Eğer Value is Valid mesajını gorurseniz girdiğiniz veri hazırladığınız formata uygun demektir.
Hazırladığınız bu formatı kaydetmek icin add to list duğmesine basmalısınız.
Eğer listedeki bir format kullanmak istiyorsanız formatı secip Use duğmesine basmalısınız.
B) Table Lookup:
Table lookup tanımlamak icin Table Properties combo kutusundan table look up seceneğini secip define duğmesine basmalısınız
Karşınıza yukarıdaki gibi bir ekran cıkacak. Burada sağda tanımlı olan sizin şu anda uzerinde calışmakta olduğunuz ve look up tanımlayacak olduğunuz tablodur. Buradan hangi sahayı look up saha olarak tanımlamak istiyorsanız o sahayı liste kutusundan secip FieldName metin kutusunun solundaki duğmeye basarak metin kutusuna atamalısınız.
Soldaki sahada secilen aliasın icerdiği tabloları goruyorsunuz. Bu tablolardan look up yapmaya uygun bir tanasini secip look up field metin kutusunun sağındaki duğmeye tıklayarak metin kutusuna atamalısınız. Burada dikkat edeceğiniz husus FieldName ile LookUp field sahalarının tiplerinin birbirine uyması. aksi taktirde hata verecektir. Unutmayın ki lookup tablonun hep ilk satırı lookup field metin kutusuna gelir.Eğer Lookup tablosu olarak kullanacağınınz tablonun ilk sahası anahtar saha olursa bu lookup yapma işlemini hızlandırır.
Look up Type
Just Current Field: Sadece Tanımlanan saha look up dan gelen bilgiler tarafından doldurulur.
All Corresponding Fields:Sadece tanımlanan look up saha değil look up tabloda bulunan ve lookup saha iceren tablonun tipleri ve adları uyan sahalarına da varsayılan değerleri atar. Orneğin icinde soyadı ve adı bulunan bir tablodan lookup yaptığımızı duşunelim. Eğer lookup yapan tabloda soyadı ve adı sahaları varsa mutlaka bu iki değeri doldurulur.
Look up Access
Fill No Help: Sahaya bir veri girerken yardımcı olmaz.
Help And Fill:Sahaya veri girerken yadımcı olur.
C) Secondary Indexes:
İkincil indeks, kayıtlar arası aramaları hızlandırmak yada farklı bir sıralama kuralına gore kayıtları dizmek icin tanımlanır. İkincil indeksi bir sahadan yaratabileceğiniz gibi birden cok sahanın bir kombinasyonu olarakta yaratabilirsiniz.Not olarak ikincil indeks ile sadece bir kaydın sıralama kuralını değiştirebilirsiniz. Onun fiziksel sırasını değil.
ikincil Indeks tanımlamak icin Table Properties combo kutusundan table Secondary Indexes seceneğini secip define duğmesine basmalısınız.
Yukarıdaki ekran gibi bir ekran karşınıza cıkacak.Sağ tarafta uzerinde değişiklik yaptığınız tablonun sahaları gorunmekte. Buradan birini yada birkacını secerek sağ ok duğmesine basarak Indexed Fields liste kutusuna ekleyebilirsiniz.
Alttaki change order adıyla tanımlanan duğmeleri kullanarak sahaların indekslenme sırasını değiştirebilirsiniz.
Index option grup kutusunda ise 4 ozellik tanımlanmış.Bunlar:
Uniquie:İkincil indekste birden fazla kaydın aynı değeri icerip iceremeyeceğini belirtir.Eğer Uniquie işaretli ise ve Database Desktop tekrarlı bir kayda rastlarsa indeks uygulanmaz ve bir hata mesajı goruntulenir.Sahanın verisini değiştirip tekrar indekslemeye calışabilirsiniz.
Descending:İkincil indeksin azalan yonde mi yoksa artan yonde mi sıralanacağını belirtir.Eğer işaretli değilse azalandan artana doğrudur.
Case Sensitive:Sıralamada buyuk yada kucuk harf oluşuna dikkat edilip edilmeyeceğini belirtir.
Eğer işaretliyse veri şu sırada konumlanır:
Abcd, aBcd, aaaa
Eğer işaretli değilse şu sırada konumlanır:
aaaa, Abcd, aBcd
Database Desktop tek sahaları,buyuk kucuk harf duyarlı indeksleri otomatik isimlendirir.Eğer buyuk kucuk harf duyarlılığı olmayan bir indeks kaydedecekseniz kaydederken bir isim vermelisiniz. Bu size buyuk kucuk harf duyarlılığı olan ve olmayan, aynı sahalara sahip, iki farklı indeks tanımlamanızı sağlar.
Maintained:İkincil indeksin korunup korunmayacağını belirtir.
Maintained indeksler her tablo değişikliğinde tekrar kaydedilir. Bu Sorgular gibi işlemleri hızlandırır.Maintain indeksler anahtar iceren tablolarda gecerlidir.Maintain olmayan indeksler sadece indeks kullanılırken guncellenir.Orneğin bir tabloya bağladığınızda yada bir sorguyu calıştırdığınızda.
Bir maintain olmayan indeksi kullanan bir işlem yaptığınızda bu işlem diğerinden biraz daha uzun surer. Cunku ilk once indeks tablonun değişen verilerine gore yeniden duzenlenip indeks kurallarını yeniden sıralanacaktır.Her halukarda eğer bir maintain olmayan indeks kullanmak isitiyorsanız değişmeyen bir tabloda kullanının.Mesela sadece okunabilir tablolarda maintained olmayan indeksler daha hızlıdır.
D) Referantial Integrity:
Referantial integrity tablolar arası ilişkileri tanımlar.tabloar arası ilişkilerin nasıl tanımlanacağı ve neden tanımlanması gerektiği bir onceki makalede ayrıntıları ile verilmiştir.Tablolar arası ilişkileri tanımlamak icin Table Properties combo kutusundan Referantial Integrity seceneğini secip define duğmesine basmalısınız.
Yukarıdaki resimde gibi referantial integrity menusu cıkacak. Fields liste kutusundan sececeğimiz saha ile ilişkilendirmeyi duşunduğumuz tabloyu secip table liste kutusunun yan tarafındaki duğmeye tıklamalıyız.yukarıdaki resimin sağ tarafında, uzerinde calışmakta olduğumuz tablonun sahaları var.Bu sahalardan hangisini sectiğimiz tablonun anahtar sahası ile ilişkilendirmek istiyorsak o sahayı secmeliyiz. Boylece iki sahayı birbiri ile ilişkilendirmiş oluruz.
Update Rule:
Cascade:Eğer ana tabloda herhangi bir değişiklik olursa bu direk bağlı tabloya yansır.
Prohibit:Eğer ana tablodan bir veri silinecekse bağlı tabloda da bu veri kullanılmışsa silinmesine izin verilmez.
Strict Referantial integrity:Eğer bu işaretli ise; bu tablonun daha onceki paradox surumleri tarafından kullanımı esnasında tablo ilişkisinin bozulmamasını sağlar.
E) Password Security:
Tablonuzun başkası tarafından gorulmemesini istiyorsanız bir şifre belirtmelisiniz.(En azından Supervisor password'u bilmeyen biri tarafından).Bunun icin Table Properties combo kutusundan Password Security seceneğini secip define duğmesine basmalısınız.
Karşınıza yandaki gibi bir ekran gelecek. Buradan bir şifre belirtebilirsiniz.Eğer Auxiliary Passwords duğmesine tıklayacak olursanız karşınıza aşağıdaki gibi bir ekran cıkacak. Bu ekrandan ilişkisel şifreler belirtebilirsiniz. Bu şekilde bir kişinin o tablo uzerindeki otoritesini de belirmiş olursunuz.
Not: Buraya belirteceğiniz şifre Ana şifreden mutlaka farklı olmalıdır aksi taktirde buraya şifre belirtmenin hic bir anlamı yoktur. Tum işlemler icin aynı şifreyi belirtebileceğiniz gibi her işlem icin ayrı ayrı şifreler de belirtebilirsiniz.Bunu new tuşu ile yeni bir şifre acıp şifreleyeceğniz sahaları secip saha operasyonunu secip şifrenizi girdikten sonra add duğmesine basmanız yeterli olacaktır.
Buradaki operrasyonlar:
Eklemek ve silmek,Sadece veri girmek, guncellemek,sadece okumak ve tum işlemleri yapabilmek olarak sınıflandırılmıştır.
Not:Eğer gercekten veri guvenliğine ihtiyacınız varsa Crypt veDeCrypt metotlarını kullanın.
F) Table Language:
Table Language kısaca tablonun dilini belirleyeceğiniz bolumdur.Standart olarak tablonun dili ingilizceye uygun bir kod sayfasıdır. Eğer Turkce bir kod sayfası kullanmak istiyorsanız.Aşağıdakilerden birini kullanabilirsiniz.
Base Trk cp857
Paradox Turk
Pdox ANSI Turkish
Unutmamanız gereken asıl şey Turkce buyuk harfin kucuk harfe yada kucuk harfin buyuk harfe cevrilirken yaşayacağınız problem.Bu tum Database Desktop elemanları icin gecerli bir sorundur. Buyuk İ cevrilirken i ye cevrileceğine kod sayfasnıa gore farklı bir karaktere cevrilir. aynı şekilde I ise kucuk ı ya cevrileceğine i'ye cevrilir. Bu bir fonksiyonla duzeltebilirsiniz.
Veri Tabanı ve DataBase Desktop
Veri Tabanı Nedir?
Veritabanı; kısaca verilerin tutulduğu yer anlamına gelir. Fakat bu tanımdan kasıt verilerin tutulduğu bir dosya olmayabilir.Orneğin BDE bir veritabanını her bir dosyaya bir tablo gelecek şekilde ayırmıştır.Fakat Access icin tek bir dosya soz konusudur.
Tablo

Can,Kaynak,[email protected],Turkware Software Co., Mustafa,Kapsal,[email protected],Turkware Software Co. vs.
Eğer yukarıdaki verileri guruplamak istesek:
Soyadı Gurubu:Kaynak,Kapsal
Ad Gurubu:Can,Mustafa
Şirket Gurubu:Turkware Software Co.,Turkware Software Co.
E-Mail Gurubu:[email protected],[email protected] e.com
Gorduğunuz gibi 4 ana başlık altında toplayabildim boylece daha duzenli oldular ve aradığımı cabuk bulabilecek hale getirdim.
Yani tablo haline getirdim. Tablonun anlamı aynı niteliği betimleyen verileri tek bir gurup altında toplamaktır.Bu guruplar benim tablomun sahalarıdır. Aşağıda yukarıdaki ornek bir tablo haline getirilmiştir.
yukarıdaki tabloda Soyadı,Adı,Şirket,E-Mail adları sahalarımı tanımlayan isimleri oluşturdu. Dikkat! bu bahsettiğim Soyadı,Adı,Şirket,E-Mail sahaları tablomun sadece sahalarını tanımlar tablomun verilerine dahil değildir.
Her satır bir kayıtı tanımlar. Kayıt, Saha adlarına uygun olarak girilmiş verilere denir.
Tabloda Birincil Anahtar:Tablo; veri tabanının en onemli ozelliğine uymalıdır.Tabloda tek olma. yani tum sahaları aynı iki kayıt bir veritabanında bulunamaz. Bunun icin Veritabanını sıralayan bir sahaya daha ihtiyaca vardır. Tabi ki her zaman ayrı bir saha olacak diye bir kaide yok ama eğer sahanızda hic tekrarı mumkun olmayan bir sahanız yoksa yeni bir saha yaratmanız kacınılmazdır.Biz bu sahayı birincil anahtar olarak niteleriz. Yukarıdaki orneğe bir birincil saha ekleyelim.
yukarıdaki ornekte ID adında bir saha daha ekledim. Bu ID sahasını sıralama değişkeni olarak kullanacağım her eklediğim kayıt oncekilerden farklı bir sayı olacak. Boylece tabloda tek olama kuralını korumuş olacağım.
Yukarıda ID sahasının yanına parantez icinde bir yıldız koydum. Yıldız işareti o sahanı bir anahtar olduğunu belirtir.Bu yıldız tanımlaması tum programcılar tarafından kullanılan bir standarttır.
Daha once bahsettiğim gibi her zaman birincil anahtar eklemek icin farklı bir saha kullanmayabiliriz. Bunu yerine basbaya e-mail sahasını da kullanabilirdim. Cunku herkesin kendine ait bir e-maili olacağı icin tabloda tek olma kuralı yine korunmuş olur.
Tablolar arası ilişkiler:
Bazen bir veriyi topluluğunu tek bir tabloda tutmak mumkun olmayabilir. Bunun gerekcesi tek bir oğe icin birden cok kaydın olmasıdır. Bunu şoyle acıklayabiliriz:
Mesela benim birden cok telefonum var.bunu iki şekilde tutabilirim. birincisi:
yukarıdaki ornekteki gibi tutmak sağlıklı değildir. Cunku eğer ben başka bir telefon sahibi daha olursam bunu nereye yazacağım. Bunun nihayi cozumu tablolara parcalamak olacaktır. Şoyle ki:
Gorduğunuz gibi yukarıdaki ornekteki gibi tanımlarsak iki ayrı tabloya ayırmış oluruz.Ama Telefon bilgilerini iceren tabloda bir şey eksik. Telefonları kime ait olduğu. Telefonların kime ait olduğunu belirten bir saha daha eklemeliyiz.Ekliyeceğimiz saha kişi bilgilerini icen tablodaki tekrarsız saha olmalı.Orneğimizi şu şekilde değiştiriyoruz.
Yukarıdaki ornekte gorduğunuz gibi telefon bilgilerini iceren tabloya eklediğimiz, kişi bilgilerini iceren tablodaki anahtar saha ile aynı niteliğe sahip saha;telefon bilgilerini kişi bilgileriyle eşleştirip anlaşılır bir kayıt kumesi oluşturdu.
İpucu: Eğer elinizde bir veri kumesi varsa ve hangilerinin hangi tabloda yer alacağına karar vermiyorsanız; şu yontemi deneyin. Eğer bir kayıt icin o saha birden cok bilgi iceriyorsa bu yeni bir tablodur.Bolun.
Eğer tabanınızda birkac kayıt varsa veri bu işlemin işlerliliği fazladır.Fakat binlerce kayıtla uğraşıyorsanız bu tanımlarda size yetmeyebilir. Bu tabloların kendi kendine birbiri ile iletişim kurmasını istiyorsak ilişkilendirmeliyiz.
İlişkiler; bir veri tabanının icindeki tabloların birbiri ile aynı gorevde olan sahalarının birbirine bağlanması şeklinde nitelendirilebilir.
İlişkiler ikiye ayrılır:
Bire-Cok ilişki
Bire-Bir ilişki
Bire-cok ilişki; bir tablodaki her bir veri icin ilişkili tablodaki sahaya karşılık gelen birden cok veri varsa buna Bire-Cok ilişki denir.Orneğin Bir babaya karşılık iki cocuk varsa bu bire cok ilişkidir. Cunku baba her ikisininde babasıdır.
Bire-Bir ilişki; Bir tablodaki her bir veri icin diğer tablodaki sahaya karşılık gelen bir veri varsa buna Bire-Bir ilişki denir. Orneğin Bir kişinin bir saat takması gibi.
Bire-bir ilişkiler bir tablonun kendi sahaları arasındaki ilişkidir. Bire cok ilişkiler ise bir tablonun anahtar sahası ile başka bir tablonun aynı nitelikteki sahası ile ilişkisidir. Bu ilişkileri en iyi tasarlayabileceğiniz program MsAccess programıdır. Veritabanı uygulamalarında hic faydalanmasanız bile sadece ilişkileri duzenleme ekranından faydalanabilirsiniz.Yandaki resim bire cok ilişkinin MSAccess programında nasıl goruntulendiğini acıklar.
Database Desktop
Database Desktop programı Delphi ile gelen bir programdır. Bu program yardımı ile tablolar ile ilgili her turlu işlemi yapabiliriz. Database Desktop pek cok veritabanı motorunu kullanmanıza izin verir.
Delphi kullanıcıları arasında en cok kullanılanı ise Paradox'tur. Cunku Paradox buyuk veri yapılarıyla colayca başa cıkabilir. Bende bu yuzden şimdilik sadece Paradox kullanımını ornek gostererek Database Desktop'ı size anlatacağım.
Database Desktop'ta yeni bir tablo yaratmak icin File/New/Table comutunu calıştırmanız gerekiyor. Daha sonra karşınıza yandaki gibi bir ekran cıkacak buradan Paradox7'yi secin.Eğer Daha onceki surumleri kullanmak yada başka veritabanları kullanmak istiyorsanız yine buradan secebilirsiniz ama ben Paradox7 ile ornekleyeceğim icin Paradox7'yi secmenizde fayda var.
Not:Paradox7 ve tum Paradox surumleri %100 guvenli değildirler. Şifreleme yaptığınızda bile eğer bir *****er Paradox supervisor şifrelerini biliyorsa kolaylıkla veritabanınızın icinde ne var diye bakabilir. Bunu onlemenin yolu Crypt ve DeCrypt yontemeleri ile verilerinizi şifrelemektir.
OK tuşuna bastığınızda karşınıza yandaki menu gibi bir menu gelecek.Bu Menude İlk olarak Field Name Type Size ve Key hucreleri olacak.
Field Name hucresine 25 karakter uzunluğunda Delphi değişken isimlendirme kurallarına uygun bir isim girmelisiniz.
Type Hucresi bir acılır menu şeklindedir. Menunun iceriği ve delphideki karşılığı:
Alpha (String)
Number(Float)
Money(Integer)
Short(ShortInt)
Long Integer(Integer)
#BCD(Double)
Date(DateTime)
Time(TDateTime)
@TimeStamp(TDateTime)
Memo(TMemo)
Formatted Memo(TRichEdit)
Graphic(TGraphic)
OLE(Tum OLE Bileşenleri)
Logical(Boolean)
+AutoIncrement(Integer)
Binary(ikili veriler)
Bytes(Array of Char)
Alpha: Alpha tipi tum yazdırılabilir karakterleri icerir.0-255 arasında boyutu olabilir. Delphi'de String tanımlı bir değişken tarafından kullanılabilir.
Number:Number tipi sadece pozitif/negatif işareti,ondalık işareti ve sayı icerebilir. Pozitif ve negatif ifadeler tutabilir.-10307den 10307'ye kadar değer alabilir.Delphi'de Float tanımlı bir değişken tarafından kullanılabilir.
Money:Money tipi tıpkı diğer tipler gibi sayı icerir fakat sadece gosterimi diğerlerinden farklıdır.Her uc hanede bir nokta ile ayrılır. fakat bu değerine etki etmez.Delphi'de Float tanımlı bir değişken tarafından kullanılabilir.
Short:Short Tipi -32,767'den 32,767'e kadar değer icerebilir.Delphi'de Integer tanımlı bir değişken tarafından kullanılabilir.
Long Integer:Long Integer tipi -2147483648'den 2147483647'e kadar değer icerebilir.Delphi'de LongInt tanımlı bir değişken tarafından kullanılabilir.
BCD(Binary Coded Decimal):BCD tipi ikili codlanmış sayısal veri icerir.Diğer sayısal tiplerin sağladığından daha hassas hesaplamalar yapmanız gerektiğinde BCD sahaları kullanın.Fakat hesaplamalar diğer veri tiplerinden daha yavaş olacaktır.
Date: Date tipi ile 1 Ocak 9999 M.O'dan 31 Aralık 9999 M.S'ye kadar ki tarihleri tutabilirsiniz.Tum artık yılları duzgun bir şekilde tutar. Delphi'de TDateTime ile cevrimler sonucu kullanılabilir.
Time:Time tipi milisaniyeler halinde 24 saati adresler.Varsayılan saat tipini değiştirmek icin Paradıx'u kullanmalısınız. Delphi'de TDateTime ile cevrimler sonucu kullanılabilir.
TimeStamp:TimeStamp tipi Time ve Date tiplerinde olan butun ozellikleri sağlayan birleşik bir tipdir. Delphi'de TDateTime ile cevrimler sonucu kullanılabilir.
Memo:Memo Tipi tum yazdırılabilir ASCII kodları icerebilir (NULL dışında).Bu tip Mb uzantılı bir dosyanın icinde tutulur.Asıl tabloya bağlanır.Bu tipi delphide kullanmak icin TMemo nesnesini kullanabilirsiniz.Boyut olarak 1MB dan 240 MB kadar bir boyut belirtebilirsiniz
Formatted Memo:Formatted Memo tipi bir Richeditin icerebileceği tum iceriği sağlar.(renk,font,bold vs.).Tum yazdırılabilir ASCII kodları icerebilir (NULL dışında).bu tip Mb uzantılı bir dosyanın icinde tutulur.Asıl tabloya bağlanır.Bu tipi Delphi'de kullanmak icin TRichEdit nesnesini kullanabilirsiniz..Boyut olarak 1MB dan 240 MB kadar bir boyut belirtebilirsiniz
Graphic:Graphic tipi .BMP, .PCX, .TIF, .GIF, ve .EPS dosya formatlarını destekler. Bu dosya formatlarını BMP dosya formatınıa cevirip bu şekilde saklar.Graphic tipinin boyut tanımlamaya ihtiyacı yoktur cunku tablodan farklı bir dosyada tutulurlar.Bu tipi Delphi'de kullanmak icin TImage nesnesini kullanabilirsiniz.
OLE:OLE tipini her ceşit dosyayı tutmak icin kullanabilirsiniz.OLE sahası bu tip verileri gostermek ve değiştirmek icin bir yol sağlar.Fakat ne yazık ki Database Desktop bu iceriği gosteremez.OLE tipinin boyut tanımlamaya ihtiyacı yoktur cunku tablodan farklı bir dosyada tutulurlar.Bu tipi Delphi'de kullanmak icin OLE nesnesini kullanabilirsiniz.
Logical:Logical tipi TRUE yada FALSE tipinde iki değer tutabilir.Delphi'de Boolean tipi ile birlikte kullanabilirsiniz.
AutoIncrement:AutoIncrement tipi surekli artan bir sayıyı ifade eder her kayıt eklendiğinde sahanın değeri bir artar. Boylece tekrarsız kayıtları oluşturulmuş olur. Genellikle Birincil Anahtar olarak kullanılır.Delphi'de LongInt tipi ile birlikte kullanabilirsiniz.
Binary:Binary tipi diğer tiplerle tutulamıyacak olan verilerin (genellikle kullanıcı tanımlı verilerin) tutulması icin kullanılır tum ASCII tabloyu kullanabilir.Bu tip Mb uzantılı bir dosyanın icinde tutulur.Asıl tabloya bağlanır.
Bytes:Bytes tipi genellikle Barkod yada manyetik şeritleri tutmak icin kullanılır.Bu tip Mb uzantılı bir dosyanın icinde tutulur.Asıl tabloya bağlanır.
Size hucresine hangi veriyi girmişseniz o veri ile ilgili boyutu girmelisiniz. tanımlama ekranının alt kısmında bu konuda bilgi vermektedir.
Key hucresi Anahtar saha olup olmadığını denetler. Eğer bu sahanın uzerini cift tıklarsanız o sahayı Anahtar saha yapmış olursunuz.
Veritabanı Oğelerine Giriş
Tablolara erişmek icin Delphi bir dizi oğe kullanir bir uygulamada eğer uygulama icinde tablonuza yeni kayit eklemek, tablonuzdan kayit silmek yada kayitlarinizi değistirmek istiyorsaniz en az uc adet oğelik combine kullanmaniz gerekecek. Bunlardan biri TTable ogesidir.
Table oğesi bir tabloya ulaşmak icin kullanabileceğiniz en sorunsuz ve en kisa yoldur. Hic bir kod yazmadan sadece Object Inspector yardımı ile bir tablo ile bağlanti kurabilirsiniz. Burada onemli olan tablonuzun bir alias altinda tanimli olmasidir.Eğer tanimli değilse bu tablonun icinde bulundugu dizinin yolunu girerekde tabloya ulaşmanız mumkun olabilir. Fakat bu programınızın taşınabilirliğini azaltır.
Bu oge calisma aninda gorunmeyen bir oğedir. Bu oğe ile bagladiginiz bir tabloyu elbette duzenlemek,tabloya kayit eklemek yadatablodan kayit silmek isteyeceksiniz. Ben bu bolumde TDBComponent'in bir uyesi olan TDBGrid'i kullanacagim. Cunku bu oğe ile tablonuzda bulunan tum kayitlari gorebilir degistirebilir,ekleyebilir yada silebilirsiniz. Bu oge Delphi'nin Data Controls sekmesinin altindadir. Borland tablolarin birden fazla oge tarafindan kullanilabilirligini saglamak icin degisik bir metot gelistirmistir. Bir TDataset kokenli veritabani ogesi ile (TTable,TQuery vs.) bir TDBcomponent ogeleri arasinda bir baglantinin kurulmasi icin TDataSource ogesinin kullanilmasi gerekmektedir.
DataSource oğesi sadece ara istasyon olarak gorev aln bir oğe pozisyonundadir ister yerel bir tablodan isterse uzak veritabani birimlerinden yada TClientDataSet ogesinden gelen bir veriyi isteyen Veritabani kontrollerine iletir. Istediginiz kadar cok kontrol baglayabilirsiniz. Simdi hep birlikte ilk veritabani uygulamamizi yaratalim. Bunun icin TTable,TDataSource,TDBGrid ogelerini kullanacagiz. Ben bu uygulama ornegi icin DBDemos aliasinin icinde olan bir tabloyu kullanmayi dusunuyuroum. Boylece sizde kendi bilgisayarinizda ayni uygulamayi gerceklestirebilirsiniz.
yandaki sekildeki gibi bir form yaratin ve bu formun uzerine table,datasource ve dbgrid ogelerini yerlestirin. Formumuz calistiginda table ve datasource oğeleri gorunmez olacagi icin bu oğeleri istediginiz bir yere yerlestirebilirsiniz. Table ogesini secip object inspector'da ozelliklerinin goruntulenmesini saglayin.Table ogesinin degistirilecek ozellikleri asagidaki gibidir(ogenin ozelliklerini degistirirken lutfen sirayi takip edin):
Ta
Table ogesinin bu ozelliklerini sirasi ile ayarladiktan sonra Datasource ogesinin ozelliklerini ayarlamamiz gerekiyor.Datasource ogesini secerek ozelliklerinin goruntulenmesini saglayin.Dataset ozelligini Table1 olarak atayin. Boylece herhangi bir DBComponent'i Table1 ogesine baglama imkanina kavusacagiz.
DbGrid ogesini ozelliklerinden Datasource ozelligini Datasource1 olarak ayarlayarak uygulamamizi tamamliyoruz. Asagidaki sekilde bir goruntu olusmazsa mutlaka bir seyi eksik yapmissinizdir demektir
uygulamayi calistirdiginizda bir kayit eklemek isterseniz klavye tuslarindan yaralanabilirsiniz.Insert tusu bir kayit eklemenizi F2 tusu uzerinde bulundugunuz kaydi degistirebilmenizi saglar.Ctrl+Delete tusu uzerinde bulundugunuz kaydi simenizi saglar. Kayitlar arasinda dolasmak istiyorsaniz ok tuslarini ve tab tusunu kullanabilirsiniz.Eger kayitlarin icinde daha rahat dolasmak istiyorsaniz TDbNavigator ogesini ekleyebilir ve Datasource ozelligini Datasource1 yapabilirsiniz. Dikkat ettiyseniz bu uygulamada bir satir kod bile yazmadik. Bu Delphi'nin bize sagladigi oge gelistirme teorisinin bir armaganidir.Fakat her veritabani uygulamasi bu kadar kolay hazirlanmayabilir ozellikle birbiri ile bagli tablolarda baglantili tablodaki bir veriye gore anatablodan bir veri secmemiz gerektiginde bir kac satir kod daha yazmamiz gerekir. Bunun icin TQuery ogesinin kullanilmasi gerekir.
TQuery ogesi ile tablolar birbiri ile birlestirilebilir ic ice sorgular yaratilabilir. TQuery ogesi TTable ogesinden daha yavastir. Bunu cok kayitli bir veritabaninda rahatlikla gorebilirsiniz.Fakat ag uzerinde bir tablonun kayitlarina ulasilacaksa yada bir internet sunucusundan kayitlar sorgulanacaksa TQuery ogesi Table ogesinden daha hizli olabilir. Bu olusumun sebebi Table nenesinin tablodaki tum kayitlara erismesi sonucu veri trafigini cok arttirmasidir.Query ogesi ise ag uzerinde sorguyu Ulasilan sunucunun veritabani motoruna yollayip istenilen kayitlari sorgulamasini ister.Donen kayit miktari, eger tum kayitlarin listelenmesi istenmemisse, Table ogesinin dondurecegi miktardan daha azdir.
Size Veritabani uygulamasi gelistirme asamasinda verebilecegim tek ogut gerekli olmadikca tum kayitlari kullaniciya gostermeyin. sadece tabloda ekleme silme ve degistirme yapacakca tum kayitlari gormesine gerek yok. Insanlarin dogasi geregi belirli bir miktar bilgiyi bir anda kafalarinda sorgulayabilirler. Bu miktardan fazlasi kullanici icin gereksizdir. TQuery ogesi SQL dilini bilmenizi gerektirir. TQuery ogesi SQL anlatidiktan sonra aciklanacagi icin burada deginmeyecegim.Table ogesi bittikten sonra DBComponent kontrollerinin kullanimina gececegim ardindan SQL dilini altatan bir Makale dizisiyi yayinladiktan sonra Query ogesi ile Veritabani uygulamasi gelistirmek adli makale dizisine geri donecegim.
__________________