Temel DeLphi BiLgisi

Programlama dilleri konusunda bilgi paylaşım alanıdır.
Cevapla
Kullanıcı avatarı
feyizz
Kilobyte1
Kilobyte1
Mesajlar: 261
Kayıt: 25 Mar 2006, 09:24
Konum: Istanbul

Temel DeLphi BiLgisi

Mesaj gönderen feyizz » 23 Eyl 2007, 17:57

Delphi menüleri

File menüsü:
New: Pencerenin new kısmında bulunan bazı seçenekler sunlardır:
Form seçenegi ile aktif projeye yeni bir form eklenir.
Application seçenegi aktif projeyi kapatarak yeni bir projenin baslatılmasını saglar. Bu seçenek standart windows programını olusturmak için kullanılır.
Component seçenegi ile delphi component dosyası olusturulabilir.
DLL seçenegi ile DLL dosyaları gibi kütüphane dosyaları olusturmak için kullanılır.
Text seçenegi ile yeni bir text dosyası eklenebilir. Bu dosyalar kod degil metin içerirler.
Unit seçenegi projeye yeni bir unit ekler.
ActiveX:

Active Form seçenegi ile active formlar olusturmak için kullanılır.
Olusturulan bu formlar web tarayıcılar tarafından çalıstırılabilir programlardır.
ActiveX Control seçenegi yeni activeX controller olusturmak için kullanılır. Bu seçenek ile birlikte activex sihirbazları devreye girerek atılacak adımlar için programcıya yardımcı olurlar.
ActiveX Library seçenegi yeni activex kütüphaneleri olusturmak için kullanılır.
Automation Object seçenegi yeni OLE elemanları olusturmak için kullanılır. Bu seçenek ile birlikte OLE otomasyon sihirbazları devreye girerek atılacak adımları için programcıya yardımcı olurlar.
Property Page seçenegi activex kontrollerine ait özelikleri degistirmek için kullanılabilecek
Özellikler penceresi olusturmak için kullanılır.

New application
Aktif projeyi kapatarak yeni bir projenin baslatılmasını saglar.
New data module
Yeni bir modülü olusturmak için 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ı açmaya yarar.
ReOpen
Son çalıstıgınız projelerin listesi bu menü altında tutulacak. Böylece son kullandıgınız bu menü altından kolayca açabilirsiniz.
Save.Save As,Save All
Projedeki dosyaları aynı isimle veya yeni isimle kaydeder. Projenizi kaydettiginizde projedeki unitlerin isimi kaydettiginiz isim olacaktır. Bu yüzden dosya isimlerinde bazı Türkçe karakterleri kullanamazsınız. Ayrıca kaydettiginiz isimle Unit satırında tanımlanan isim aynı degilse delphi hata verecektir. Bu yüzden unit satırındaki ismi degistirmemelisiniz.
Close,CloseAll
Aktif dosyayı veya projedeki bütün dosyaları kapatır.
Add To Project
Projeye var olan Unitlerden (.PAS) ekler.
Remove form Project
Açılan pencereden seçilen unit veya formu projeden çıkarır.
Edit menüsü:

Cut,Copy,Paste
Keme kopyalama ve yapıstırma islemlerini yapar. Sadece kodları degil kontrolleride kesip yapıstırabilirsiniz. Bu islem o kontrol ile aynı özelliklere sahip fakat isme sahip yeni kontroller olusturulur.
Eger bir kontrolün kopyasını çıkarırsanız olusan yeni kontrol eski kontrole ait olay alt programlarını kullanacaktır.
Align to Grid
Seçilen kontrolün koordinatları form üzerindeki gridlere denk gelmiyorsa en yakın grid noktasına denk gelecek sekilde tasınır.
Brign To Front, Send To Back
Üst üste gelen kontrollerden birini öne ve arkaya almaya yarar.
Align
Seçilen kontrolleri aynı hizaya getirmeye yarar.
Size
Seçilen kontrollerin hepsinin aynı boya ve/veya aynı yükseklige sahip olmasını saglar. Açılan pencerede seçile seçime hepsi en küçügünün veya en büyügünün boyuna getirilmesi saglanır.
Scale
Form üzerindeki kontrollerin seçilen oranda büyültüp küçültmeye yarar. Bir seferde %25 ile %400 oranında ölçeklendirilebilir.
Tab Order
Form üzerindeki kontrollerin tab sırasını degistirmeye yarar. Tab sırası kullanıcının kontroller arasında tab tusu ile geçis yaparken sırası ile hangi kontollere geçilecegini belirler. Açılan pencerede su anki tab sırası görüntülenir. Asagı/Yukarı dügmesi ile seçilen kontrolün tab sırası degistirilebilir.
Lock Control
Form üzerindeki su anki koordinatlarına kilitleyerek yerlerinin degistirilmesini önler. Tekrar seçilirse bu kilit kalkar. Özellikle üzerinde bir çok kontrolün bulundugu formlarda form tasarımı bittikten sonra yanlıslıkla kontrollerin yerinin degistirilmesini önlemek için faydalı bir seçenektir. Özellikle bir çok kontrolün bulundugu formlarda ekrana sıgmayan kontrolleri de ekranda kaydırma çubugu olmadan göstermek için kullanıslı bir seçenektir.

Search menüsü :

Find
Kod penceresinde herhangi bir ifadeyi bulmak için kullanılır.
Find in Files
Belirlenen bir dosyanın içinde bir ifade bulmak için kullanılır.
Replace
İstenilen ifadeleri bir digeriyle degistirmek için kullanılır. Aynı yerde geçen birden fazla olan ifadeler otomatik olarak tek adımda degistirilir.
Search Again
Aranılan ifade F3 tusu ile tekrar aratılır.
Incremental Search
Arama asagı dogru devam ettirilir.
Goto Line Number
İstenile bir adıma tek adımda ulasmak için kullanılır.
View Menüsü :

Project souce
Projenin olusturulması için gerekli olan kodu kod penceresinde gösterir.
Bu kod, proje olusturulurken delphi tarafından olusturulur.
Project Manager
Project manager penceresini görüntüler. Project manager penceresi normalde ekranda görülmez. Bu pencerede programınıza ait formlar ve unitler gösterilir. Bu pencere içindeki dosyalar DPR uzantılı bir dosyada tutulur. Projeden bir dosyayı çıkarmak için remove seçenegini, pencereye var olan dosyalardan eklemek içinde add seçenegini kullanabilirsiniz. Projenizle ilgili ayarları da options seçenegi ile yapabilirsiniz. Ekranda görülmeyen bir formu görüntülemek için bu penceredeki view form seçenegi kullanılabilir.
Object Inspector
Object inspector penceresini görüntüler. F11 kısayol tusu ile de ulasabilirsiniz. Bu pencere form üzerine component paletten yerlestirilen her kontrolün özellik ve olaylarını belirler.
Alignment Palette
Bu pencere seçilen kontrolleri aynı hizaya getirmeye yarar.
Windows List
O anda açık olan pencerelerin listesini gösterir.Listeden seçili olan pencereye geçis yapabilirsiniz.
Component List
Form üzerinde kullanabilecegimiz kontrol elemanlarını göstermeye ve istenilen form üzerine almaya yarar.
Break Points
Programı adım adım çalıstırırken programın bir noktaya kadar çalısıp geçici olarak durmasını saglamak ve o noktadaki degiskenlerin degerlerini incelemek için belirli noktalara F5 tusu ile breakpointler konabilir. Programınıza fazla sayıda breakpoint koyduysanız bunları takip etmek için bu menü seçenegini kullanabilirsiniz.
Call Stack
Bu seçenekte adım adım çalıstırmada kullanılır. su anda çalısan fonksiyonun hangi fonksiyonlar tarafından çagrıldıgını gösterir. Özellikle kendi kendini çagıran prosedürler söz konusu ile prosedürün kaç düzeyde kendini çagırdıgını görmek için gereklidir.
Watches
Program adım adım çalıstırılırken degiskenleri izlemek üzere run-add watch seçenegi ile eklenmis degiskenlerin bulundugu pencereyi görüntüler. Bu pencerede degerleri izlemek üzere eklenmis degiskenlerin degerleri görülmektedir. Bu degiskenlere yeni birisini eklemek için listedeki bos bir satırı çift tıklayabilir, listedeki degiskenlerden birini silmek için del tusuna basabilirsiniz.
Toggle Form/Unit
Formlar ve unitler arasında geçis yapmak için kullanılabilecek bir seçenek. F12 kısayol tusu ile de kolayca geçebilirsiniz.
Unit
su anda projede mevcut olan unitleri bir pencerede listeleyerek bunları seçip görüntüleme imkanı verir.
Forms
su anda projede mevcut olan formları bir pencerede listeleyerek bunları seçip görüntüleme imkanı verir.

New Edit Window
su andaki kod penceresinin bir kopyasını yeni bir kod penceresi ile gösterir. Bunlardan birinde yaptıgınız degisiklik digerinde de anında yapılır. Bu yeni pencere size kodunuzun aynı anda göremediginiz kısımlarını göme imkanı verir.

Project Menüsü :

Add to project
Projeye var olan unitlerden eklemeye yarar. Seçenegi seçtiginizde karsınıza çıkan dialog penceresinde istediginiz unit ilgili klasörden bulunup eklenebilir.
Remove from project
Açılan pencere vasıtasıyla seçilen formları veya unitleri projeden çıkarır.
Import type library
Bu seçenekle açılan pencere vasıtasıyla bilgisayarınızda kullandıgınız ve kontrol elemanlarını içeren kütüphane dosyalarını projenize ekleyebilirsiniz. Buradaki add dügmesi bu pencereye yeni kütüphane dosyaları ekler. Remove dügmesi de penceredeki dosyaları kaldırır. Ok dügmesi ise seçili olan dosyayı bir unit olarak projeye ekler.
Compile
Programı çalıstırmadan derler. Örnegin bir DLL dosyası yazılırken bu dosya çalıstırılamaz. Bunun sadece derlenmesi gerekir.
Build All
Compile veya run seçenegi ile derlenen projede bütün unitler ve formlar derlenmez. Bunun yerine en son derlemeden sonra degisen dosyalar derlenir. Build all seçenegi degismis olsun olmasın bütün dosyaları yeniden derler.
Syntax Check
Bu seçenek Link yanmadan sadece yazım hataları olup olmadıgını kontrol eder.
Information
Program derlendikten sonra proje hakkındaki teknik bilgiyi bir dialog penceresi ile görüntüler.
Options
Programla ilgili ayarların yapılabilecegi pencereyi açar. Bu pencerede yapılan ayarlar sadece su andaki projeyi etkileyecektir. Eger bütün projeler için bu ayarların kullanılmasını istiyorsanız default dügmesini isaretlemelisiniz. Penceredeki forms tabı kısmı(bölümü)’nda main form kutusunda programın hangi formun ana form olacagı belirlenir. Normalde projede ilk olusturulan form ana formdur ve ilk olarak bu formla program çalısmaya baslar.
Auto create forms listesinde hangi formların otomatik olarak olusturulacagı belirlenir. Diger listede (available forms listesi) bulunan formlar ise otomatik olarak olusturulamaz. Bunları olusturmak için create metodu kullanılmalıdır. Hangi formları otomatik olarak olusturulup olusturulamayacagını formları bu listeler arasında tasıyarak belirleyebilirsiniz.
Application tabında ise programın baslıgı, help dosyasının ismi ve ikonu belirlenir. Proje için bir help dosyası belirlenmisse kullanıcı programı çalıstırırken F1 tusuna basarsa bu help dosyası winhelp32 aracılıgıyla görüntülenir ve kullanıcının üzerinde bulundugu kontrolün helpcontextID özelligi ile belirlenen konu gösterilir.( Bu numaralı konunun ne oldugu help dosyası tasarlanırken belirlenir.)
Title kutusunda belirlenen baslık ise formun degil programın baslıgıdır. Bu baslık program minimize edildiginde, görev çubugunda görülen isimdir.
Icon kutusunda belirlenen ikon da title özelligi gibi forma ait degil programa ait ikondur. Yukarıdaki durumlarda da yine bu ikonla temsil edilir.

Run :

Run

Programı derleyip çalıstırır. Program zaten derlenmisse sadece çalıstırır. Ayrıca programın çalısması kırılmıssa kaldıgı yerden devam ettirir. F9 kısayol tusu da kullanılabilir.
Parameters

Program komut satırından parametre alıyorsa tasarım asamasında komut satırı parametreleri buradan verilir.
Program Reset

Programın çalısmasını durdurur. Ancak bu islem bazen sitem kaynaklarının azalmasına sebep olabilir. Böyle bir durum söz konusu ise delphi sizi uyaracaktır. Program bu seçenek sonlandırıldıgında açık olan dosyalar kapatılır, component library’den olusturulmus kontrollere verilen sistem kaynakları geri alınır ve degiskenler bellekten atılır. Ancak programınızda kendi kodlarınızla olusturdugunuz sistem kaynagı tüketen bilesenlerin kullandıgı kaynaklar serbest bırakılmayacaktır.

Hata Ayıklama İslemleri

Eger programın sonsuz döngüye girmesi sebebi ile normal yollardan kapatamıyor ve program reset menüsüne de ulasamıyorsanız Ctrl+Alt+SysReg tuslarına bamayı deneyin.
Menüdeki diger seçenekler vasıtası ile program adım adım çalıstırılarak programdaki hatalar ayıklanabilir. Bahsedilen hatalar yazım hataları degil mantık hatalarıdır. Program adım adım çalıstırılarak degiskenlerin durumu bu seçenekler vasıtasıyla incelenebilir.

Programı debug modunda çalıstırmak için F8(step over) veya F7(trace intro) tusu kullanılabilir.
Ayrıca belirli bir satıra kadar çalısması içinde F5(Add breakpoint) tusu ile durulacak satır belirlendikten sonra F9 tusu ile derlenir.
Programa bu islemler yapılmada baslansa bile program pause seçenegi ile programın çalısması durdurulup debug moduna geçilebilir.
Bu modda degiskenlerin durumu fonksiyonların çagrılma sırası görülebilir.
Step Over(F8)

Programı bir onraki satıra kadar çalıstırır. Her satırı tek tek çalıstırıp eskisini görmek için kullanılabilir.
Trace Intro(F7)

Step over gibi satırları tek tek çalıstırmaya yarar, ancak step over’den farklı olarak eger satırda bir fonksiyon çagrısı varsa fonksiyona gidilir.
Add Breakpoint(F5)

Programı F8 ile adım adım çalıstırmak her zaman kullanıslı degildir. Örnegin 1’den 1000’e kadar olan bir for-do döngüsünden F8 ile çıkmak zordur. Bu gibi durumlarda break point dedigimiz, programdaki bazı satırlara F5 ile kesme konur ve F9 ile program çalıstırılır. Kontrol kesme konan satıra program kırılır ve sonuçlar bu sekilde izlenebilir.
Show Execution Point

Kursörü su anda çalısacak satıra götürür.

Add Watch

Program çalısırken izlenecek degiskenler bu seçenek ile eklenir. Bu yöntemle eklenen degiskenlerin degerleri watch list penceresinde görüntülenir.(Bu pencereyi view-watches menü seçenegi ile görüntüleyebilirsiniz.) Global ve o anda çalısan prosedürdeki local degiskenlerin su naki degerleri pencerede görüntülenir.
Add watch seçenegi bir inputbox penceresi açarak izlenecek degiskeni girmenize imkan verir. Bu penceredeki expression kutusuna izlenecek degiskenin adı girilir.
Enabled seçenegi kaldırılırsa degiskenin degeri listede gösterilmez. Bir çok degiskeni birlikte izliyorsanız programın çalısması yavaslayacaktır. O anda degerine ihtiyaç duymadıgınız bazı degiskenleri bu yöntemle izlenmesini durdurabilirsiniz.
Radio dügmeleri ile degiskenin uygun baska bir formatta gösterilmesini saglayabilirsiniz. Default seçenegi degiskeni orijinal haliyle gösterir. Örnegin integer bir degiskenin hexadecimal sistemde gösterilmesi için hex integer seçenegi kullanılabilir.
Memory Dump seçenegi degiskenin bellekteki halini gösterir. Örnegin bir string degiskenin bellekte durumunu görmek için bu seçenegi kullanabilirsiniz. String’in ilk byte’nın karakter sayısını gösterdigini görebilirsiniz.

Evaluate/Modify
Bu seçenekle girilen degiskenin sadece o andaki degeri ögrenilebilir veya degistirilebilir. Add watch seçeneginden farklı olarak degisken debug penceresine eklenmez ve sürekli takip edilmez. Sadece seçildigi andaki degeri görüntülenir. Bu seçenek bir inputbox penceresi açarak degiskeni girmenize ve degistirmenize imkan verir.
Expression kutusuna degiskenin adı girilir. Evalute komutu degiskenin su anki degerini görüntüler. Bu deger degistirilmek isteniyorsa New value kutusuna degiskenin almadı istenen yeni deger girildikten sonra Modify dügmesi kullanılır. Ayrıca view-call stack seçenegi ile de su anda çalısan prosedürün kimler tarafından çagrıldıgı görülebilir.

Component Menüsü :

New
Yeni bir component dosyası olusturmak için kullanılır.
Install Component
Component palete yeni kontroller eklemek için kullanılır.
Configure Palette
Component palette yer alan kontrollerin yerlerini degistirmek için veya silmek için kullanılır.
Import Activex Control
Activex (OCX) kontrollerini de delphi ile kullanabilirsiniz. Bu menü ile açılan asagıdaki pencereyi kullanarak sisteminize kayıt yapılmıs activex kontrollerinden seçtiklerinizi ekleyebileceginiz gibi Add dügmesi ile de yeni OCX dosyalarını ekleyebilirsiniz.

Database Menüsü :
Explore
Database explorer programını çalıstırır.
SQL Monitor
SQL monitor programını çalıstırır.
Form Wizard
Programa database formları eklemek için yardımcı olur. Açılan pencereler takip edilerek formun tipini, kullanacagı database dosyasını ve bu dosyadaki anları seçmenizi saglayarak bir database formu olusturmanızı saglar.

Tools Menüsü :
Environment Options
Bu seçenekle açılan pencereden editörle ilgili özellikler 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 seçenegi ile yeni bir form olustururken buraya eklediginiz formlardan birini seçebilmenizi saglar.
Configure Tools
Tools menüsüne çok kullandıgınız programlardan ekleyebilirsiniz. Bu menüye yeni program eklemek için tools menüsünün configure tools seçenegi kullanılır.

Sag Fare Tusunun Kullanımı
Windows altında çalısan programların çogu sag fare tusunu destekler. Böylece sag fare tusu ile açılan popup menüler aracılıgıyla yapılacak islemlere oldukça hızlı errisim saglanmıs olur.
Form Üzerinde Sag Fare Tusu

Form üzerinde sag fare tusu tıklanacak olursa açılan popup menüdeki seçenekler edit menüsü ile aynıdır.
Align to Grid
Seçilen kontrolün koordinatları form üzerindeki gridlere denk gelmiyorsa en yakın grid noktasına denk gelecek sekilde tasınır.
Brign To Front, Send To Back
Üst üste gelen kontrollerden birini öne ve arkaya almaya yarar.
Align
Seçilen kontrolleri aynı hizaya getirmeye yarar. Açılan penceredeki radio dügmeleri kullanılarak seçili olan eleman sagdan,solan,üstten,merkezden,alttan aynı hizaya getirilebilir. Hatta seçili olan elemanlar formun tam ortasına alınabilir.
(Center in window seçenegi ile)
Size
Seçilen kontrollerin hepsinin aynı boya ve/veya aynı yükseklige sahip olmasını saglar. Açılan pencerede seçile seçime hepsi en küçügünün veya en büyügünün boyuna getirilmesi saglanır. Buradaki no change seçenegi ile elemanlar üzerinde bir islem yapılmazken, shrink to smallest seçenegiyle, seçili olan en küçük boyutlu elemanın boyutuna, grow to largest ile de en büyük elemanın boyutuna getirilir. Width, heigth seçenekleri ile de seçili olan elemanları genislik ve uzunlukları degistirilir.
Scale
Form üzerindeki kontrollerin seçilen oranda büyültüp küçültmeye yarar. Bir seferde %25 ile %400 oranında ölçeklendirilebilir. Bu pencerenin kutusuna girilen sayısal ifade seçili olan elemanların boyutlarını degistirir.
Tab Order
Form üzerindeki kontrollerin tab sırasını degistirmeye yarar. Tab sırası kullanıcının kontroller arasında tab tusu ile geçis yaparken sırası ile hangi kontollere geçilecegini belirler. Açılan pencerede su anki tab sırası görüntülenir. Asagı/Yukarı dügmesi ile seçilen kontrolün tab sırası degistirilebilir.
Creation Order
Uygulamanın olusturdugu visual olmayan elemanları sırası bu pencere ile düzenlenebilir.
Kod Penceresinde Sag Fare Tusu

Close Page :Seçenegi ile mevcut kod penceresi kapatılır.
Open file at cursor : Kursörün bulundugu pozisyona istenilen dosya, aç dialog kutusu ile eklenir.
Topic search :Seçili olan deyim hakkında online yardım görüntülenir.
Toggle marker : Kod editörünün istenilen yerine isaret koyar. Bu islem birinci defasında isaret koyarken ikinci defasında kaldırır.
Go to marker : Daha önce isaretlemis yere direkt cursoru konumlandırır.
Toggle breakpoint : Kod editörünün istenilen noktasına, program kesme noktası bırakılır veya kaldırılır.
Run to cursor : Kursörün bulundugu noktaya kadar programı çalıstırır.
Evaluate/Modify : Bu menü seçenegi ile evaluate/modify dialog penceresi aktif hale getirilerek, var olan bir ifadenin degeri degistirilebilir yada degerlendirilebilir.
Add watch at cursor : Menü seçenegiyle watch dialog penceresi açılır. Burada gözleme pencereleri olusturulur veya degistirilir.
Read only : Menü seçenegiyle mevcut açık olan dosyaya sadece okunabilirlik özelligi verilir. Dosya üzerinde herhengi bir degisiklik yapılmaz.
Message view : Hata mesajlarını gösterecek olan pencereyi görüntüler yada saklar.
Properties : Bu seçenekle kod penceresine ait bazı ayarlamaların yapıldıgı pencere görüntülenir. Burada genel olarak kod editörü ile ilgili yazı ayarlamaları, renk ayarlamaları ve görüntü ayarlamaları yapılır.

Project Inspector Penceresinde Sag Fare Tusu


Expand : Alt seçenekleri + ile temsil edilen özellikler için aktif hale gelir. Bu seçenegin tıklanmasıyla alt seçeneklerde görülür.
Collapse : Alt seçenekleri açılmıs özellikler için aktif hale gelir. Bu seçenegin kullanılmasıyla alt seçenekli özellikler + halinde temsil edilir.
Saty on top : Object inspector penceresini daima en üstte tutar.
Hide : Object inspector penceresini gizler.
Help : Pencere ile ilgili yardım dosyasını açar.

Component Paleti Sag Fare Tusu


Configure : Component paletini yeniden belirlenen sekli ile kaydeder.
Show hints : Component paletinde bulunan elemanların isimlerini görüntüler.
Hide : Component paletini saklar.
Properties : Componentlerle ilgili bazı ayarlamaların yapıldıgı pencereyi görüntüler.

Standart Kontrol Elemanları

Standart kontrol elemanlarının kullanım amaçlarını kısaca verelim:
TMainMenu : Menü çubugunu tasarlamada kullanılır. Bu kontrol kullanıcının bilgi girisi yapmasına imkan veren en çok kullanılan elemanlardandır.
TPopupMenu : Sag fare tusu ile çalısan menüler hazırlamada kullanılır.
TLabel(Etiket) : Form üzerine açıklama yazmak yada kontrollere açıklama yazmada kullanılır.
Tedit(Metin kutusu) : Kullanıcının bilgi girmesi için kullanılır.
TMemo(çok satırlı bilgi girisi kutusu) : Kullanıcının birden fazla satıra sahip bilgileri girmesi için kullanılır. Edit kutusunun yapabildigi bütün islemleri yapabilirken
TButton(Komut dügmesi) : Kullanıcının bir isi yaptırabilmesi için kullanılır.
TCheckBox(İsaret kutusu) : Bir seçenegi aktif veya pasif yaptırmak için kullanılır.
TRadioButton(Seçenek kutusu) : Birden fazla seçenekten birisinin seçilmesi gereken durumlarda kullanılır.
TLisbox(Liste kutusu) : Birden fazla elemanı listelemek ve düzenlemek için kullanılır.
TComboBox(Asagı dogru açılan liste) : Kullanıcının hazır degerlerden birini seçebilmesi için kullanılır.
TScrollBar(Kaydırma çubugu): Kaydırma islemlerinde veya deger artırıp azaltma islemlerinde kullanılır.
TRadioGroup : seçenek dügmelerini tasarım zamanı olusturabilmek için kullanılır.
TPanel Kontrol Elemanı : Diger kontrolleri gruplamak ve durum çubugu olusturmakta kullanılır.
TGroupBox(Gruplama kutusu) : Diger kontrolleri (daha çok seçenek dügmelerini) gruplamakta kullanılır.

Tablo Özellikleri

Bu Bölümde saha geçerlilik kurallarının tanımlanması,Table lookup,secondary indexes(ikincil anahtarlar),referantial Integrity(tablo iliskileri),sifre güvenligi ve Tablo dilinin ayarlanması konularıolacak.

A) Sahaların Geçerlilik Kuralları:

Bir sahanın üzerinde dolasırken eger tipini tanımladıysanız sahanın tipine göre saha özelliklerini belirleyebileceginiz metin kutuları,bir onay kutusu ve bir dügme kullanılabilir hale gelir.Bu metin kutularını kullanarak sahayı istediginiz özelliklerde belirleyebilirsiniz.
Required Field: Tabloya giris esnasında kullanıcı sahayı atladıgında hata vermesini saglar.Böylece kullanıcını hiç bir sekilde bu sahayı bos geçmemesini saglarız.
Minimum Value:Sahanın tip tanımlamasına uygun bir sekilde sahanın alabilecegi minimum degeri içerir. Örnegin bir sepetteki elma sayısı asla eksili bir deger olamaz. Bunun için minimum degerine 0 atamalıyız.
Maximum Value:Sahanın tip tanımlamasına uygun bir sekilde sahanın alabilecegi maximum degeri içerir.Örnegin iskambik kagıdı no'su tutan bir saha için iskambil kagıdı sayısı 52'den fazla olamaz.olursa hile var demektir
Default Value:Bu sahanın varsayılan degeridir. Minimum ile maximum degerleri arasında bir deger almalıdır.
Picture: Bu sahanın görünüm ve giris seklidir.Bu özelligi kullanarak sahanıza yapılan girisin sizin belirlediginiz kurallara uygun olup olmadıgını hiç bir kod yazmadan kontrol edebilirsiniz.

Örnekler:
yazılabilir.


Örneklere bakarak sizde kendi giris formüllerinizi yazabilirsiniz.Bunun için önce yukarıdaki resimde gördügünüz Assist dügmesine basarak yandaki resimde oldugu gibi bir ekran çıkaracaksınız. Daha sonra picture yazan metin kutusuna düsündügünüz formatı yazacaksınız. Dogru olup olmadıgını test etmek istiyorsanız Verify Syntax dügmesine basmalısınız.
Eger yazdıgınız formatı denemek istiyorsanız Sample Value metin kutusuna formatta belirttiginiz sekilde bir veri girmelisiniz. Eger girdigniz verinin formata uygun girilip girilmedigini merak ediyorsanız Test Value dügmesine basın.Eger Value is Valid mesajını görürseniz girdiginiz veri hazırladıgınız formata uygun demektir.
Hazırladıgınız bu formatı kaydetmek için add to list dügmesine basmalısınız.
Eger listedeki bir format kullanmak istiyorsanız formatı seçip Use dügmesine basmalısınız.
B) Table Lookup:

Table lookup tanımlamak için Table Properties combo kutusundan table look up seçenegini seçip define dügmesine basmalısınız
Karsınıza yukarıdaki gibi bir ekran çıkacak. Burada sagda tanımlı olan sizin su anda üzerinde çalısmakta oldugunuz ve look up tanımlayacak oldugunuz tablodur. Buradan hangi sahayı look up saha olarak tanımlamak istiyorsanız o sahayı liste kutusundan seçip FieldName metin kutusunun solundaki dügmeye basarak metin kutusuna atamalısınız.
Soldaki sahada seçilen aliasın içerdigi tabloları görüyorsunuz. Bu tablolardan look up yapmaya uygun bir tanasini seçip look up field metin kutusunun sagındaki dügmeye tıklayarak metin kutusuna atamalısınız. Burada dikkat edeceginiz 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.Eger Lookup tablosu olarak kullanacagınınz tablonun ilk sahası anahtar saha olursa bu lookup yapma islemini 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 degil look up tabloda bulunan ve lookup saha içeren tablonun tipleri ve adları uyan sahalarına da varsayılan degerleri atar. Örnegin içinde soyadı ve adı bulunan bir tablodan lookup yaptıgımızı düsünelim. Eger lookup yapan tabloda soyadı ve adı sahaları varsa mutlaka bu iki degeri 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 göre kayıtları dizmek için tanımlanır. İkincil indeksi bir sahadan yaratabileceginiz gibi birden çok sahanın bir kombinasyonu olarakta yaratabilirsiniz.Not olarak ikincil indeks ile sadece bir kaydın sıralama kuralını degistirebilirsiniz. Onun fiziksel sırasını degil.

ikincil Indeks tanımlamak için Table Properties combo kutusundan table Secondary Indexes seçenegini seçip define dügmesine basmalısınız.


Yukarıdaki ekran gibi bir ekran karsınıza çıkacak.Sag tarafta üzerinde degisiklik yaptıgınız tablonun sahaları görünmekte. Buradan birini yada birkaçını seçerek sag ok dügmesine basarak Indexed Fields liste kutusuna ekleyebilirsiniz.
Alttaki change order adıyla tanımlanan dügmeleri kullanarak sahaların indekslenme sırasını degistirebilirsiniz.
Index option grup kutusunda ise 4 özellik tanımlanmıs.Bunlar:

Uniquie:İkincil indekste birden fazla kaydın aynı degeri içerip içeremeyecegini belirtir.Eger Uniquie isaretli ise ve Database Desktop tekrarlı bir kayda rastlarsa indeks uygulanmaz ve bir hata mesajı görüntülenir.Sahanın verisini degistirip tekrar indekslemeye çalısabilirsiniz.
Descending:İkincil indeksin azalan yönde mi yoksa artan yönde mi sıralanacagını belirtir.Eger isaretli degilse azalandan artana dogrudur.
Case Sensitive:Sıralamada büyük yada küçük harf olusuna dikkat edilip edilmeyecegini belirtir.
Eger isaretliyse veri su sırada konumlanır:
Abcd, aBcd, aaaa
Eger isaretli degilse su sırada konumlanır:
aaaa, Abcd, aBcd


Database Desktop tek sahaları,büyük küçük harf duyarlı indeksleri otomatik isimlendirir.Eger büyük küçük harf duyarlılıgı olmayan bir indeks kaydedecekseniz kaydederken bir isim vermelisiniz. Bu size büyük küçük harf duyarlılıgı olan ve olmayan, aynı sahalara sahip, iki farklı indeks tanımlamanızı saglar.


Maintained:İkincil indeksin korunup korunmayacagını belirtir.
Maintained indeksler her tablo degisikliginde tekrar kaydedilir. Bu Sorgular gibi islemleri hızlandırır.Maintain indeksler anahtar içeren tablolarda geçerlidir.Maintain olmayan indeksler sadece indeks kullanılırken güncellenir.Örnegin bir tabloya bagladıgınızda yada bir sorguyu çalıstırdıgınızda.

Bir maintain olmayan indeksi kullanan bir islem yaptıgınızda bu islem digerinden biraz daha uzun sürer. Çünkü ilk önce indeks tablonun degisen verilerine göre yeniden düzenlenip indeks kurallarını yeniden sıralanacaktır.Her halukarda eger bir maintain olmayan indeks kullanmak isitiyorsanız degismeyen bir tabloda kullanının.Mesela sadece okunabilir tablolarda maintained olmayan indeksler daha hızlıdır.

D) Referantial Integrity:

Referantial integrity tablolar arası iliskileri tanımlar.tabloar arası iliskilerin nasıl tanımlanacagı ve neden tanımlanması gerektigi bir önceki makalede ayrıntıları ile verilmistir.Tablolar arası iliskileri tanımlamak için Table Properties combo kutusundan Referantial Integrity seçenegini seçip define dügmesine basmalısınız.



Yukarıdaki resimde gibi referantial integrity menüsü çıkacak. Fields liste kutusundan seçecegimiz saha ile iliskilendirmeyi düsündügümüz tabloyu seçip table liste kutusunun yan tarafındaki dügmeye tıklamalıyız.yukarıdaki resimin sag tarafında, üzerinde çalısmakta oldugumuz tablonun sahaları var.Bu sahalardan hangisini seçtigimiz tablonun anahtar sahası ile iliskilendirmek istiyorsak o sahayı seçmeliyiz. Böylece iki sahayı birbiri ile iliskilendirmis oluruz

Update Rule:

Cascade:Eger ana tabloda herhangi bir degisiklik olursa bu direk baglı tabloya yansır.
Prohibit:Eger ana tablodan bir veri silinecekse baglı tabloda da bu veri kullanılmıssa silinmesine izin verilmez.
Strict Referantial integrity:Eger bu isaretli ise; bu tablonun daha önceki paradox sürümleri tarafından kullanımı esnasında tablo iliskisinin bozulmamasını saglar.

E) Password Security:

Tablonuzun baskası tarafından görülmemesini istiyorsanız bir sifre belirtmelisiniz.(En azından Supervisor password'u bilmeyen biri tarafından).Bunun için Table Properties combo kutusundan Password Security seçenegini seçip define dügmesine basmalısınız.
Karsınıza yandaki gibi bir ekran gelecek. Buradan bir sifre belirtebilirsiniz.Eger Auxiliary Passwords dügmesine tıklayacak olursanız karsınıza asagıdaki gibi bir ekran çıkacak. Bu ekrandan iliskisel sifreler belirtebilirsiniz. Bu sekilde bir kisinin o tablo üzerindeki otoritesini de belirmis olursunuz.
Not: Buraya belirteceginiz sifre Ana sifreden mutlaka farklı olmalıdır aksi taktirde buraya sifre belirtmenin hiç bir anlamı yoktur. Tüm islemler için aynı sifreyi belirtebileceginiz gibi her islem için ayrı ayrı sifreler de belirtebilirsiniz.Bunu new tusu ile yeni bir sifre açıp sifreleyecegniz sahaları seçip saha operasyonunu seçip sifrenizi girdikten sonra add dügmesine basmanız yeterli olacaktır.
Buradaki operrasyonlar:
Eklemek ve silmek,Sadece veri girmek, güncellemek,sadece okumak ve tüm islemleri yapabilmek olarak sınıflandırılmıstır.
Not:Eger gerçekten veri güvenligine ihtiyacınız varsa Crypt veDeCrypt metotlarını kullanın.

F) Table Language:

Table Language kısaca tablonun dilini belirleyeceginiz bölümdür.Standart olarak tablonun dili ingilizceye uygun bir kod sayfasıdır. Eger Türkçe bir kod sayfası kullanmak istiyorsanız.Asagıdakilerden birini kullanabilirsiniz.

Base Trk cp857
Paradox Turk
Pdox ANSI Turkish
Unutmamanız gereken asıl sey Türkçe büyük harfin küçük harfe yada küçük harfin büyük harfe çevrilirken yasayacagınız problem.Bu tüm Database Desktop elemanları için geçerli bir sorundur. Büyük İ çevrilirken i ye çevrilecegine kod sayfasnıa göre farklı bir karaktere çevrilir. aynı sekilde I ise küçük ı ya çevrilecegine i'ye çevrilir. Bu bir fonksiyonla düzeltebilirsiniz.
Veri Tabanı ve DataBase Desktop
Veri Tabanı Nedir?

Veritabanı; kısaca verilerin tutuldugu yer anlamına gelir. Fakat bu tanımdan kasıt verilerin tutuldugu bir dosya olmayabilir.Örnegin BDE bir veritabanını her bir dosyaya bir tablo gelecek sekilde ayırmıstır.Fakat Access için tek bir dosya söz konusudur.

Tabloüsünün ki bir miktar saklamak istediginiz veriniz var. Bunlar:

Can,Kaynak,jankaynak@hotmail.com,Turkware Software Co., Mustafa,Kapsal,mustafakapsal@turkware.com,Turkware Software Co. vs.

Eger yukarıdaki verileri guruplamak istesek:

Soyadı Gurubu:Kaynak,Kapsal
Ad Gurubu:Can,Mustafa
sirket Gurubu:Turkware Software Co.,Turkware Software Co.
E-Mail Gurubu:jankaynak@hotmail.com,mustafakapsal@turkwar e.com


Gördügünüz gibi 4 ana baslık altında toplayabildim böylece daha düzenli oldular ve aradıgımı çabuk bulabilecek hale getirdim.
Yani tablo haline getirdim. Tablonun anlamı aynı niteligi betimleyen verileri tek bir gurup altında toplamaktır.Bu guruplar benim tablomun sahalarıdır. Asagıda yukarıdaki örnek bir tablo haline getirilmistir.


yukarıdaki tabloda Soyadı,Adı,sirket,E-Mail adları sahalarımı tanımlayan isimleri olusturdu. Dikkat! bu bahsettigim Soyadı,Adı,sirket,E-Mail sahaları tablomun sadece sahalarını tanımlar tablomun verilerine dahil degildir.

Her satır bir kayıtı tanımlar. Kayıt, Saha adlarına uygun olarak girilmis verilere denir.

Tabloda Birincil Anahtar:Tablo; veri tabanının en önemli özelligine uymalıdır.Tabloda tek olma. yani tüm sahaları aynı iki kayıt bir veritabanında bulunamaz. Bunun için Veritabanını sıralayan bir sahaya daha ihtiyaca vardır. Tabi ki her zaman ayrı bir saha olacak diye bir kaide yok ama eger sahanızda hiç tekrarı mümkün olmayan bir sahanız yoksa yeni bir saha yaratmanız kaçınılmazdır.Biz bu sahayı birincil anahtar olarak niteleriz. Yukarıdaki örnege bir birincil saha ekleyelim.



yukarıdaki örnekte ID adında bir saha daha ekledim. Bu ID sahasını sıralama degiskeni olarak kullanacagım her ekledigim kayıt öncekilerden farklı bir sayı olacak. Böylece tabloda tek olama kuralını korumus olacagım.

Yukarıda ID sahasının yanına parantez içinde bir yıldız koydum. Yıldız isareti o sahanı bir anahtar oldugunu belirtir.Bu yıldız tanımlaması tüm programcılar tarafından kullanılan bir standarttır.

Daha önce bahsettigim gibi her zaman birincil anahtar eklemek için farklı bir saha kullanmayabiliriz. Bunu yerine basbaya e-mail sahasını da kullanabilirdim. Çünkü herkesin kendine ait bir e-maili olacagı için tabloda tek olma kuralı yine korunmus olur.

Tablolar arası iliskiler:

Bazen bir veriyi toplulugunu tek bir tabloda tutmak mümkün olmayabilir. Bunun gerekçesi tek bir öge için birden çok kaydın olmasıdır. Bunu söyle açıklayabiliriz:

Mesela benim birden çok telefonum var.bunu iki sekilde tutabilirim. birincisi:

yukarıdaki örnekteki gibi tutmak saglıklı degildir. Çünkü eger ben baska bir telefon sahibi daha olursam bunu nereye yazacagım. Bunun nihayi çözümü tablolara parçalamak olacaktır. söyle ki:


Gördügünüz gibi yukarıdaki örnekteki gibi tanımlarsak iki ayrı tabloya ayırmıs oluruz.Ama Telefon bilgilerini içeren tabloda bir sey eksik. Telefonları kime ait oldugu. Telefonların kime ait oldugunu belirten bir saha daha eklemeliyiz.Ekliyecegimiz saha kisi bilgilerini içen tablodaki tekrarsız saha olmalı.Örnegimizi su sekilde degistiriyoruz.





Yukarıdaki örnekte gördügünüz gibi telefon bilgilerini içeren tabloya ekledigimiz, kisi bilgilerini içeren tablodaki anahtar saha ile aynı nitelige sahip saha;telefon bilgilerini kisi bilgileriyle eslestirip anlasılır bir kayıt kümesi olusturdu.

İpucu: Eger elinizde bir veri kümesi varsa ve hangilerinin hangi tabloda yer alacagına karar vermiyorsanız; su yöntemi deneyin. Eger bir kayıt için o saha birden çok bilgi içeriyorsa bu yeni bir tablodur.Bölün.

Eger tabanınızda birkaç kayıt varsa veri bu islemin islerliligi fazladır.Fakat binlerce kayıtla ugrasıyorsanız bu tanımlarda size yetmeyebilir. Bu tabloların kendi kendine birbiri ile iletisim kurmasını istiyorsak iliskilendirmeliyiz.

İliskiler; bir veri tabanının içindeki tabloların birbiri ile aynı görevde olan sahalarının birbirine baglanması seklinde nitelendirilebilir.

İliskiler ikiye ayrılır:

Bire-Çok iliski
Bire-Bir iliski
Bire-çok iliski; bir tablodaki her bir veri için iliskili tablodaki sahaya karsılık gelen birden çok veri varsa buna Bire-Çok iliski denir.Örnegin Bir babaya karsılık iki çocuk varsa bu bire çok iliskidir. Çünkü baba her ikisininde babasıdır.

Bire-Bir iliski; Bir tablodaki her bir veri için diger tablodaki sahaya karsılık gelen bir veri varsa buna Bire-Bir iliski denir. Örnegin Bir kisinin bir saat takması gibi.
Bire-bir iliskiler bir tablonun kendi sahaları arasındaki iliskidir. Bire çok iliskiler ise bir tablonun anahtar sahası ile baska bir tablonun aynı nitelikteki sahası ile iliskisidir. Bu iliskileri en iyi tasarlayabileceginiz program MsAccess programıdır. Veritabanı uygulamalarında hiç faydalanmasanız bile sadece iliskileri düzenleme ekranından faydalanabilirsiniz.Yandaki resim bire çok iliskinin MSAccess programında nasıl görüntülendigini açıklar.

Database Desktop


Database Desktop programı Delphi ile gelen bir programdır. Bu program yardımı ile tablolar ile ilgili her türlü islemi yapabiliriz. Database Desktop pek çok veritabanı motorunu kullanmanıza izin verir.

Delphi kullanıcıları arasında en çok kullanılanı ise Paradox'tur. Çünkü Paradox büyük veri yapılarıyla çolayca basa çıkabilir. Bende bu yüzden simdilik sadece Paradox kullanımını örnek göstererek Database Desktop'ı size anlatacagım.

Database Desktop'ta yeni bir tablo yaratmak için File/New/Table comutunu çalıstırmanız gerekiyor. Daha sonra karsınıza yandaki gibi bir ekran çıkacak buradan Paradox7'yi seçin.Eger Daha önceki sürümleri kullanmak yada baska veritabanları kullanmak istiyorsanız yine buradan seçebilirsiniz ama ben Paradox7 ile örnekleyecegim için Paradox7'yi seçmenizde fayda var.

Not:Paradox7 ve tüm Paradox sürümleri %100 güvenli degildirler. sifreleme yaptıgınızda bile eger bir ilaçer Paradox supervisor sifrelerini biliyorsa kolaylıkla veritabanınızın içinde ne var diye bakabilir. Bunu önlemenin yolu Crypt ve DeCrypt yöntemeleri ile verilerinizi sifrelemektir.

OK tusuna bastıgınızda karsınıza yandaki menü gibi bir menü gelecek.Bu Menüde İlk olarak Field Name Type Size ve Key hücreleri olacak.
Field Name hücresine 25 karakter uzunlugunda Delphi degisken isimlendirme kurallarına uygun bir isim girmelisiniz.
Type Hücresi bir açılır menü seklindedir. Menünün içerigi ve delphideki karsılıgı:

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(Tüm OLE Bilesenleri)
Logical(Boolean)
+AutoIncrement(Integer)
Binary(ikili veriler)
Bytes(Array of Char)


Alpha: Alpha tipi tüm yazdırılabilir karakterleri içerir.0-255 arasında boyutu olabilir. Delphi'de String tanımlı bir degisken tarafından kullanılabilir.

Number:Number tipi sadece pozitif/negatif isareti,ondalık isareti ve sayı içerebilir. Pozitif ve negatif ifadeler tutabilir.-10307den 10307'ye kadar deger alabilir.Delphi'de Float tanımlı bir degisken tarafından kullanılabilir.

Money:Money tipi tıpkı diger tipler gibi sayı içerir fakat sadece gösterimi digerlerinden farklıdır.Her üç hanede bir nokta ile ayrılır. fakat bu degerine etki etmez.Delphi'de Float tanımlı bir degisken tarafından kullanılabilir.

Short:Short Tipi -32,767'den 32,767'e kadar deger içerebilir.Delphi'de Integer tanımlı bir degisken tarafından kullanılabilir.

Long Integer:Long Integer tipi -2147483648'den 2147483647'e kadar deger içerebilir.Delphi'de LongInt tanımlı bir degisken tarafından kullanılabilir.

BCD(Binary Coded Decimal):BCD tipi ikili codlanmıs sayısal veri içerir.Diger sayısal tiplerin sagladıgından daha hassas hesaplamalar yapmanız gerektiginde BCD sahaları kullanın.Fakat hesaplamalar diger veri tiplerinden daha yavas olacaktır.

Date: Date tipi ile 1 Ocak 9999 M.Ö'dan 31 Aralık 9999 M.S'ye kadar ki tarihleri tutabilirsiniz.Tüm artık yılları düzgün bir sekilde tutar. Delphi'de TDateTime ile çevrimler sonucu kullanılabilir.

Time:Time tipi milisaniyeler halinde 24 saati adresler.Varsayılan saat tipini degistirmek için Paradıx'u kullanmalısınız. Delphi'de TDateTime ile çevrimler sonucu kullanılabilir.

TimeStamp:TimeStamp tipi Time ve Date tiplerinde olan bütün özellikleri saglayan birlesik bir tipdir. Delphi'de TDateTime ile çevrimler sonucu kullanılabilir.

Memo:Memo Tipi tüm yazdırılabilir ASCII kodları içerebilir (NULL dısında).Bu tip Mb uzantılı bir dosyanın içinde tutulur.Asıl tabloya baglanır.Bu tipi delphide kullanmak için TMemo nesnesini kullanabilirsiniz.Boyut olarak 1MB dan 240 MB kadar bir boyut belirtebilirsiniz

Formatted Memo:Formatted Memo tipi bir Richeditin içerebilecegi tüm içerigi saglar.(renk,font,bold vs.).Tüm yazdırılabilir ASCII kodları içerebilir (NULL dısında).bu tip Mb uzantılı bir dosyanın içinde tutulur.Asıl tabloya baglanır.Bu tipi Delphi'de kullanmak için TRichEdit nesnesini kullanabilirsiniz..Boyut olarak 1MB dan 240 MB kadar bir boyut belirtebilirsiniz

Graphicraphic tipi .BMP, .PCX, .TIF, .GIF, ve .EPS dosya formatlarını destekler. Bu dosya formatlarını BMP dosya formatınıa çevirip bu sekilde saklar.Graphic tipinin boyut tanımlamaya ihtiyacı yoktur çünkü tablodan farklı bir dosyada tutulurlar.Bu tipi Delphi'de kullanmak için TImage nesnesini kullanabilirsiniz.

OLE:OLE tipini her çesit dosyayı tutmak için kullanabilirsiniz.OLE sahası bu tip verileri göstermek ve degistirmek için bir yol saglar.Fakat ne yazık ki Database Desktop bu içerigi gösteremez.OLE tipinin boyut tanımlamaya ihtiyacı yoktur çünkü tablodan farklı bir dosyada tutulurlar.Bu tipi Delphi'de kullanmak için OLE nesnesini kullanabilirsiniz.

Logical:Logical tipi TRUE yada FALSE tipinde iki deger tutabilir.Delphi'de Boolean tipi ile birlikte kullanabilirsiniz.

AutoIncrement:AutoIncrement tipi sürekli artan bir sayıyı ifade eder her kayıt eklendiginde sahanın degeri bir artar. Böylece tekrarsız kayıtları olusturulmus olur. Genellikle Birincil Anahtar olarak kullanılır.Delphi'de LongInt tipi ile birlikte kullanabilirsiniz.

Binary:Binary tipi diger tiplerle tutulamıyacak olan verilerin (genellikle kullanıcı tanımlı verilerin) tutulması için kullanılır tüm ASCII tabloyu kullanabilir.Bu tip Mb uzantılı bir dosyanın içinde tutulur.Asıl tabloya baglanır.

Bytes:Bytes tipi genellikle Barkod yada manyetik seritleri tutmak için kullanılır.Bu tip Mb uzantılı bir dosyanın içinde tutulur.Asıl tabloya baglanır.

Size hücresine hangi veriyi girmisseniz o veri ile ilgili boyutu girmelisiniz. tanımlama ekranının alt kısmında bu konuda bilgi vermektedir.

Key hücresi Anahtar saha olup olmadıgını denetler. Eger bu sahanın üzerini çift tıklarsanız o sahayı Anahtar saha yapmıs olursunuz.

Veritabanı Ögelerine Giris
Tablolara erismek için Delphi bir dizi öge kullanir bir uygulamada eger uygulama içinde tablonuza yeni kayit eklemek, tablonuzdan kayit silmek yada kayitlarinizi degistirmek istiyorsaniz en az üç adet ögelik combine kullanmaniz gerekecek. Bunlardan biri TTable ögesidir.

Table ögesi bir tabloya ulasmak için kullanabileceginiz en sorunsuz ve en kisa yoldur. Hiç bir kod yazmadan sadece Object Inspector yardımı ile bir tablo ile baglanti kurabilirsiniz. Burada önemli olan tablonuzun bir alias altinda tanimli olmasidir.Eger tanimli degilse bu tablonun içinde bulundugu dizinin yolunu girerekde tabloya ulasmanız mümkün olabilir. Fakat bu programınızın tasınabilirligini azaltır.

Bu öge çalisma aninda görünmeyen bir ögedir. Bu öge ile bagladiginiz bir tabloyu elbette düzenlemek,tabloya kayit eklemek yadatablodan kayit silmek isteyeceksiniz. Ben bu bölümde TDBComponent'in bir üyesi olan TDBGrid'i kullanacagim. Çünkü bu öge ile tablonuzda bulunan tüm kayitlari görebilir degistirebilir,ekleyebilir yada silebilirsiniz. Bu öge Delphi'nin Data Controls sekmesinin altindadir. Borland tablolarin birden fazla öge tarafindan kullanilabilirligini saglamak için degisik bir metot gelistirmistir. Bir TDataset kökenli veritabani ögesi ile (TTable,TQuery vs.) bir TDBcomponent ögeleri arasinda bir baglantinin kurulmasi için TDataSource ögesinin kullanilmasi gerekmektedir.

DataSource ögesi sadece ara istasyon olarak görev aln bir öge pozisyonundadir ister yerel bir tablodan isterse uzak veritabani birimlerinden yada TClientDataSet ögesinden gelen bir veriyi isteyen Veritabani kontrollerine iletir. Istediginiz kadar çok kontrol baglayabilirsiniz. Simdi hep birlikte ilk veritabani uygulamamizi yaratalim. Bunun için TTable,TDataSource,TDBGrid ögelerini kullanacagiz. Ben bu uygulama örnegi için DBDemos aliasinin içinde olan bir tabloyu kullanmayi düsünüyüroum. Böylece sizde kendi bilgisayarinizda ayni uygulamayi gerçeklestirebilirsiniz.
yandaki sekildeki gibi bir form yaratin ve bu formun üzerine table,datasource ve dbgrid ögelerini yerlestirin. Formumuz çalistiginda table ve datasource ögeleri görünmez olacagi için bu ögeleri istediginiz bir yere yerlestirebilirsiniz. Table ögesini seçip object inspector'da özelliklerinin görüntülenmesini saglayin.Table ögesinin degistirilecek özellikleri asagidaki gibidir(ögenin özelliklerini degistirirken lütfen sirayi takip edin):
Ta
Table ögesinin bu özelliklerini sirasi ile ayarladiktan sonra Datasource ögesinin özelliklerini ayarlamamiz gerekiyor.Datasource ögesini seçerek özelliklerinin görüntülenmesini saglayin.Dataset özelligini Table1 olarak atayin. Böylece herhangi bir DBComponent'i Table1 ögesine baglama imkanina kavusacagiz.
DbGrid ögesini özelliklerinden Datasource özelligini Datasource1 olarak ayarlayarak uygulamamizi tamamliyoruz. Asagidaki sekilde bir görüntü olusmazsa mutlaka bir seyi eksik yapmissinizdir demektir

uygulamayi çalistirdiginizda bir kayit eklemek isterseniz klavye tuslarindan yaralanabilirsiniz.Insert tusu bir kayit eklemenizi F2 tusu üzerinde bulundugunuz kaydi degistirebilmenizi saglar.Ctrl+Delete tusu üzerinde bulundugunuz kaydi simenizi saglar. Kayitlar arasinda dolasmak istiyorsaniz ok tuslarini ve tab tusunu kullanabilirsiniz.Eger kayitlarin içinde daha rahat dolasmak istiyorsaniz TDbNavigator ögesini ekleyebilir ve Datasource özelligini Datasource1 yapabilirsiniz. Dikkat ettiyseniz bu uygulamada bir satir kod bile yazmadik. Bu Delphi'nin bize sagladigi öge gelistirme teorisinin bir armaganidir.Fakat her veritabani uygulamasi bu kadar kolay hazirlanmayabilir özellikle birbiri ile bagli tablolarda baglantili tablodaki bir veriye göre anatablodan bir veri seçmemiz gerektiginde bir kaç satir kod daha yazmamiz gerekir. Bunun için TQuery ögesinin kullanilmasi gerekir.
TQuery ögesi ile tablolar birbiri ile birlestirilebilir iç içe sorgular yaratilabilir. TQuery ögesi TTable ögesinden daha yavastir. Bunu çok kayitli bir veritabaninda rahatlikla görebilirsiniz.Fakat ag üzerinde bir tablonun kayitlarina ulasilacaksa yada bir internet sunucusundan kayitlar sorgulanacaksa TQuery ögesi Table ögesinden daha hizli olabilir. Bu olusumun sebebi Table nenesinin tablodaki tüm kayitlara erismesi sonucu veri trafigini çok arttirmasidir.Query ögesi ise ag üzerinde sorguyu Ulasilan sunucunun veritabani motoruna yollayip istenilen kayitlari sorgulamasini ister.Dönen kayit miktari, eger tüm kayitlarin listelenmesi istenmemisse, Table ögesinin döndürecegi miktardan daha azdir.
Size Veritabani uygulamasi gelistirme asamasinda verebilecegim tek ögüt gerekli olmadikça tüm kayitlari kullaniciya göstermeyin. sadece tabloda ekleme silme ve degistirme yapacakca tüm kayitlari görmesine gerek yok. Insanlarin dogasi geregi belirli bir miktar bilgiyi bir anda kafalarinda sorgulayabilirler. Bu miktardan fazlasi kullanici için gereksizdir. TQuery ögesi SQL dilini bilmenizi gerektirir.
Sql dili için: SQL sorgulama dili temel komutları



Kullanıcı avatarı
mavigece
Megabyte1
Megabyte1
Mesajlar: 932
Kayıt: 16 Mar 2006, 08:55
cinsiyet: Erkek
İletişim:

Mesaj gönderen mavigece » 23 Eyl 2007, 20:33

Türk Toplumunun Çogu (bende dahil olmak üzere) okumayı sevmediginden bu denli uzun bir yazıyı bu forumda okuyacaklarını sanmıyorum.

ama genede ellerine saglık abi... :wink:
http://www.devasabilisim.com.tr - http://www.sefaaydin.net

Cevapla