File menüsü:
New: Pencerenin new kisminda bulunan bazi secenekler sunlardir:
Form secenegi ile aktif projeye yeni bir form eklenir.
Application secenegi aktif projeyi kapatarak yeni bir projenin baslatilmasini saglar. Bu secenek standart windows programini olusturmak icin kullanilir.
Component secenegi ile delphi component dosyasi olusturulabilir.
DLL secenegi ile DLL dosyalari gibi kütüphane dosyalari olusturmak icin kullanilir.
Text secenegi ile yeni bir text dosyasi eklenebilir. Bu dosyalar kod degil metin icerirler.
Unit secenegi projeye yeni bir unit ekler.
ActiveX:
Active Form secenegi ile active formlar olusturmak icin kullanilir.
Olusturulan bu formlar web tarayicilar tarafindan calistirilabilir programlardir.
ActiveX Control secenegi yeni activeX controller olusturmak icin kullanilir. Bu secenek ile birlikte activex sihirbazlari devreye girerek atilacak adimlar icin programciya yardimci olurlar.
ActiveX Library secenegi yeni activex kütüphaneleri olusturmak icin kullanilir.
Automation Object secenegi yeni OLE elemanlari olusturmak icin kullanilir. Bu secenek ile birlikte OLE otomasyon sihirbazlari devreye girerek atilacak adimlari icin programciya yardimci olurlar.
Property Page secenegi activex kontrollerine ait ozelikleri degistirmek icin kullanilabilecek
Ozellikler penceresi olusturmak icin kullanilir.
New application
Aktif projeyi kapatarak yeni bir projenin baslatilmasini saglar.
New data module
Yeni bir modülü olusturmak icin kullanilir.
New form
Projeye yeni form eklenir.
Open
Diskte var olan DPR (delphi-project), PAS (delphi-unit), DFM (delphi-form) ve TXT (metin) dosyalarini acmaya yarar.
ReOpen
Son calistiginiz projelerin listesi bu menü altinda tutulacak. Boylece son kullandiginiz bu menü altindan kolayca acabilirsiniz.
Save.Save As,Save All
Projedeki dosyalari ayni isimle veya yeni isimle kaydeder. Projenizi kaydettiginizde projedeki unitlerin isimi kaydettiginiz isim olacaktir. Bu yüzden dosya isimlerinde bazi Türkce karakterleri kullanamazsiniz. Ayrica kaydettiginiz isimle Unit satirinda tanimlanan isim ayni degilse delphi hata verecektir. Bu yüzden unit satirindaki ismi degistirmemelisiniz.
Close,CloseAll
Aktif dosyayi veya projedeki bütün dosyalari kapatir.
Add To Project
Projeye var olan Unitlerden (.PAS) ekler.
Remove form Project
Acilan pencereden secilen unit veya formu projeden cikarir.
Edit menüsü:
Cut,Copy,Paste
Keme kopyalama ve yapistirma islemlerini yapar. Sadece kodlari degil kontrolleride kesip yapistirabilirsiniz. Bu islem o kontrol ile ayni ozelliklere sahip fakat isme sahip yeni kontroller olusturulur.
Eger bir kontrolün kopyasini cikarirsaniz olusan yeni kontrol eski kontrole ait olay alt programlarini kullanacaktir.
Align to Grid
Secilen kontrolün koordinatlari form üzerindeki gridlere denk gelmiyorsa en yakin grid noktasina denk gelecek sekilde tasinir.
Brign To Front, Send To Back
Üst üste gelen kontrollerden birini one ve arkaya almaya yarar.
Align
Secilen kontrolleri ayni hizaya getirmeye yarar.
Size
Secilen kontrollerin hepsinin ayni boya ve/veya ayni yükseklige sahip olmasini saglar. Acilan pencerede secile secime hepsi en kücügünün veya en büyügünün boyuna getirilmesi saglanir.
Scale
Form üzerindeki kontrollerin secilen oranda büyültüp kücültmeye yarar. Bir seferde %25 ile %400 oraninda olceklendirilebilir.
Tab Order
Form üzerindeki kontrollerin tab sirasini degistirmeye yarar. Tab sirasi kullanicinin kontroller arasinda tab tusu ile gecis yaparken sirasi ile hangi kontollere gecilecegini belirler. Acilan pencerede su anki tab sirasi gorüntülenir. Asagi/Yukari dügmesi ile secilen kontrolün tab sirasi degistirilebilir.
Lock Control
Form üzerindeki su anki koordinatlarina kilitleyerek yerlerinin degistirilmesini onler. Tekrar secilirse bu kilit kalkar. Ozellikle üzerinde bir cok kontrolün bulundugu formlarda form tasarimi bittikten sonra yanlislikla kontrollerin yerinin degistirilmesini onlemek icin faydali bir secenektir. Ozellikle bir cok kontrolün bulundugu formlarda ekrana sigmayan kontrolleri de ekranda kaydirma cubugu olmadan gostermek icin kullanisli bir secenektir.
Search menüsü :
Find
Kod penceresinde herhangi bir ifadeyi bulmak icin kullanilir.
Find in Files
Belirlenen bir dosyanin icinde bir ifade bulmak icin kullanilir.
Replace
Istenilen ifadeleri bir digeriyle degistirmek icin kullanilir. Ayni yerde gecen birden fazla olan ifadeler otomatik olarak tek adimda degistirilir.
Search Again
Aranilan ifade F3 tusu ile tekrar aratilir.
Incremental Search
Arama asagi dogru devam ettirilir.
Goto Line Number
Istenile bir adima tek adimda ulasmak icin kullanilir.
View Menüsü :
Project souce
Projenin olusturulmasi icin gerekli olan kodu kod penceresinde gosterir.
Bu kod, proje olusturulurken delphi tarafindan olusturulur.
Project Manager
Project manager penceresini gorüntüler. Project manager penceresi normalde ekranda gorülmez. Bu pencerede programiniza ait formlar ve unitler gosterilir. Bu pencere icindeki dosyalar DPR uzantili bir dosyada tutulur. Projeden bir dosyayi cikarmak icin remove secenegini, pencereye var olan dosyalardan eklemek icinde add secenegini kullanabilirsiniz. Projenizle ilgili ayarlari da options secenegi ile yapabilirsiniz. Ekranda gorülmeyen bir formu gorüntülemek icin bu penceredeki view form secenegi kullanilabilir.
Object Inspector
Object inspector penceresini gorüntüler. F11 kisayol tusu ile de ulasabilirsiniz. Bu pencere form üzerine component paletten yerlestirilen her kontrolün ozellik ve olaylarini belirler.
Alignment Palette
Bu pencere secilen kontrolleri ayni hizaya getirmeye yarar.
Windows List
O anda acik olan pencerelerin listesini gosterir.Listeden secili olan pencereye gecis yapabilirsiniz.
Component List
Form üzerinde kullanabilecegimiz kontrol elemanlarini gostermeye ve istenilen form üzerine almaya yarar.
Break Points
Programi adim adim calistirirken programin bir noktaya kadar calisip gecici olarak durmasini saglamak ve o noktadaki degiskenlerin degerlerini incelemek icin belirli noktalara F5 tusu ile breakpointler konabilir. Programiniza fazla sayida breakpoint koyduysaniz bunlari takip etmek icin bu menü secenegini kullanabilirsiniz.
Call Stack
Bu secenekte adim adim calistirmada kullanilir. Su anda calisan fonksiyonun hangi fonksiyonlar tarafindan cagrildigini gosterir. Ozellikle kendi kendini cagiran prosedürler soz konusu ile prosedürün kac düzeyde kendini cagirdigini gormek icin gereklidir.
Watches
Program adim adim calistirilirken degiskenleri izlemek üzere run-add watch secenegi ile eklenmis degiskenlerin bulundugu pencereyi gorüntüler. Bu pencerede degerleri izlemek üzere eklenmis degiskenlerin degerleri gorülmektedir. Bu degiskenlere yeni birisini eklemek icin listedeki bos bir satiri cift tiklayabilir, listedeki degiskenlerden birini silmek icin del tusuna basabilirsiniz.
Toggle Form/Unit
Formlar ve unitler arasinda gecis yapmak icin kullanilabilecek bir secenek. F12 kisayol tusu ile de kolayca gecebilirsiniz.
Unit
Su anda projede mevcut olan unitleri bir pencerede listeleyerek bunlari secip gorüntüleme imkani verir.
Forms
Su anda projede mevcut olan formlari bir pencerede listeleyerek bunlari secip gorüntüleme imkani verir.
New Edit Window
Su andaki kod penceresinin bir kopyasini yeni bir kod penceresi ile gosterir. Bunlardan birinde yaptiginiz degisiklik digerinde de aninda yapilir. Bu yeni pencere size kodunuzun ayni anda goremediginiz kisimlarini gome imkani verir.
Project Menüsü :
Add to project
Projeye var olan unitlerden eklemeye yarar. Secenegi sectiginizde karsiniza cikan dialog penceresinde istediginiz unit ilgili klasorden bulunup eklenebilir.
Remove from project
Acilan pencere vasitasiyla secilen formlari veya unitleri projeden cikarir.
Import type library
Bu secenekle acilan pencere vasitasiyla bilgisayarinizda kullandiginiz ve kontrol elemanlarini iceren kütüphane dosyalarini projenize ekleyebilirsiniz. Buradaki add dügmesi bu pencereye yeni kütüphane dosyalari ekler. Remove dügmesi de penceredeki dosyalari kaldirir. Ok dügmesi ise secili olan dosyayi bir unit olarak projeye ekler.
Compile
Programi calistirmadan derler. Ornegin bir DLL dosyasi yazilirken bu dosya calistirilamaz. Bunun sadece derlenmesi gerekir.
Build All
Compile veya run secenegi ile derlenen projede bütün unitler ve formlar derlenmez. Bunun yerine en son derlemeden sonra degisen dosyalar derlenir. Build all secenegi degismis olsun olmasin bütün dosyalari yeniden derler.
Syntax Check
Bu secenek Link yanmadan sadece yazim hatalari olup olmadigini kontrol eder.
Information
Program derlendikten sonra proje hakkindaki teknik bilgiyi bir dialog penceresi ile gorüntüler.
Options
Programla ilgili ayarlarin yapilabilecegi pencereyi acar. Bu pencerede yapilan ayarlar sadece su andaki projeyi etkileyecektir. Eger bütün projeler icin bu ayarlarin kullanilmasini istiyorsaniz default dügmesini isaretlemelisiniz. Penceredeki forms tabi kismi(bolümü)’nda main form kutusunda programin hangi formun ana form olacagi belirlenir. Normalde projede ilk olusturulan form ana formdur ve ilk olarak bu formla program calismaya baslar.
Auto create forms listesinde hangi formlarin otomatik olarak olusturulacagi belirlenir. Diger listede (available forms listesi) bulunan formlar ise otomatik olarak olusturulamaz. Bunlari olusturmak icin create metodu kullanilmalidir. Hangi formlari otomatik olarak olusturulup olusturulamayacagini formlari bu listeler arasinda tasiyarak belirleyebilirsiniz.
Application tabinda ise programin basligi, help dosyasinin ismi ve ikonu belirlenir. Proje icin bir help dosyasi belirlenmisse kullanici programi calistirirken F1 tusuna basarsa bu help dosyasi winhelp32 araciligiyla gorüntülenir ve kullanicinin üzerinde bulundugu kontrolün helpcontextID ozelligi ile belirlenen konu gosterilir.( Bu numarali konunun ne oldugu help dosyasi tasarlanirken belirlenir.)
Title kutusunda belirlenen baslik ise formun degil programin basligidir. Bu baslik program minimize edildiginde, gorev cubugunda gorülen isimdir.
Icon kutusunda belirlenen ikon da title ozelligi gibi forma ait degil programa ait ikondur. Yukaridaki durumlarda da yine bu ikonla temsil edilir.
Run :
Run
Programi derleyip calistirir. Program zaten derlenmisse sadece calistirir. Ayrica programin calismasi kirilmissa kaldigi yerden devam ettirir. F9 kisayol tusu da kullanilabilir.
Parameters
Program komut satirindan parametre aliyorsa tasarim asamasinda komut satiri parametreleri buradan verilir.
Program Reset
Programin calismasini durdurur. Ancak bu islem bazen sitem kaynaklarinin azalmasina sebep olabilir. Boyle bir durum soz konusu ise delphi sizi uyaracaktir. Program bu secenek sonlandirildiginda acik olan dosyalar kapatilir, component library’den olusturulmus kontrollere verilen sistem kaynaklari geri alinir ve degiskenler bellekten atilir. Ancak programinizda kendi kodlarinizla olusturdugunuz sistem kaynagi tüketen bilesenlerin kullandigi kaynaklar serbest birakilmayacaktir.
Hata Ayiklama Islemleri
Eger programin sonsuz dongüye girmesi sebebi ile normal yollardan kapatamiyor ve program reset menüsüne de ulasamiyorsaniz Ctrl+Alt+SysReg tuslarina bamayi deneyin.
Menüdeki diger secenekler vasitasi ile program adim adim calistirilarak programdaki hatalar ayiklanabilir. Bahsedilen hatalar yazim hatalari degil mantik hatalaridir. Program adim adim calistirilarak degiskenlerin durumu bu secenekler vasitasiyla incelenebilir.
• Programi debug modunda calistirmak icin F8(step over) veya F7(trace intro) tusu kullanilabilir.
• Ayrica belirli bir satira kadar calismasi icinde F5(Add breakpoint) tusu ile durulacak satir belirlendikten sonra F9 tusu ile derlenir.
• Programa bu islemler yapilmada baslansa bile program pause secenegi ile programin calismasi durdurulup debug moduna gecilebilir.
• Bu modda degiskenlerin durumu fonksiyonlarin cagrilma sirasi gorülebilir.
Step Over(F8)
Programi bir onraki satira kadar calistirir. Her satiri tek tek calistirip eskisini gormek icin kullanilabilir.
Trace Intro(F7)
Step over gibi satirlari tek tek calistirmaya yarar, ancak step over’den farkli olarak eger satirda bir fonksiyon cagrisi varsa fonksiyona gidilir.
Add Breakpoint(F5)
Programi F8 ile adim adim calistirmak her zaman kullanisli degildir. Ornegin 1’den 1000’e kadar olan bir for-do dongüsünden F8 ile cikmak zordur. Bu gibi durumlarda break point dedigimiz, programdaki bazi satirlara F5 ile kesme konur ve F9 ile program calistirilir. Kontrol kesme konan satira program kirilir ve sonuclar bu sekilde izlenebilir.
Show Execution Point
Kursorü su anda calisacak satira ***ürür.
Add Watch
Program calisirken izlenecek degiskenler bu secenek ile eklenir. Bu yontemle eklenen degiskenlerin degerleri watch list penceresinde gorüntülenir.(Bu pencereyi view-watches menü secenegi ile gorüntüleyebilirsiniz.) Global ve o anda calisan prosedürdeki local degiskenlerin su naki degerleri pencerede gorüntülenir.
Add watch secenegi bir inputbox penceresi acarak izlenecek degiskeni girmenize imkan verir. Bu penceredeki expression kutusuna izlenecek degiskenin adi girilir.
Enabled secenegi kaldirilirsa degiskenin degeri listede gosterilmez. Bir cok degiskeni birlikte izliyorsaniz programin calismasi yavaslayacaktir. O anda degerine ihtiyac duymadiginiz bazi degiskenleri bu yontemle izlenmesini durdurabilirsiniz.
Radio dügmeleri ile degiskenin uygun baska bir formatta gosterilmesini saglayabilirsiniz. Default secenegi degiskeni orijinal haliyle gosterir. Ornegin integer bir degiskenin hexadecimal sistemde gosterilmesi icin hex integer secenegi kullanilabilir.
Memory Dump secenegi degiskenin bellekteki halini gosterir. Ornegin bir string degiskenin bellekte durumunu gormek icin bu secenegi kullanabilirsiniz. String’in ilk byte’nin karakter sayisini gosterdigini gorebilirsiniz.
Evaluate/Modify
Bu secenekle girilen degiskenin sadece o andaki degeri ogrenilebilir veya degistirilebilir. Add watch seceneginden farkli olarak degisken debug penceresine eklenmez ve sürekli takip edilmez. Sadece secildigi andaki degeri gorüntülenir. Bu secenek bir inputbox penceresi acarak degiskeni girmenize ve degistirmenize imkan verir.
Expression kutusuna degiskenin adi girilir. Evalute komutu degiskenin su anki degerini gorüntüler. Bu deger degistirilmek isteniyorsa New value kutusuna degiskenin almadi istenen yeni deger girildikten sonra Modify dügmesi kullanilir. Ayrica view-call stack secenegi ile de su anda calisan prosedürün kimler tarafindan cagrildigi gorülebilir.
Component Menüsü :
New
Yeni bir component dosyasi olusturmak icin kullanilir.
Install Component
Component palete yeni kontroller eklemek icin kullanilir.
Configure Palette
Component palette yer alan kontrollerin yerlerini degistirmek icin veya silmek icin kullanilir.
Import Activex Control
Activex (OCX) kontrollerini de delphi ile kullanabilirsiniz. Bu menü ile acilan asagidaki pencereyi kullanarak sisteminize kayit yapilmis activex kontrollerinden sectiklerinizi ekleyebileceginiz gibi Add dügmesi ile de yeni OCX dosyalarini ekleyebilirsiniz.
Database Menüsü :
Explore
Database explorer programini calistirir.
SQL Monitor
SQL monitor programini calistirir.
Form Wizard
Programa database formlari eklemek icin yardimci olur. Acilan pencereler takip edilerek formun tipini, kullanacagi database dosyasini ve bu dosyadaki anlari secmenizi saglayarak bir database formu olusturmanizi saglar.
Tools Menüsü :
Environment Options
Bu secenekle acilan pencereden editorle ilgili ozellikler belirlenir.
Repository
Delphi kendi formlarinizi hazirlayarak bunlari daha sonrada standart form olarak kullanmaniza imkan verir. Bu pencere vasitasi ile hazirlanan formlar galeriye eklenerek daha sonra new-form secenegi ile yeni bir form olustururken buraya eklediginiz formlardan birini secebilmenizi saglar.
Configure Tools
Tools menüsüne cok kullandiginiz programlardan ekleyebilirsiniz. Bu menüye yeni program eklemek icin tools menüsünün configure tools secenegi kullanilir.
Sag Fare Tusunun Kullanimi
Windows altinda calisan programlarin cogu sag fare tusunu destekler. Boylece sag fare tusu ile acilan popup menüler araciligiyla yapilacak islemlere oldukca hizli errisim saglanmis olur.
Form Üzerinde Sag Fare Tusu
Form üzerinde sag fare tusu tiklanacak olursa acilan popup menüdeki secenekler edit menüsü ile aynidir.
Align to Grid
Secilen kontrolün koordinatlari form üzerindeki gridlere denk gelmiyorsa en yakin grid noktasina denk gelecek sekilde tasinir.
Brign To Front, Send To Back
Üst üste gelen kontrollerden birini one ve arkaya almaya yarar.
Align
Secilen kontrolleri ayni hizaya getirmeye yarar. Acilan penceredeki radio dügmeleri kullanilarak secili olan eleman sagdan,solan,üstten,merkezden,alttan ayni hizaya getirilebilir. Hatta secili olan elemanlar formun tam ortasina alinabilir.
(Center in window secenegi ile)
Size
Secilen kontrollerin hepsinin ayni boya ve/veya ayni yükseklige sahip olmasini saglar. Acilan pencerede secile secime hepsi en kücügünün veya en büyügünün boyuna getirilmesi saglanir. Buradaki no change secenegi ile elemanlar üzerinde bir islem yapilmazken, shrink to smallest secenegiyle, secili olan en kücük boyutlu elemanin boyutuna, grow to largest ile de en büyük elemanin boyutuna getirilir. Width, heigth secenekleri ile de secili olan elemanlari genislik ve uzunluklari degistirilir.
Scale
Form üzerindeki kontrollerin secilen oranda büyültüp kücültmeye yarar. Bir seferde %25 ile %400 oraninda olceklendirilebilir. Bu pencerenin kutusuna girilen sayisal ifade secili olan elemanlarin boyutlarini degistirir.
Tab Order
Form üzerindeki kontrollerin tab sirasini degistirmeye yarar. Tab sirasi kullanicinin kontroller arasinda tab tusu ile gecis yaparken sirasi ile hangi kontollere gecilecegini belirler. Acilan pencerede su anki tab sirasi gorüntülenir. Asagi/Yukari dügmesi ile secilen kontrolün tab sirasi degistirilebilir.
Creation Order
Uygulamanin olusturdugu visual olmayan elemanlari sirasi bu pencere ile düzenlenebilir.
Kod Penceresinde Sag Fare Tusu
Close Page
[Resimleri görebilmek için üye olun veya giriş yapın.]ecenegi ile mevcut kod penceresi kapatilir.
Open file at cursor : Kursorün bulundugu pozisyona istenilen dosya, ac dialog kutusu ile eklenir.
Topic search
[Resimleri görebilmek için üye olun veya giriş yapın.]ecili olan deyim hakkinda online yardim gorüntülenir.
Toggle marker : Kod editorünün istenilen yerine isaret koyar. Bu islem birinci defasinda isaret koyarken ikinci defasinda kaldirir.
Go to marker : Daha once isaretlemis yere direkt cursoru konumlandirir.
Toggle breakpoint : Kod editorünün istenilen noktasina, program kesme noktasi birakilir veya kaldirilir.
Run to cursor : Kursorün bulundugu noktaya kadar programi calistirir.
Evaluate/Modify : Bu menü secenegi ile evaluate/modify dialog penceresi aktif hale getirilerek, var olan bir ifadenin degeri degistirilebilir yada degerlendirilebilir.
Add watch at cursor : Menü secenegiyle watch dialog penceresi acilir. Burada gozleme pencereleri olusturulur veya degistirilir.
Read only : Menü secenegiyle mevcut acik olan dosyaya sadece okunabilirlik ozelligi verilir. Dosya üzerinde herhengi bir degisiklik yapilmaz.
Message view : Hata mesajlarini gosterecek olan pencereyi gorüntüler yada saklar.
Properties : Bu secenekle kod penceresine ait bazi ayarlamalarin yapildigi pencere gorüntülenir. Burada genel olarak kod editorü ile ilgili yazi ayarlamalari, renk ayarlamalari ve gorüntü ayarlamalari yapilir.
Project Inspector Penceresinde Sag Fare Tusu
Expand : Alt secenekleri + ile temsil edilen ozellikler icin aktif hale gelir. Bu secenegin tiklanmasiyla alt seceneklerde gorülür.
Collapse : Alt secenekleri acilmis ozellikler icin aktif hale gelir. Bu secenegin kullanilmasiyla alt secenekli ozellikler + halinde temsil edilir.
Saty on top : Object inspector penceresini daima en üstte tutar.
Hide : Object inspector penceresini gizler.
Help : Pencere ile ilgili yardim dosyasini acar.
Component Paleti Sag Fare Tusu
Configure : Component paletini yeniden belirlenen sekli ile kaydeder.
Show hints : Component paletinde bulunan elemanlarin isimlerini gorüntüler.
Hide : Component paletini saklar.
Properties : Componentlerle ilgili bazi ayarlamalarin yapildigi pencereyi gorüntüler.
Standart Kontrol Elemanlari
Standart kontrol elemanlarinin kullanim amaclarini kisaca verelim:
TMainMenu : Menü cubugunu tasarlamada kullanilir. Bu kontrol kullanicinin bilgi girisi yapmasina imkan veren en cok kullanilan elemanlardandir.
TPopupMenu : Sag fare tusu ile calisan menüler hazirlamada kullanilir.
TLabel(Etiket) : Form üzerine aciklama yazmak yada kontrollere aciklama yazmada kullanilir.
Tedit(Metin kutusu) : Kullanicinin bilgi girmesi icin kullanilir.
TMemo(cok satirli bilgi girisi kutusu) : Kullanicinin birden fazla satira sahip bilgileri girmesi icin kullanilir. Edit kutusunun yapabildigi bütün islemleri yapabilirken
TButton(Komut dügmesi) : Kullanicinin bir isi yaptirabilmesi icin kullanilir.
TCheckBox(Isaret kutusu) : Bir secenegi aktif veya pasif yaptirmak icin kullanilir.
TRadioButton(Secenek kutusu) : Birden fazla secenekten birisinin secilmesi gereken durumlarda kullanilir.
TLisbox(Liste kutusu) : Birden fazla elemani listelemek ve düzenlemek icin kullanilir.
TComboBox(Asagi dogru acilan liste) : Kullanicinin hazir degerlerden birini secebilmesi icin kullanilir.
TScrollBar(Kaydirma cubugu): Kaydirma islemlerinde veya deger artirip azaltma islemlerinde kullanilir.
TRadioGroup : Secenek dügmelerini tasarim zamani olusturabilmek icin kullanilir.
TPanel Kontrol Elemani : Diger kontrolleri gruplamak ve durum cubugu olusturmakta kullanilir.
TGroupBox(Gruplama kutusu) : Diger kontrolleri (daha cok secenek dügmelerini) gruplamakta kullanilir.
Tablo Ozellikleri
Bu Bolümde saha gecerlilik kurallarinin tanimlanmasi,Table lookup,secondary indexes(ikincil anahtarlar),referantial Integrity(tablo iliskileri),Sifre güvenligi ve Tablo dilinin ayarlanmasi konulariolacak.
A) Sahalarin Gecerlilik Kurallari:
Bir sahanin üzerinde dolasirken eger tipini tanimladiysaniz sahanin tipine gore saha ozelliklerini belirleyebileceginiz metin kutulari,bir onay kutusu ve bir dügme kullanilabilir hale gelir.Bu metin kutularini kullanarak sahayi istediginiz ozelliklerde belirleyebilirsiniz.
Required Field: Tabloya giris esnasinda kullanici sahayi atladiginda hata vermesini saglar.Boylece kullanicini hic bir sekilde bu sahayi bos gecmemesini saglariz.
Minimum Value
[Resimleri görebilmek için üye olun veya giriş yapın.]ahanin tip tanimlamasina uygun bir sekilde sahanin alabilecegi minimum degeri icerir. Ornegin bir sepetteki elma sayisi asla eksili bir deger olamaz. Bunun icin minimum degerine 0 atamaliyiz.
Maximum Value
[Resimleri görebilmek için üye olun veya giriş yapın.]ahanin tip tanimlamasina uygun bir sekilde sahanin alabilecegi maximum degeri icerir.Ornegin iskambik kagidi no'su tutan bir saha icin iskambil kagidi sayisi 52'den fazla olamaz.olursa hile var demektir
[Resimleri görebilmek için üye olun veya giriş yapın.] Default Value:Bu sahanin varsayilan degeridir. Minimum ile maximum degerleri arasinda bir deger almalidir.
Picture: Bu sahanin gorünüm ve giris seklidir.Bu ozelligi kullanarak sahaniza yapilan girisin sizin belirlediginiz kurallara uygun olup olmadigini hic bir kod yazmadan kontrol edebilirsiniz.
Ornekler:
yazilabilir.
Orneklere bakarak sizde kendi giris formüllerinizi yazabilirsiniz.Bunun icin once yukaridaki resimde gordügünüz Assist dügmesine basarak yandaki resimde oldugu gibi bir ekran cikaracaksiniz. Daha sonra picture yazan metin kutusuna düsündügünüz formati yazacaksiniz. Dogru olup olmadigini test etmek istiyorsaniz Verify Syntax dügmesine basmalisiniz.
Eger yazdiginiz formati denemek istiyorsaniz Sample Value metin kutusuna formatta belirttiginiz sekilde bir veri girmelisiniz. Eger girdigniz verinin formata uygun girilip girilmedigini merak ediyorsaniz Test Value dügmesine basin.Eger Value is Valid mesajini gorürseniz girdiginiz veri hazirladiginiz formata uygun demektir.
Hazirladiginiz bu formati kaydetmek icin add to list dügmesine basmalisiniz.
Eger listedeki bir format kullanmak istiyorsaniz formati secip Use dügmesine basmalisiniz.
B) Table Lookup:
Table lookup tanimlamak icin Table Properties combo kutusundan table look up secenegini secip define dügmesine basmalisiniz
Karsiniza yukaridaki gibi bir ekran cikacak. Burada sagda tanimli olan sizin su anda üzerinde calismakta oldugunuz ve look up tanimlayacak oldugunuz tablodur. Buradan hangi sahayi look up saha olarak tanimlamak istiyorsaniz o sahayi liste kutusundan secip FieldName metin kutusunun solundaki dügmeye basarak metin kutusuna atamalisiniz.
Soldaki sahada secilen aliasin icerdigi tablolari gorüyorsunuz. Bu tablolardan look up yapmaya uygun bir tanasini secip look up field metin kutusunun sagindaki dügmeye tiklayarak metin kutusuna atamalisiniz. Burada dikkat edeceginiz husus FieldName ile LookUp field sahalarinin tiplerinin birbirine uymasi. aksi taktirde hata verecektir. Unutmayin ki lookup tablonun hep ilk satiri lookup field metin kutusuna gelir.Eger Lookup tablosu olarak kullanacagininz tablonun ilk sahasi anahtar saha olursa bu lookup yapma islemini hizlandirir.
Look up Type
Just Current Field: Sadece Tanimlanan saha look up dan gelen bilgiler tarafindan doldurulur.
All Corresponding Fields
[Resimleri görebilmek için üye olun veya giriş yapın.]adece tanimlanan look up saha degil look up tabloda bulunan ve lookup saha iceren tablonun tipleri ve adlari uyan sahalarina da varsayilan degerleri atar. Ornegin icinde soyadi ve adi bulunan bir tablodan lookup yaptigimizi düsünelim. Eger lookup yapan tabloda soyadi ve adi sahalari varsa mutlaka bu iki degeri doldurulur.
Look up Access
Fill No Help: Sahaya bir veri girerken yardimci olmaz.
Help And Fill
[Resimleri görebilmek için üye olun veya giriş yapın.]ahaya veri girerken yadimci olur.
C) Secondary Indexes:
Ikincil indeks, kayitlar arasi aramalari hizlandirmak yada farkli bir siralama kuralina gore kayitlari dizmek icin tanimlanir. Ikincil indeksi bir sahadan yaratabileceginiz gibi birden cok sahanin bir kombinasyonu olarakta yaratabilirsiniz.Not olarak ikincil indeks ile sadece bir kaydin siralama kuralini degistirebilirsiniz. Onun fiziksel sirasini degil.
ikincil Indeks tanimlamak icin Table Properties combo kutusundan table Secondary Indexes secenegini secip define dügmesine basmalisiniz.
Yukaridaki ekran gibi bir ekran karsiniza cikacak.Sag tarafta üzerinde degisiklik yaptiginiz tablonun sahalari gorünmekte. Buradan birini yada birkacini secerek sag ok dügmesine basarak Indexed Fields liste kutusuna ekleyebilirsiniz.
Alttaki change order adiyla tanimlanan dügmeleri kullanarak sahalarin indekslenme sirasini degistirebilirsiniz.
Index option grup kutusunda ise 4 ozellik tanimlanmis.Bunlar:
Uniquie:Ikincil indekste birden fazla kaydin ayni degeri icerip iceremeyecegini belirtir.Eger Uniquie isaretli ise ve Database Desktop tekrarli bir kayda rastlarsa indeks uygulanmaz ve bir hata mesaji gorüntülenir.Sahanin verisini degistirip tekrar indekslemeye calisabilirsiniz.
Descending:Ikincil indeksin azalan yonde mi yoksa artan yonde mi siralanacagini belirtir.Eger isaretli degilse azalandan artana dogrudur.
Case Sensitive
[Resimleri görebilmek için üye olun veya giriş yapın.]iralamada büyük yada kücük harf olusuna dikkat edilip edilmeyecegini belirtir.
Eger isaretliyse veri su sirada konumlanir:
Abcd, aBcd, aaaa
Eger isaretli degilse su sirada konumlanir:
aaaa, Abcd, aBcd
Database Desktop tek sahalari,büyük kücük harf duyarli indeksleri otomatik isimlendirir.Eger büyük kücük harf duyarliligi olmayan bir indeks kaydedecekseniz kaydederken bir isim vermelisiniz. Bu size büyük kücük harf duyarliligi olan ve olmayan, ayni sahalara sahip, iki farkli indeks tanimlamanizi saglar.
Maintained:Ikincil indeksin korunup korunmayacagini belirtir.
Maintained indeksler her tablo degisikliginde tekrar kaydedilir. Bu Sorgular gibi islemleri hizlandirir.Maintain indeksler anahtar iceren tablolarda gecerlidir.Maintain olmayan indeksler sadece indeks kullanilirken güncellenir.Ornegin bir tabloya bagladiginizda yada bir sorguyu calistirdiginizda.
Bir maintain olmayan indeksi kullanan bir islem yaptiginizda bu islem digerinden biraz daha uzun sürer. Cünkü ilk once indeks tablonun degisen verilerine gore yeniden düzenlenip indeks kurallarini yeniden siralanacaktir.Her halukarda eger bir maintain olmayan indeks kullanmak isitiyorsaniz degismeyen bir tabloda kullaninin.Mesela sadece okunabilir tablolarda maintained olmayan indeksler daha hizlidir.
D) Referantial Integrity:
Referantial integrity tablolar arasi iliskileri tanimlar.tabloar arasi iliskilerin nasil tanimlanacagi ve neden tanimlanmasi gerektigi bir onceki makalede ayrintilari ile verilmistir.Tablolar arasi iliskileri tanimlamak icin Table Properties combo kutusundan Referantial Integrity secenegini secip define dügmesine basmalisiniz.
Yukaridaki resimde gibi referantial integrity menüsü cikacak. Fields liste kutusundan sececegimiz saha ile iliskilendirmeyi düsündügümüz tabloyu secip table liste kutusunun yan tarafindaki dügmeye tiklamaliyiz.yukaridaki resimin sag tarafinda, üzerinde calismakta oldugumuz tablonun sahalari var.Bu sahalardan hangisini sectigimiz tablonun anahtar sahasi ile iliskilendirmek istiyorsak o sahayi secmeliyiz. Boylece iki sahayi birbiri ile iliskilendirmis oluruz.
Update Rule:
Cascade:Eger ana tabloda herhangi bir degisiklik olursa bu direk bagli tabloya yansir.
Prohibit:Eger ana tablodan bir veri silinecekse bagli tabloda da bu veri kullanilmissa silinmesine izin verilmez.
Strict Referantial integrity:Eger bu isaretli ise; bu tablonun daha onceki paradox sürümleri tarafindan kullanimi esnasinda tablo iliskisinin bozulmamasini saglar.
E) Password Security:
Tablonuzun baskasi tarafindan gorülmemesini istiyorsaniz bir sifre belirtmelisiniz.(En azindan Supervisor password'u bilmeyen biri tarafindan).Bunun icin Table Properties combo kutusundan Password Security secenegini secip define dügmesine basmalisiniz.
Karsiniza yandaki gibi bir ekran gelecek. Buradan bir sifre belirtebilirsiniz.Eger Auxiliary Passwords dügmesine tiklayacak olursaniz karsiniza asagidaki gibi bir ekran cikacak. Bu ekrandan iliskisel sifreler belirtebilirsiniz. Bu sekilde bir kisinin o tablo üzerindeki otoritesini de belirmis olursunuz.
Not: Buraya belirteceginiz sifre Ana sifreden mutlaka farkli olmalidir aksi taktirde buraya sifre belirtmenin hic bir anlami yoktur. Tüm islemler icin ayni sifreyi belirtebileceginiz gibi her islem icin ayri ayri sifreler de belirtebilirsiniz.Bunu new tusu ile yeni bir sifre acip sifreleyecegniz sahalari secip saha operasyonunu secip sifrenizi girdikten sonra add dügmesine basmaniz yeterli olacaktir.
Buradaki operrasyonlar:
Eklemek ve silmek,Sadece veri girmek, güncellemek,sadece okumak ve tüm islemleri yapabilmek olarak siniflandirilmistir.
Not:Eger gercekten veri güvenligine ihtiyaciniz varsa Crypt veDeCrypt metotlarini kullanin.
F) Table Language:
Table Language kisaca tablonun dilini belirleyeceginiz bolümdür.Standart olarak tablonun dili ingilizceye uygun bir kod sayfasidir. Eger Türkce bir kod sayfasi kullanmak istiyorsaniz.Asagidakilerden birini kullanabilirsiniz.
Base Trk cp857
Paradox Turk
Pdox ANSI Turkish
Unutmamaniz gereken asil sey Türkce büyük harfin kücük harfe yada kücük harfin büyük harfe cevrilirken yasayacaginiz problem.Bu tüm Database Desktop elemanlari icin gecerli bir sorundur. Büyük I cevrilirken i ye cevrilecegine kod sayfasnia gore farkli bir karaktere cevrilir. ayni sekilde I ise kücük i ya cevrilecegine i'ye cevrilir. Bu bir fonksiyonla düzeltebilirsiniz.
Veri Tabani ve DataBase Desktop
Veri Tabani Nedir?
Veritabani; kisaca verilerin tutuldugu yer anlamina gelir. Fakat bu tanimdan kasit verilerin tutuldugu bir dosya olmayabilir.Ornegin BDE bir veritabanini her bir dosyaya bir tablo gelecek sekilde ayirmistir.Fakat Access icin tek bir dosya soz konusudur.
Tablo;Dü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 yukaridaki verileri guruplamak istesek:
Soyadi 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
Gordügünüz gibi 4 ana baslik altinda toplayabildim boylece daha düzenli oldular ve aradigimi cabuk bulabilecek hale getirdim.
Yani tablo haline getirdim. Tablonun anlami ayni niteligi betimleyen verileri tek bir gurup altinda toplamaktir.Bu guruplar benim tablomun sahalaridir. Asagida yukaridaki ornek bir tablo haline getirilmistir.
yukaridaki tabloda Soyadi,Adi,Sirket,E-Mail adlari sahalarimi tanimlayan isimleri olusturdu. Dikkat! bu bahsettigim Soyadi,Adi,Sirket,E-Mail sahalari tablomun sadece sahalarini tanimlar tablomun verilerine dahil degildir.
Her satir bir kayiti tanimlar. Kayit, Saha adlarina uygun olarak girilmis verilere denir.
Tabloda Birincil Anahtar:Tablo; veri tabaninin en onemli ozelligine uymalidir.Tabloda tek olma. yani tüm sahalari ayni iki kayit bir veritabaninda bulunamaz. Bunun icin Veritabanini siralayan bir sahaya daha ihtiyaca vardir. Tabi ki her zaman ayri bir saha olacak diye bir kaide yok ama eger sahanizda hic tekrari mümkün olmayan bir sahaniz yoksa yeni bir saha yaratmaniz kacinilmazdir.Biz bu sahayi birincil anahtar olarak niteleriz. Yukaridaki ornege bir birincil saha ekleyelim.
yukaridaki ornekte ID adinda bir saha daha ekledim. Bu ID sahasini siralama degiskeni olarak kullanacagim her ekledigim kayit oncekilerden farkli bir sayi olacak. Boylece tabloda tek olama kuralini korumus olacagim.
Yukarida ID sahasinin yanina parantez icinde bir yildiz koydum. Yildiz isareti o sahani bir anahtar oldugunu belirtir.Bu yildiz tanimlamasi tüm programcilar tarafindan kullanilan bir standarttir.
Daha once bahsettigim gibi her zaman birincil anahtar eklemek icin farkli bir saha kullanmayabiliriz. Bunu yerine basbaya e-mail sahasini da kullanabilirdim. Cünkü herkesin kendine ait bir e-maili olacagi icin tabloda tek olma kurali yine korunmus olur.
Tablolar arasi iliskiler:
Bazen bir veriyi toplulugunu tek bir tabloda tutmak mümkün olmayabilir. Bunun gerekcesi tek bir oge icin birden cok kaydin olmasidir. Bunu soyle aciklayabiliriz:
Mesela benim birden cok telefonum var.bunu iki sekilde tutabilirim. birincisi:
yukaridaki ornekteki gibi tutmak saglikli degildir. Cünkü eger ben baska bir telefon sahibi daha olursam bunu nereye yazacagim. Bunun nihayi cozümü tablolara parcalamak olacaktir. Soyle ki:
Gordügünüz gibi yukaridaki ornekteki gibi tanimlarsak iki ayri tabloya ayirmis oluruz.Ama Telefon bilgilerini iceren tabloda bir sey ek***. Telefonlari kime ait oldugu. Telefonlarin kime ait oldugunu belirten bir saha daha eklemeliyiz.Ekliyecegimiz saha kisi bilgilerini icen tablodaki tekrarsiz saha olmali.Ornegimizi su sekilde degistiriyoruz.
Yukaridaki ornekte gordügünüz gibi telefon bilgilerini iceren tabloya ekledigimiz, kisi bilgilerini iceren tablodaki anahtar saha ile ayni nitelige sahip saha;telefon bilgilerini kisi bilgileriyle eslestirip anlasilir bir kayit kümesi olusturdu.
Ipucu: Eger elinizde bir veri kümesi varsa ve hangilerinin hangi tabloda yer alacagina karar vermiyorsaniz; su yontemi deneyin. Eger bir kayit icin o saha birden cok bilgi iceriyorsa bu yeni bir tablodur.Bolün.
Eger tabaninizda birkac kayit varsa veri bu islemin islerliligi fazladir.Fakat binlerce kayitla ugrasiyorsaniz bu tanimlarda size yetmeyebilir. Bu tablolarin kendi kendine birbiri ile iletisim kurmasini istiyorsak iliskilendirmeliyiz.
Iliskiler; bir veri tabaninin icindeki tablolarin birbiri ile ayni gorevde olan sahalarinin birbirine baglanmasi seklinde nitelendirilebilir.
Iliskiler ikiye ayrilir:
Bire-Cok iliski
Bire-Bir iliski
Bire-cok iliski; bir tablodaki her bir veri icin iliskili tablodaki sahaya karsilik gelen birden cok veri varsa buna Bire-Cok iliski denir.Ornegin Bir babaya karsilik iki cocuk varsa bu bire cok iliskidir. Cünkü baba her ikisininde babasidir.
Bire-Bir iliski; Bir tablodaki her bir veri icin diger tablodaki sahaya karsilik gelen bir veri varsa buna Bire-Bir iliski denir. Ornegin Bir kisinin bir saat takmasi gibi.
Bire-bir iliskiler bir tablonun kendi sahalari arasindaki iliskidir. Bire cok iliskiler ise bir tablonun anahtar sahasi ile baska bir tablonun ayni nitelikteki sahasi ile iliskisidir. Bu iliskileri en iyi tasarlayabileceginiz program MsAccess programidir. Veritabani uygulamalarinda hic faydalanmasaniz bile sadece iliskileri düzenleme ekranindan faydalanabilirsiniz.Yandaki resim bire cok iliskinin MSAccess programinda nasil gorüntülendigini aciklar.
Database Desktop
Database Desktop programi Delphi ile gelen bir programdir. Bu program yardimi ile tablolar ile ilgili her türlü islemi yapabiliriz. Database Desktop pek cok veritabani motorunu kullanmaniza izin verir.
Delphi kullanicilari arasinda en cok kullanilani ise Paradox'tur. Cünkü Paradox büyük veri yapilariyla colayca basa cikabilir. Bende bu yüzden simdilik sadece Paradox kullanimini ornek gostererek Database Desktop'i size anlatacagim.
Database Desktop'ta yeni bir tablo yaratmak icin File/New/Table comutunu calistirmaniz gerekiyor. Daha sonra karsiniza yandaki gibi bir ekran cikacak buradan Paradox7'yi secin.Eger Daha onceki sürümleri kullanmak yada baska veritabanlari kullanmak istiyorsaniz yine buradan secebilirsiniz ama ben Paradox7 ile ornekleyecegim icin Paradox7'yi secmenizde fayda var.
Not
[Resimleri görebilmek için üye olun veya giriş yapın.]aradox7 ve tüm Paradox sürümleri %100 güvenli degildirler. Sifreleme yaptiginizda bile eger bir cracker Paradox supervisor sifrelerini biliyorsa kolaylikla veritabaninizin icinde ne var diye bakabilir. Bunu onlemenin yolu Crypt ve DeCrypt yontemeleri ile verilerinizi sifrelemektir.
OK tusuna bastiginizda karsiniza yandaki menü gibi bir menü gelecek.Bu Menüde Ilk olarak Field Name Type Size ve Key hücreleri olacak.
Field Name hücresine 25 karakter uzunlugunda Delphi degisken isimlendirme kurallarina uygun bir isim girmelisiniz.
Type Hücresi bir acilir menü seklindedir. Menünün icerigi ve delphideki karsiligi:
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 yazdirilabilir karakterleri icerir.0-255 arasinda boyutu olabilir. Delphi'de String tanimli bir degisken tarafindan kullanilabilir.
Number:Number tipi sadece pozitif/negatif isareti,ondalik isareti ve sayi icerebilir. Pozitif ve negatif ifadeler tutabilir.-10307den 10307'ye kadar deger alabilir.Delphi'de Float tanimli bir degisken tarafindan kullanilabilir.
Money:Money tipi tipki diger tipler gibi sayi icerir fakat sadece gosterimi digerlerinden farklidir.Her üc hanede bir nokta ile ayrilir. fakat bu degerine etki etmez.Delphi'de Float tanimli bir degisken tarafindan kullanilabilir.
Short
[Resimleri görebilmek için üye olun veya giriş yapın.]hort Tipi -32,767'den 32,767'e kadar deger icerebilir.Delphi'de Integer tanimli bir degisken tarafindan kullanilabilir.
Long Integer:Long Integer tipi -2147483648'den 2147483647'e kadar deger icerebilir.Delphi'de LongInt tanimli bir degisken tarafindan kullanilabilir.
BCD(Binary Coded Decimal):BCD tipi ikili codlanmis sayisal veri icerir.Diger sayisal tiplerin sagladigindan daha hassas hesaplamalar yapmaniz gerektiginde BCD sahalari kullanin.Fakat hesaplamalar diger veri tiplerinden daha yavas olacaktir.
Date: Date tipi ile 1 Ocak 9999 M.O'dan 31 Aralik 9999 M.S'ye kadar ki tarihleri tutabilirsiniz.Tüm artik yillari düzgün bir sekilde tutar. Delphi'de TDateTime ile cevrimler sonucu kullanilabilir.
Time:Time tipi milisaniyeler halinde 24 saati adresler.Varsayilan saat tipini degistirmek icin Paradix'u kullanmalisiniz. Delphi'de TDateTime ile cevrimler sonucu kullanilabilir.
TimeStamp:TimeStamp tipi Time ve Date tiplerinde olan bütün ozellikleri saglayan birlesik bir tipdir. Delphi'de TDateTime ile cevrimler sonucu kullanilabilir.
Memo:Memo Tipi tüm yazdirilabilir ASCII kodlari icerebilir (NULL disinda).Bu tip Mb uzantili bir dosyanin icinde tutulur.Asil tabloya baglanir.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 icerebilecegi tüm icerigi saglar.(renk,font,bold vs.).Tüm yazdirilabilir ASCII kodlari icerebilir (NULL disinda).bu tip Mb uzantili bir dosyanin icinde tutulur.Asil tabloya baglanir.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 formatlarini destekler. Bu dosya formatlarini BMP dosya formatinia cevirip bu sekilde saklar.Graphic tipinin boyut tanimlamaya ihtiyaci yoktur cünkü tablodan farkli bir dosyada tutulurlar.Bu tipi Delphi'de kullanmak icin TImage nesnesini kullanabilirsiniz.
OLE
[Resimleri görebilmek için üye olun veya giriş yapın.]LE tipini her cesit dosyayi tutmak icin kullanabilirsiniz.OLE sahasi bu tip verileri gostermek ve degistirmek icin bir yol saglar.Fakat ne yazik ki Database Desktop bu icerigi gosteremez.OLE tipinin boyut tanimlamaya ihtiyaci yoktur cünkü tablodan farkli bir dosyada tutulurlar.Bu tipi Delphi'de kullanmak icin 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 sayiyi ifade eder her kayit eklendiginde sahanin degeri bir artar. Boylece tekrarsiz kayitlari olusturulmus olur. Genellikle Birincil Anahtar olarak kullanilir.Delphi'de LongInt tipi ile birlikte kullanabilirsiniz.
Binary:Binary tipi diger tiplerle tutulamiyacak olan verilerin (genellikle kullanici tanimli verilerin) tutulmasi icin kullanilir tüm ASCII tabloyu kullanabilir.Bu tip Mb uzantili bir dosyanin icinde tutulur.Asil tabloya baglanir.
Bytes:Bytes tipi genellikle Barkod yada manyetik seritleri tutmak icin kullanilir.Bu tip Mb uzantili bir dosyanin icinde tutulur.Asil tabloya baglanir.
Size hücresine hangi veriyi girmisseniz o veri ile ilgili boyutu girmelisiniz. tanimlama ekraninin alt kisminda bu konuda bilgi vermektedir.
Key hücresi Anahtar saha olup olmadigini denetler. Eger bu sahanin üzerini cift tiklarsaniz o sahayi Anahtar saha yapmis olursunuz.
Veritabani Ogelerine Giris
Tablolara erismek icin Delphi bir dizi oge kullanir bir uygulamada eger uygulama icinde tablonuza yeni kayit eklemek, tablonuzdan kayit silmek yada kayitlarinizi degistirmek istiyorsaniz en az üc adet ogelik combine kullanmaniz gerekecek. Bunlardan biri TTable ogesidir.
Table ogesi bir tabloya ulasmak icin kullanabileceginiz en sorunsuz ve en kisa yoldur. Hic bir kod yazmadan sadece Object Inspector yardimi ile bir tablo ile baglanti kurabilirsiniz. Burada onemli olan tablonuzun bir alias altinda tanimli olmasidir.Eger tanimli degilse bu tablonun icinde bulundugu dizinin yolunu girerekde tabloya ulasmaniz mümkün olabilir. Fakat bu programinizin tasinabilirligini azaltir.
Bu oge calisma aninda gorünmeyen bir ogedir. Bu oge ile bagladiginiz bir tabloyu elbette düzenlemek,tabloya kayit eklemek yadatablodan kayit silmek isteyeceksiniz. Ben bu bolümde TDBComponent'in bir üyesi olan TDBGrid'i kullanacagim. Cünkü bu oge ile tablonuzda bulunan tüm kayitlari gorebilir degistirebilir,ekleyebilir yada silebilirsiniz. Bu oge Delphi'nin Data Controls sekmesinin altindadir. Borland tablolarin birden fazla oge tarafindan kullanilabilirligini saglamak icin degi*** 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 ogesi sadece ara istasyon olarak gorev aln bir oge 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 düsünüyüroum. Boylece sizde kendi bilgisayarinizda ayni uygulamayi gerceklestirebilirsiniz.
yandaki sekildeki gibi bir form yaratin ve bu formun üzerine table,datasource ve dbgrid ogelerini yerlestirin. Formumuz calistiginda table ve datasource ogeleri gorünmez olacagi icin bu ogeleri istediginiz bir yere yerlestirebilirsiniz. Table ogesini secip object inspector'da ozelliklerinin gorüntülenmesini saglayin.Table ogesinin degistirilecek ozellikleri asagidaki gibidir(ogenin ozelliklerini degistirirken lütfen sirayi takip edin):
Ta
Table ogesinin bu ozelliklerini sirasi ile ayarladiktan sonra Datasource ogesinin ozelliklerini ayarlamamiz gerekiyor.Datasource ogesini secerek ozelliklerinin gorüntülenmesini 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 gorüntü olusmazsa mutlaka bir seyi ek*** yapmissinizdir demektir
uygulamayi calistirdiginizda 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 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 üzerinde bir tablonun kayitlarina ulasilacaksa yada bir internet sunucusundan kayitlar sorgulanacaksa TQuery ogesi Table ogesinden daha hizli olabilir. Bu olusumun sebebi Table nenesinin tablodaki tüm kayitlara erismesi sonucu veri trafigini cok arttirmasidir.Query ogesi ise ag üzerinde sorguyu Ulasilan sunucunun veritabani motoruna yollayip istenilen kayitlari sorgulamasini ister.Donen kayit miktari, eger tüm kayitlarin listelenmesi istenmemisse, Table ogesinin dondürecegi miktardan daha azdir.
Size Veritabani uygulamasi gelistirme asamasinda verebilecegim tek ogüt gerekli olmadikca tüm kayitlari kullaniciya gostermeyin. sadece tabloda ekleme silme ve degistirme yapacakca tüm 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.