You are on page 1of 33

Delphi'ye Giri

Visual dillerden biri olan Delphi Programlama dili ile istedi iniz programlar yapmak artk zor deil. Programlarda kullanlabilecek standart ilemler birer kontrol olarak tasarlanm olup programcnn kullanmna sunulmutur. rnein; Personel bilgileri girilen bir program yaplrsa, personelin ad, soyad, doum yeri ve tarihi gibi bilgilerin girilece i Edit kutusu, kullancnn neyi girmesi gerektiini belirten Label, deiik seeneklerden birini seme imkan salayan aa doru alan ComboBox kutusu, komut butonlar , personelin bir listesini gsterecek bir Liste kutusu ( ListBox ). Bunlar kolayca forma tayarak program zn ekrann tasarlayabiliriz. Tek yap lmas gereken Form zerindeki kontrolleri olu turmak iin Ana formun zerinde bulunan Componentlerden ilgili ikonlar semek ve formumuza tklamak.

Object Inspector Penceresi


Formumuza koyduumuz kontrol elemanlarnn zellikleri ve ald deerler Object Inspector Penceresinde grlr. Object Inspector; Properties ( zelliin Ad ), Events ( zelliin Deeri ) 2 ksmdan oluur. rnein Formumuza Label1 koyalm. Label1'i Mouse ile seelim. F11 tuuna tklayarak Object Inspector penceresini aalm. Burada Label1'e ait olan Object Inspector penceresinin aldn grrz. rnein Label1 ismini de itirmek istersek Caption zelliine gelip kars ndaki kutucuktan Label1 szcn silip istediimiz kelimeyi yazacaz ( rnein Personelin Ad ).Bunun gibi Object Inspector'deki deerleri deitirebiliriz. rne in Label1'e ait Object Inspector'deki Properties k smndaki deeri alClient seti imiz zaman kontrol elemannn ( Label1 ) Formun her taraf n kapladn grrz. Yine Font ksmnda Label1'in yaz karekterini bytebilir ve rengini deitirebiliriz. Yine rnek verecek olursak Formumuza aa alr kutucuk ( ComboBox1) koyalm. Bu kontrol elemanna ait Object Inspector'de Items'in yanndaki kutuya t klayarak a lan formda ComboBox alrken grmek istediimiz kelimeleri yazal m.

Program altrma
Program F9 tuuna baslarak altrlr. Program altrmak iin kodlarn yazlmasna gerek yoktur. Tasar m halinde de program mz altrabiliriz.

Kod Yazma
Kod yazmak istenilen kontrol eleman seilir ve bu elemana ait Object Inspector'deki Events zelliinden yararlan lr. Burada ilgili kontrol eleman na tklannca programn bitmesi isteniyorsa OnClick ksmna kod yazlr. Eer iki kez tklannca programn bitmesi isteniyorsa OnDblClick ksmna kod yazlr veya mouse ile ilgili kontrol elemannn zerinden geerken mesaj vermek istiyorsak, OnMouseMove ksmna kodumuzu yazaca z. rnek: imdiye kadar rendiimiz bilgilere gre aadaki program yapalm. Formumuza; Ana Formdaki Standart Component'inden 5 tane Label, 3 tane Edit Text, 2 tane ComboBox, 1 tane ListBox, 5 tane de Buton yerle tirelim. Bu kontrol elemanlarnn OnClick ksmlarna aadaki kodlar yazalm. procedure TForm1.Button1.Click(Sender: TObject); begin //Ekle butonuna yazlacak kod Listbox1.Items.Add ( Edit1.Text+' ' +Edit2.Text+' '+Edit3.Text+' '+ ComboBox1.Text+' 'Combobox2.Text);

end; procedure TForm1.Button2.Click(Sender: TObject); begin // Sil Dmesi ListBox1.Items.Delete(ListBox1.ItemIndex); end; procedure TForm1.Button3.Click(Sender: TObject); begin // Kaydet d mesi ListBox1.Items.SaveToFile ('liste.dat'); //Liste adl dosya oluturarak bilgiyi kaydeder. end; procedure TForm1.Button4.Click(Sender: TObject); begin // Ykle dmesi ListBox1.Items.LoadFromFile('liste.dat'); // Bilgileri Listbox1'e ykler. end; procedure TForm1.Button5.Click(Sender: TObject); begin // Program kapatma dmesi Close; end;

Birden Fazla Form Kullanma


Programa yeni bir form eklemek iin File mensnden NewForm seenei kullanlr. Programda birden fazla form varsa bu formlara eri mek iin View-Forms mens kullan lr. ( Dier formlara Shift + F12 ksayol tuuylada ulaabilirsiniz )

Component Palet
Form zerinde oluturulacak ekran grnts ise Delphi'nin ana formundaki Component Palet zerindeki kontrol elemanlar taraf ndan yaplr. Component Palet'ten seilen kontrol elemanlar mouse ile Form zerine kolayca yerletirilir. Componentler gruplanarak yerle tirilmitir. Her grup bir ok farkl componentten olumaktadr.

Yeni Component'ler Ekleme


Delphi'ye yeni componentler ve activeX kontrolleri eklenebilmektedir. Yeni bir Component eklemek iin Component mensndeki Import ActiveX Control komutu kullanlr. Alan pencerede ykl ActiveX kontrolleri listelenir. Eklenilmek istenilen ActiveX kontrol listede yok ise Add dmesi ile OCX dosyas bulunup listeye eklenebilir. Penceredeki Palette Page

kutusundan eklemek istenilen kontroln hangi ksma eklenece i seildikten sonra Install dmesi ile Delphi'ye al nabilir.

Component ablonlar ( Template ) oluturmak


Program tasarmnda en ok yaplan ilemler, sk kullanlan bileen yada bileen gruplar bir ablon olarak kaydedilerek aynen standart bir bile en gibi tekrar kullanlabilir.

Project Manager Penceresi


Project Manager penceresi normalde ekranda grlmez. View / Project Manager men seenei ile grntlebilir. Bu pencere iinde programmza ait Formlar ve Unitler gsterilir. Bu pencere iindeki dosyalar DPR uzantl bir dosyada tutulur. Projeden bir dosyay karmak iin Remove seeneini, yeni bir dosya eklemek iin New seenei kullanlr

Delphi'de Kullanlan Dosya Tipleri


Her unitin kaynak kodlarn ieren dosyalardr. Delphi'de oluturulan formlara ait kodlar da PAS uzantl dosyalarda saklan r. Form Dosyalardr. Delphi'de oluturulan formlar ve zerindeki kontrollere ait bilgiler .dfm bu uzantdaki dosyalara kaydedilir. Projemize ait masa st ayarlar bu dosyaya kaydedilir. Hangi formun ak olduu , .dsk ekrandaki koordinatlar gibi bilgiler bu dosyada tutulur. .dof Project / Options diyalog penceresindeki ayarlar ieren dosya. altrlabilir program dosyas . Application projeleri altrldnda onlara ait EXE .exe dosya, projeye verilen isimle otomatik olarak olu turulmaktad r. Derlenmi unit dosyalar bu uzant ile kaydedilir. Bir uygulamay altrdmz zaman .dcu ilk nce unitler derlenir ve EXE hale getirilir. .dpr Proje Kaynak Dosyas. Delphi'deki projeler bu tr dosyalara kaydedilir. Derlenmi Binary Kaynak ( Resource ) Dosyalar . Windows tarafndan standartlatr.res lan bu formattaki dosyalarda resim, ikon, kursor gibi bilgiler bulunur. .pas

Deikenler Deiken Tanm


Delphi'de deikenler kullanlmadan nce tanmlanma mecburiyeti vard r. Deiken adlar 63 karakteri gememelidir. 63.karakterden sonras gzard edilir. Deiken adlar sembolleri iermemelidir. ($ , * , % vb. ) Bir deiken tanmlama ii Var blounda yaplmaldr. Bir deikenin tan m iki ksmdan meydana gelir. 1.ksm deikenin adn, 2. ksm ise deikenin tipini belirler.

Var a,b : integer ; i : integer ; aciklama : string ; Medenihal : Boolean ; kesirli : real ;

Veri Tipleri Tamsay Tipleri


ShorInt: 1 Byte'lk iaretli tamsay tipidir. ( - 128 ) ile 127 aras nda deer alr. SmallInt: 2 Byte'lk iaretli tamsaydr. ( -32768 ) ile 32767 aras nda deer alr. LongInt: 4 Byte'lk iaretli tamsay tipidir. ( - 2147483647 ) ile 2147483647 aras nda deer alabilir. Integer: LongInt tipi gibidir. 4 Byte'lk iaretli tamsay tipidir. ( - 2147483647 ) ile 2147483647 arasnda deer alabilir. Byte: 1 Byte'lk iaretsiz bir tamsay tipidir. 0 ile 255 arasnda deer alabilir. Word: 2 Byte'lk iaretsiz tamsay tipidir. 0 ile 65535 arasnda deer alabilir. Cardinal: 4 Byte'lk iaretsiz tamsay tipidir. 0 ile 2147483647 aras nda deer alabilir. Int64: 64 bitlik tamsaylar tanmlanabilmektedir. ( -9 x 10^18 ) ile 9 x 10^18 aras nda deer alabilmektedir. LongWord: 0 ile 4294967295 aras deerler alr.aretsiz tamsaydr.Delphi 4 versiyonuyla birlikte gelitirilmitir. Variant: 16 Byte'lik bir deiken tipidir.Bu tipteki bir deikene hem saysal hem de string ifadeler aktarlabilir. rnek: Var i : variant ; a : integer ; k : int64 ; begin i := 'Bahadir'; a := 12345 ; k :=123456789 ; end;

Reel Say Tipleri


Single: 4 Byte'lk ondalk say tipidir. 1.5 x 10^(-45) ile 3.4 x 10^38 arasnda deer alr. Real48: 6 Byte'lk ondalk say tipidir. 2.9 x 10^(-39) ile 1.7 x 10^38 arasnda deer alabilir.

Real ve Double: 8 Byte'lk ondalk say tipidir. 5.0 x 10^(-324) ile 1.7 x 10^308 arasnda deer alabilir. Extended: 10 Byte'lk ondalk say tipidir. 3.4 x 10^(-4932) ile 1.1 x 10^4932 aras nda deer alabilir. Comp: 8 Byte'lk ondalk say tipidir. -2^63 + 1 ile 2^63 - 1 arasnda deer alabilir. Currency: 8 Byte'lk - 922337203685477.5808 ile + 922337203685477.5807 aral nda iaretli bir say tipidir.

Boolean Tipi
Boolean: True ve False deerlerinden birini ierir. 1 Byte'lk yer kaplar.

Karakter Tipleri
Char: Bir karakter ieren 1 Byte'lk veri tipidir. Bu deikenler sadece bir karakter barndrabilirler. rnek: ' B ', ' 2 ' AnsiChar: Char tipi ile ayn zelliklere sahiptir. WideChar: 2 Byte'lk bir karakter tipidir.

String Tipleri
ShortString: 255 karaktere kadar karakter atamas yapabilen veri tipidir. Bellekte 1 Byte'lk yer kaplar. AnsiString: Bu tip stringler Dinamiktir ve belli bir s nr yoktur. Yani ne kadar karakter atanrsa o kadar bellekte yer kaplar. String: AnsiString tipiyle ayn zelliklere sahiptir. PChar: 64 KByte'a kadar atama yaplabilen #0 karakteri ile biten string tipidir.

Delphi'de Kullanlan Operatrler


Operatr Aklama + Toplama karma * arpma / Blme Div Tamsay Blme := Atama = Eittir <> Eit Deil < Kk > Byk >= Byk eit <= Kk eit And Mantksal AND rnek a:=b+c; a:=b-c; a:=b*c; a:=b/c; a:=b div 10; a:=12; if( a=12) then ShowMessages('a e it 12'); if( a< >12) then ShowMessages('a e it deil 12'); if( a<12) then ShowMessages('a kk 12'); if( a>12) then ShowMessages('a byk 12'); if( a >=12) then ShowMessages('a byk e it 23'); if( a<=12) then ShowMessages('a kk e it 23'); if( a>=12) and ( a<15 ) then ShowMessages('a de erleri gerekleti);

Or Not ^ @ $ [] .

Mantksal Or Mantksal Not

Pointer Operatr Pointer Adresi Heksadecimal Opea:=$FF; ratr Dizi Operatr a:Array [1..99] of integer; Nokta Operatr Personelin.Ad:='Bahadir';

if (a>12) or (a<15) then ShowMessages('a deerinin kisi veya biri gerekleti.'); if not (a< 12) then ShowMessages('a deeri 12'den byk deil.'); a:=b*c^; a:=@b;

Diziler
Dizi tanm Var blounda aadaki ekilde yaplr. Var Diziadi:array[altsnr..stsnr] of tip ki boyutlu dizi yledir :Diziadi:array[alts nr1..stsnr1,altsnr2..stsnr2] of tip rnek: Var a:array[1..50]of integer;

Dinamik Dizi Tanmlama


Dinamik Dizi; boyutunun derleme aamasnda belirlenmesi gerekmeyen dizilere denir ve program alrken dizinin boyutu belirlenebilir. var diziad:array of tip Herhangi bir anda bu dizinin boyutu SetLength fonksiyonu ile belirlenir. Setlength(diziad ,boyutu); rnek: SetLength(i,12) ; // i dizisini 12 elemanl yap. ok Boyutlu Dizi Dizi birden fazla boyutluda olabilir. Bu durumda her boyut iin tan m ksmnda bir array of ifadesi kullanlr. Var Diziad : array of array of array of ... tip rnek: 3 boyutlu bir a dizisi tanmlanrken; Var a : array of array of array of Integer ; ok boyutlu dizinin boyutu SetLength ( a , 2 , 4 ,6 ) ; gibi tanmlanr.

Sabitler

Sabitler deimeyen deerler ierirler. Bu deer programn bandan sonuna kadar de eri ayndr. Bir sabit tantm Const blounda yaplmaldr. Const Sabitad =deeri; rnek: Const i = 100; adi = 'Bahadir';

lk Deer Atama ve Static Deiken Tanm


Deikenlere ilk deerin atanmas ve bu deikenin deerini prosedrn almas bittikten sonra da korunmas iin Const ksm altnda deiken tanm yaplr. Const deiskeninadi : Tipi = lkdeeri; rnek: Const i : integer = 0 ;

Bir Diziye lk Deer Atama


Const Diziadi : Array[altsnr..stsnr] of tipi = (deer1 , deer2 ,...) ; eklindedir. rnek: Const Mevsimler:Array[1..4] of string = (' lkbahar ' , ' Yaz ' , ' Sonbahar ' , ' K ' );

Pointerler
Pointerler bir deeri deil, deerin bulunduu adresi gsterir. PAnsiString: AnsiString tipinde bir de ikeni gsteren pointer. PByteArray: TbyteArray tipinde bir deikeni gsteren pointer. ounlukla bellekte ayrlm blgelerdeki her byte ulalabilmek iin kullanlr. PCurrency: Currency tipindeki bir deikeni gsteren pointer. PExtended: Extended tipindeki bir deikeni gsteren pointer. PShortString: ShortString tipindeki bir deikeni gsteren pointer. PWordArray: TWordArray tipindeki bir de ikeni gsteren pointer.

Herhangi bir deiken iin ^ karakteri kullanlarak kolayca pointer tanmlanabilir. rnek: Var ptr : PAnsiString ; p: ^integer ; // integer tipindeki de ikeni gsteren pointer.

Pointerlerin Barndraca Adres


Pointerin barndraca adresi belirleme ii @ karakteri ile yaplr. p := @ i ; // p pointeri i adresini barndracaktr. ptr := @ a[1] ; // ptr pointeri ile dizinin ilk adresini bar ndracak.

Pointer Kullanm
Pointer, tiplerin nne ^i areti koyularak tanmlanrlar. rnek: var x : ^integer ; y : ^string ;

artl altrma Deyimleri


Programlar normal zamanda satr satr alrlar. stee bal olarak belli artlar aranarak programn bir ksmnn altrlmasn veya altrlmamasn salayabiliriz.

f Dngs
if dngsnn genel yaps aadaki gibidir. If art then Komut ; Else dier komut ; rnek: var i : integer ; begin i := 0; i := i + 1 ;

if i = 1 then begin Label1.Caption := 'Doru '; end else if i<>1 then begin Label1.Caption := 'Yanl '; end; end;

Case Dngs
Bir deikenin ald bir ok de ere gre ayr komutlarn altrlmas gereken durumlarda Case dngs kullanlr. Genel yaps aadaki gibidir. Case deiken of durum1 : Komutlar ; durum2 : Komutlar ; ...... durumn : komutlar ; Else komutlar ; end; Yukarda dikkat edilirse de iken; durumlara uyan de erler ald zaman ilgili komutlar alacak eer deikenin deeri hibirine uymuyorsa Else' den sonraki komut al acaktr. Aadaki rnei inceleyelim. Case x of 1 : label1.Caption := ' Merhaba ' ; 2 : label1.Caption := ' Dnya ' ; 3 : Edit1.Text := ' Bahadir Sahin ' ; else Edit1.Text := ' Hoakal ' ; end;

For Dngs
For dngsnn genel yaps aadaki gibidir. For i := ilkdeer to sondeer do begin komut ; end ; Burada to kullan ld iin i artarak deerler alr.downto kullan ld zaman deer i deerleri azalarak gider. For i := ilkdeer downto sondeer do begin komut ; end ; rnek : var i : array [ 1 .. 20 ] of string ; k : integer ; begin for i := 1 to 20 do i [ k ] := InputBox( ' i deer giri i ' ,Inttostr (k ) + '.nin ad ' , ' ' ) ; end ;

While - Do Dngs
Bir art gerekletii zaman al mas gereken program bloklarnda kullanlr.Genel yaps aadaki gibidir. While art do Begin Komutlar ; end ; rnek :var i : integer ;

Begin i := 0 ; while i < 10 do Begin Label1.Caption := inttostr ( i ) ; i := i + 1 ; end ;

Repeat - Until Dngs


Genel yaps aadaki gibidir. art gerekle ene kadar almas gereken ksmlarda kullanlr. Repeat Komut ; Until art ; rnek: var i : integer ; begin repeat i := 50 ; Until (i>0) and ( i < 50 ) end ;

Dng Kontrol fadeleri


Baz durumlarda dng bitmeden dngden klmak istenebilir. Bu gibi durumlarda dng kontrol deyimlerini kullanmak gerekir. Bunlardan baz lar Break, Continue gibi deyimlerdir.

Break
Break kontrol deyimi For,While veya Repeat dnglerinden birinde dngden kmak iin kullanlr.Aadaki rnei inceleyelim. rnek :procedure TForm1.Button1.Click ( Sender : TObject ) ; var

i : array [1 .. 20 ] of string ; k : integer ; begin for i := 1 to 20 do if i [ k ] = 'Bahadir' then begin break ; if > 50 then begin ShowMessages (' Aranan kay t bulunamad . Tekrar deneyiniz...' ) ; end else ShowMessages (Inttostr ( k ) + ' . ki i' ) ; end ; end ;

Continue
Continue; For, While veya Repeat dnglerinde baz artlar gerekletiinde dngnn sonuna gitmeden tekrar baa dnmesini salar. rnek: var i : integer ; Begin for i := 1 to 20 do if i<10 continue ; end ; ShowMessages( Inttostr ( i ) ) ; end ; Exit Exit; mevcut program blo undan, bloun sonuna ulamadan kmaya yarar.

rnek : var i : integer ; begin i := strtoint ( Edit1. Text ) ; if i <10 then begin exit ; end else Edit1.Text := 'i'nin deerleri 10'dan byk.' ; end ; end; Halt Programdan k salar. rnek: Begin Form1.Halt ; // Programdan k salar. end ;

Whit - Do
Herhangi bir kontrol elemannn birden fazla zelliini deitirmek iin yada metodlara ulamak iin kullan lr. Genel kullan mm ekli aadaki gibidir. With kontroladi do Begin .... end ;

Borland Delphi'de Veri Taban


Veri Taban Dosyas, Delphi ile birlikte gelen Borland Database Desktop ile tasarlanabilir. Bunun dnda Visual Dbase, Dbase for Windows, Paradox, Dbase VI, Access gibi veri taban programlarda desteklenir. imdi Database Desktop program ile veritaban hazrlamaya balayalm.

Database Desktop ile Veritaban Hazrlanmas

Delphi ile gelen Database Desktop program n altrn. Daha sonra tablo haz rlayacaz. Bunun iin File-New-Table mensne tklaynz. Alan pencere'de dBASE for Windows'u sein ve Ok tuuna tklayn. Veri tabanndaki alanlar tanmlayabilmemiz iin pencere a lacaktr. Alan bu penceredeki stunlar aadaki zellikleri belirtir. 1) Field Name: Bu stuna alann ismi yazlr. ( rnein Ad Soyad vb. ) 2) Type: Bu alana girilecek olan bilginin tipini giriyoruz. A ada bu tipleri belirtece im. 2-1) Character: Bu alana girilen bilgi harflerden veya rakamlardan veya her ikisinin kar mndan olabilir. 2-2) Number: Bu alana girilen bilgi sadece rakamlardan ibarettir. 2-3) Date: Tarih bilgileri bu tipte tanmlan r. 2-4) Logical: Evet - Hayr, Ak - Kapal gibi sadece iki durumdan olu an olaylar bu tipte tanmlan r. 2-5) Memo: Uzun metinler bu tipte tan mlanr. 2-6) Binary: Resim, ses gibi zel alanlar bu tipte tanmlanr. 3) Size: Bu stunada karakter s nr yazlr. ( rnein 10 yazldnda ; 10 karaktere kadar klavyeden giri yaplr. ) Not: Stunlara bilgiler girildikten sonra, Save As tuuna baslarak olu turduumuz Tablo kaydedilir.

Wizard Kullanlarak Veritaban Hazrlanmas


Borland Delphi bize bir kolaylk daha sunmutur. DataBase Form Wizard' kullanarak veri tabannz hazrlayabilirsiniz. imdi adm adm Wizard kullanararak Tablomuzu olu turalm. lk nce Delphi programn altrnz. Bundan sonra File mensnden New mensne tklayn. Alan pencerede Business ksmna geiniz. Burada DataBase Form Wizard' seip Ok tuuna basnz. Karmza Database Form Wizard penceresi kar. Bundan sonra; Eer tek tablonuz varsa Create a simple Form ' u iaretleyin. Eer birden fazla tabloyu iliikli ekilde gstermek istiyorsanz; Create a Master / detail Form dmesini sein sonra Next tuuna basnz. kan formda kullanlacak tabloyu belirleyeceiz. Eer bir DBF dosyas varsa onun bulunduu dizine giderek seebilir veya Driver or Alias Name kutusunda DataBase Explorer ile dzenlenmi veri tabanndan biri seilebilir. Biz rnek olarak Borland Shared / Data dizinindeki animals.dbf'yi seece iz. animals.dbf seildikten sonra Next tuuna basnz. kan pencerede >> tuuna basarak btn alanlar seeceiz. Alanlar setikten sonra Next tuuna basn. kan pencerede alanlar yatay ( horizantal ), dey ( Vertically ) veya in a Grid eklinde mi sralanacan belirleyip Next tuuna tklaynz. En son kan pencerede Finish tuuna basnz. Bylece tablomuzu otomatik olarak oluturmu olduk.

Veritaban Bileenleri

Data Access: ksmndaki kontroller program altnda ekranda gzkmeyen bileenlerdir. Bu bileenler Data Controls ksmndaki kontroller ile grntlenecek veriler iin veritabanlar ile kpr vazifesi grrler. TTable: En nemli zellikleri DataBase Name ve Table Name'dir. Database Name 'e BDE iinde tanmladmz alias verilebilir. rnein: Formumuza Data Access ksmndan 1 tane TTable yerletirelim. Bunun Database ksmna DBDEMOS alias n seelim. Daha sonra Table Name ksmndaki ComboBox'tan animals.dbf' yi seelim. DataSource: Verilerin data controls k smndaki bileenler yardmyla grntlenmesi iin table, query gibi kontrolleri mutlaka Datasource'e balanmas gerekmektedir. Az nce formumuza Table yerletirmitik. imdi formumuza Data Access ksmndan Data Source kontroln yerletirelim. Object Inspector penceresinden Dataset zelliini az nce koyduumuz Table1'e ili iklendirelim. DBEdit: Grsel kontrollerden biridir. Data Controls ' dan seip formumuza yerletirelim. DbGrid'in nemli ksmlarndan DataSource ve DataField'dir. imdi DataSource ksmnda DataSource1'i seelim. DataField ksmndan da Area 'y seelim. Gerekli dier kontrolleride yerletirdikten sonra; Table1'i seerek Object Inspector'den Active ksmn True yapalm; sonra program F9 tuuna basarak altralm. Grlecei gibi animals.dbf'ye ait btn bilgiler ekranmzda belirdi. DbImage: Veritabanlar na resim ieren alanlarn ilenmesi iin kullanlr. DbGrid: Verilerin gsterilmesi iin kullanlr. Gsterilecek alanlar ayarlanabilir, verilerin fontu deitirilebilir. Az nceki rne imizdeki formumuza Data Controls ksmndan DbGrid yerletirelim. Daha sonra Object Inspector'de DataSource zelliini DataSource1 deerini verelim. Bylece program altrdmz zaman Grid stunlarnda, alanlar ise satrlarnda gsterildiini greceiz. DbNavigator: Veriler zerinde gncelleme, silme, yeni kayt ekleme, ileri - geri gitme vb. gibi ilemlerin yapld ara ubuudur. rneimizde formumuza Data Controls ksmndan DbNavigator yerle tirelim ve Object Inspector ksmnda Data Source zelliini Data Source1 yapalm. Program altrdnz zaman istediiniz ilemleri DbNavigator ubu uyla yapabileceinizi greceksiniz. Bu ubuktaki zellikleri inceleyelim. First: lk kayda gider. Prior: Bir nceki kayda gider. Next: Bir sonraki kayda gider. Last: En son kayda gider. Insert: Mevcut kayttan nce araya bir kayt ekler. Delete: Mevcut kayd siler bir sonraki kayd grntler. Edit: Mevcut kaydn deitirilmesini salar. Post: Yaplan deiiklikleri veri taban dosyasna yazar. Cancel: Girilen deiiklikleri iptal eder. Refresh: Mevcut kayd yeniden grntler. Yani Gncelleme yapar.

Not: DbNavigator'n ShowHint zellii True yaplarak, bu dmelerin ne ie yarad zerine gelindii zaman yazacakt r. DBEdit: DBText ile ayndr, ek olarak veriler zerinde deiiklik yaplabilir. Bunlarda Data Source zellii Data Source1 ksmna iliiklenir ve DataField zelliindede ilgili ksm seilir. DbText: Label ile ayndr. Bal olduu tablodan belirtilen alan bilgisini grntler. Genelde zerinde deiiklik yaplmayacak alanlarn gsterilmesinde kullanlr. DBMemo: Birden fazla sat rn veya 255 karakterden daha uzun verilerin saklanmas ve gsterilmesi iin kullanlr. DBListBox: Verilen alan deeri eer liste iinde bulunuyorsa otomatik olarak seilir. Bilein listesini biz doldurmak zorundayz.Verilen alan ile ilgili de erler otomatik olarak gelmez. DBComboBox: TListbox ile ayndr. Bu kontrol aracl ile combobox iinde bulunabilecek deerler belirlenir ve kullan cnn bu deerlerden birisini semesi sa lanr. nce DataSource zellii ile kullan lacak tablo ve DataField zellii ile de comboBox'un balant kuraca alan belirlenir. DBComboBox iinde bulunacak de erler ise bu kontroln Items zellii ile alan pencereden belirlenir. DBRadioGroup: Bir alana girilecek bilgi says snrl ise bu kontrol kullanlr. DataSource zellii ile kullanlacak tablo ve DataField zellii ile de balant kurulacak alan belirlenir ve Caption ile alann ismi deitirilebilir. DBChart: DBChart kontrol kullanlarak veri tabanmzda bulunan bilgileri grafiksel olarak ifade edebiliriz. Bu kontrol ile birden fazla grafii bir arada grebiliriz. Farkl veri tabanlarnda bulunan bilgileri bile ayn grafik zerinde gsterebilmekte ve bylece farkl verilerin analizi grafiksel olarak gerekletirilebilmektedir.

TQuery Kontrol le Veri Sorgulama


Delphi'de Veri Sorgulama ilemi TQuery kontrol ile olur. TQuery kontrolne ait SQL zellii; hem bir editr olarak ve hem de do rudan SQL komutlar yazlp altrlmak suretiyle kullanlan bir zelliktir. imdi Query1 kontrolyle sorgulama ilemlerine balayalm.

Tm Stunlar Listelemek
Aadaki rnei inceleyelim. rnek: liste.dbf adl veri tabanmz olsun. Bunu Query1 kontrol ile sorgulayp listelemek istiyoruz. Bunun iin yapmamz gerekenler unlardr. lk nce formumuza Data Access ksmndan Query1 bileeni ile DataSource1 bileeni yerletirelim. DataSource1'in Dataset zelliini Query1 yapalm. Daha sonra Data Controls ksmndan formumuza DbGrid yerletirelim ve Object Inspector 'den DataSource zelliini DataSource1 yapalm. Daha sonra Query1'in DataBaseName zelliini alias olarak tan mlanan nceden oluturduumuz liste.dbf'yi seelim. Sonra Query1'in SQL zelliine gidip kan pencerede aadaki SQL ifadesini yazalm. SELECT * FROM liste Sonra Query1'in Object Inspector'den Active zelliini True yapalm ve programmz F9'a basarak altralm. DbGrid'de grlecei gibi liste.dbf'deki btn bilgiler listenmitir.

stenilen Stunlar Listelemek

istenilen stunlar listelenmek istenirse Query1'in SQL zelliine u SQL komutu yazlmaldr. SELECT adi , soyadi , adresi FROM liste Not: liste.dbf adl veri tabanmzdan sadece adi, soyadi, adresi adl stunlar ve bu stunlardaki bilgileri listelemi olduk.

Tekrarl Kaytlar Bir Defa Listelemek


Bir tabloda bulunan ayn kaytlar bir kez listelemek iin DISTINCT komutu kullan lr. Bunun iin; Query1'in SQL zelliine u SQL komutu yazlmaldr. SELECT DISTINCT adi, soyadi, adresi FROM liste artl Sorgulama yapmak istersek aadaki gibi SQL komutu kullanmak gerekir. SELECT adi, soyadi, adresi FROM liste WHERE adi = 'Bahadir ' rnek1: sminin baharfi "B" ile balayanlar sorgulayalm. Aadaki SQL komutunu inceleyiniz. SELECT DISTINCT adi, soyadi, adresi FROM liste WHERE adi LIKE ',B%' rnek2: ki art ayn anda salama. rneimizi inceleyelim. SELECT DISTINCT adi, soyadi, adresi, maas FROM liste WHERE ( adi = 'B%' and maas > 10000 ) ki arttan biri gerekle mesi isteniyorsa yukardaki rnekte And yerine Or kullanlacak.

Verileri Sralamak
Tabloda bulunan verileri A-Z'ye veya Z-A'ya s ralayabiliriz. Bunun iin aadaki rnekleri inceleyelim. rnek1: SELECT DISTINCT adi, soyadi, adresi, maas FROM liste WHERE Order By adi ASC ( A-Z'ya sralar ) rnek2: SELECT DISTINCT adi, soyadi, adresi, maas FROM liste WHERE Order By adi DESC ( Z-A'ya sralar )

Verileri Gruplandrmak
Bir tabloda yer alan ki ilerin farkl zamanlardaki yapt klar ilerin miktar gruplandrmak suretiyle tek bir tabloda listelenebilir. Bunun iin Group BY komutunu kullanacaz. SELECT adi, soyadi, SUM ( toplam_fiyat )Genel_toplam FROM liste Where fiyat = 'TL' GROUP BY adi nemli Not: imdiye kadar Query1'in SQL zelliine SQL komutlar yazarak sorgulamalar yaptk. imdi kod penceresinde yazacamz program koduyla veri sorgulayacaz. rnek: Parametreye bal olarak veri sorgulamas

procedure TForm1.Button1Click ( Sender : TObject ) ; // Button1 adl butona kodumuzu yazyoruz. begin Query1.Close ; Query1.ParamByNAme( ' Adi ' ).AsString := Edit1.Text ; Query1.Open ; end ;

Stun Sorgulama
Bunu yaparken DataSource1 'in DataSet zelliini Query1 ; Query1'in DataBaseName zelliini veri tabannz ( bizim rnekte liste.dbf ) ; DBGrid1 ' in DataSource zelliinide DataSource1 yapnz. rnek : procedure TForm1.Button1Click ( Sender : TObject ) ; begin Query1.SQL.Clear ; Query1.SQL.Add(' Select adi , soyadi , adresi , maas From liste ' ) ; Query1.Open ; end ; Programmz altrp Button1'e tkladmz zaman DBGrid'de istediimiz bilgilerin listelendiini grrz.

Ekleme Sorgusu
Formumuza Button1 koyalm. Caption zelliine Ekle yazalm. Ekle butonuna aadaki kodlar yazalm. ( formumuza Query1, DataSource1 ve DBGrid1 yerletirilmi varsayyorum. ) procedure TForm1.EkleClick ( Sender : TObject ) ; begin Query1.SQL.Add ('INSERT into liste ' ); Query1.SQL.Add ( ' (ADI , SOYADI ) ' ) ; Query1.SQL.Add ( 'values (" Bahadir " , " Sahin " ) ' ) ; Query1.ExecSQL ;

end; Not : Program altrp Ekle butonuna bastmz zaman, kodda yazm olduumuz Bahadir Sahin' i veri tabanna ekler.

Veri Gncellemek
Tablomuzda bulunan verilerimizi gncellemek iin UPDATE'i kullanacaz. Bunun iin Formumuza Button1 koyalm. Caption zelliine Gncelle yazalm. Gncelle butonuna aadaki kodlar yazalm. procedure TForm1.GuncelleClick ( Sender : TObject ) ; begin Query1.SQL.Clear ; Query1.SQL.Add ( ' UPDATE liste set maas = 10000 where ADI = ' Bahadir ' ) ; Query1.ExecSQL ; end ;

Veri Silme Sorgusu


procedure TForm1.SilClick ( Sender : TObject ) ; begin Query1.SQL.Clear ; Query1.SQL.Add ( ' Delete from liste where ADI = ' Bahadir ' ) ; Query1.ExecSQL ; end ;

Parametreye Bal Olarak Veri Sorgulama


procedure TForm1.SorguClick ( Sender : TObject ) ; begin Query1.SQL.Clear ; Query1.SQL.Add('Select ADI, SOYADI from liste Where ADI =:a') ; Query1.ParamByName ('a').AsString := Edit1.Text; Query1.Open; end;

Borland Delphi'de QReport Bile enleri ile Rapor Hazrlama


Daha nceki blmlerde veri tabann nasl oluturduumuzu ve bu veri taban na yazm olduumuz verileri nas l sorgulayp listelediimizi grmtk. imdi ise yapm olduumuz ilerin meyvesini almaya geldi. Nas l m? Tabiki QReport ile...QReport ile Printer'dan kt alabiliriz. imdi QReport'un zelliklerini inceleyelim. Blm ( Band ) yapsna dayanan rapor retici QReport bileenleri ile grsel rapor tasarm Rapor kts verme Annda nizleme imkan Limitsiz Memo alanlar Limitsiz Grup says Karmak rapor tasarm stee uyarlanabilir rapor tasarm Yazdrlabilir grafik formatlar Gelitirilmi hesap ifadeleri Tam yazc kontrol vb.dier zellikler...

imdi adm adm Rapor oluturmaya balayalm. Bir rapor formu en basit aadaki bileenlerden meydana gelir. DataSet ( TTable ) eleman QuickReport ( TTable ile balantl ) QuickReport zerine alnan QRBand bileeni TQuickRep elemannn Bands zellii altndaki HasDetail zelliinin True yaplmas Detail blm zerine yazlabilir TQRDBText eleman Bunlar rendikten sonra raporumuzu haz rlamaya devam edelim. lk nce Formumuza Data Access ksmndan TTable kontroln yerletirelim. Table1'in Object Inspector'ndeki DatabaseName zelliini oluturduumuz alias ( Ben liste.dbf oluturdum. Sizde oluturduunuz veri tabann sein.) seelim. TableName 'de veritabannn ismini seelim. Table1'in Active zelliini True yapalm. Sonra QReport ksmndan QuickRep1 elemann yerletirelim ve DataSet zelliini Table1 yapalm. Daha sonra Bands zelliine tklayp HasDetail zelliini True yapalm. Bu ilem ile form zerine veri alanlarnn yer alaca blm eklemi olduk. imdi bir rnek yapal m. rnek: Yukardaki ilemleri gerekle tirdikten sonra QReport ksmndan 5 adet QRDBText kontrol alp Details ksmna yerletirelim ve herbir QRDBText'in Dataset zelliini Table1 ve DataField zelliinide liste.dbf'de bulunan stun alanlar ndan birini seelim ( Mesela ADI, SOYADI, ADRESI ). Basit bir rapor yapm olduk. imdi tasarm zamanndaki raporu grebilmek iin QuickRep1'in zerindeyken, Mouse'n sa tuuna tklayalm. Karmza bir men kar. imdi bu mendeki zellikleri inceleyelim. Report Setting: Tasarm zaman rapor ile ilgili ayarlarn yer ald pencereye ulalr. Zoom in: Tasarm zamannda rapor zerindeki bileenler daha byk gsterilir. Zoom Out: Tasarm zamannda rapor zerindeki bileenler daha kk gsterilir. Rotate Band View: Rapor zerinde yer alan bileenlerin yerleri deitirilir.

Hide Bands: Bu zellikle bileenler gizlenir. Reset: Gizlenen blmleri tekrar gsterir. Preview: Bu zellik; Raporumuzun ekran grntsn karr.

Raporla lgili Ayarlar


Tasarm zamannda raporla ilgili ayarlar n yaplabilmesi iin QuickRep1'e sa tklanr. Alan mende Report Setting seenei seilir. Alan mende ; Paper Size: Kadn tipi belirlenir. Length: Sayfa uzunluu belirlenir. Width: Sayfa genilii belirlenir. Margins: Kenarlarda braklacak boluk miktar belirlenir. Column Space: Stun geni lii belirlenir. Number of Column: Stun says belirlenir. Other: Bu ksmda raporda kullanlacak font ad, bykl ve l birimi ayarlanr. Page Frame: Bu blmde ise rapor nizleme modunda iken gzkecek ereveler, erevenin rengi, kalnl ayarlan r. Bands: Rapora eklenecek blmler ( Band ) seilir. Page Header: Rapora Sayfa Bal verilir. Title: Balk girilir. Column Header: Stun balklar girilir. Detail Band: Veri alanlarnn yer ald blmdr. Page Footer: Sayfann altnda yer alan sayfa alt bilgilerini ekler. Summary: Raporla ilgili ek aklamalar ekler.

alma Annda Rapor nizleme


Bunun iin u ilemleri yapnz. lk nce Formumuza bir Button ekleyin ve bu button1'in Caption zelliine Raporla yaznz. Daha sonra butonun OnClick ksmna aadaki kodu yaznz. Procedure TForm1.RaporlaClick ( Sender : TObject ) ; begin QuickRep1.Preview ;

end; Program altrp Raporla butonuna bastmz zaman, raporumuzun ekran grnts karmza gelir. Not: Kaytlar direk yazcya gndermek istiyorsak, Butonun OnClick olayna u kodu yazacaz. QuickRep1.Print ;

Wizard Kullanarak Rapor Haz rlama


File / New Aplication 'u sein. File / New mensnden Business ksmna geiniz. Buradan QuickReport Wizard seeneini seiniz. Sonra Ok dmesine basnz. kan pencerede Start Wizard dmesiyle bir sonraki ad ma geelim. Alias or Directory kutusunda balant kuracamz veritaban nn bulunduu dizini seiyoruz. Table Name ksmnada veri tabanmzn ismini seiyoruz. Tablo seildikten sonra; tablomuzda yer alan stunlar grlecektir. Raporda bulunmasn istediimiz alanlar belirleyip > veya hepsini seersek >> tuuyla sa taraftaki listeye alalm ve bu ilemi bitirdikten sonra Finish dmesine basalm. Bylece Wizard kullanarak otomatik olarak raporumuzu olu turmu bulunuyoruz.

Veri Szmek ve Sralamak


QuickReport; verileri sralayacak herhangi bir zellie sahip deildir. Veriler girildikleri srada baslrlar. Veri taban iindeki veri alanlar nn index olarak tan mlanmas gerekir. Bu ilemden sonra TTable elemannn IndexName zellii ile belirtilmesi gerekir. TQuery elemanylada istenilen ekilde verileri szmek mmkndr. Veri szme birka ekilde yaplr. TTable.Filter zellii bir szme koulu ekler. Bu s rada TTable.Filtered zellii True olmas gerekir. Dier yol SQL kullanlarak istenilen kaytlar elde etmektir. Bir dier seenek ise Detail bandnn PrintEvent olayn kullanmaktr.

Sayfa Bykl ve Kenar Boluklarn Ayarlama


Bunun iin QuickRep1 elemannn Page zelliine tklanarak alan alt zellikler arac lyla rapor tasarmnda kullanlacak olan sayfann bykl ve kenar boluklar kolay bir ekilde ayarlanr. Not: QuickRep1'in iinde varsaylan yaz tipleri seilebilir. Bunun iin Font zelliine tklanmas gerekir. Burada font ad, tipi, rengi fontun alt veya st izili olma durumu ayarlanabilir.

Rapor Bal
Rapor tanmlama QuickReport'un Description zellii ile yaplr. Bu seenei tklayalm ve alan pencereye raporla ilgili bilgileri girelim. Bir rapor ba l TQRSysData eleman araclyla yazdrlabilir. Balk aadaki kodla oluturulabilir. rnek :procedure TForm1.Button1Click(Sender :TObject ) ; begin with QuickRep1 do

begin Report Title := ' Personel Bilgisi Raporu ' ; Bands.HasTitle := True ; with TQRSysData ( Bands.TitleBand.AddPrintable ( TQRSysData ) ) do begin Data := qrsReportTitle ; AlignToBand := true ; Aligment := taCenter ; end ; Preview ; end ; end ;

Bir Rapora Blm Eklemek


Bir rapora blm eklemek iin Object Inspector penceresinden TQuickRep elemanna ait Bands zelliine tklamak ve kan alt blmdeki zelliklerin deerini true yapmaktr.

Quick Report'ta Kullanlan Operatrler


Operatr + * / () And Or Not = < > <= >= <> Aklama Toplama karma arpma Blme Parantez Mantksal And Mantksal Or Mantksal Not Eit Kk Byk Kk eit Byk eit Eit deil

QuickReport Fonksiyonlar
Date: Mevcut tarihi string olarak geri gnderir. Rapor zerine QRExpr eleman alnarak Expression zelliine Date verilerek kullanlr.

Time: Mevcut saati stringe evirir. Rapor zerine QRExpr eleman alnarak Expression zelliine Time verilerek kullanlr. Str ( say ): Saysal bir ifadeyi stringe evirir. Copy(str,s,l): Bir ifadenin iinde bulunan belli bir blm geri gnderir.

Rapora Sayfa Numaras ve Tarih Eklemek


Raporumuza sayfa numaras ve tarih eklemek iin; rapor zerine QRB eleman alarak BandType zelliini rbPageFooter yapalm. Daha sonra QRSYSData kontrolnden iki tane alp birincisinin Data zelliini qrsDate ve Text zelliine "Bas m Tarihi ", ikincisinin Data zelliini qrsPageNumber ve Text zelliini de " Sayfa : " yapalm. Raporu Preview'e tklayarak nizlemeye alrsak sayfann sonunda Bas m Tarihi ve Sayfa Numaras nn yazlm olduunu grrz.

Delphi ile MS Access Database'ine Balant


Delphi'den MS Access Databaseine ula abilmek iin srasyla yaplmas gerekenler aadaki gibidir: 1. Windows Control Panel'i an. 2. ODBC simgesini ift tklayn. 3. User DSN tabna gelin ve Add butonuna basn. 4. Driver olarak "Microsoft Access Driver (*.mdb)" yi sein ve Finish butonuna basn. 5. Data Source Name'i olarak kullanmak istediiniz bir isim verin. Description ksmna isterseniz database'inizle ilgili bir a klama yazabilirsiniz. 6. Daha sonra Select butonuna basarak database isminizi verin. 7. Advanced butonuna basarak kullan c ad ve ifresi tanmlayabilirsiniz. ( Zorunlu de il ) 8. OK butonuna basp ODBC ekrann kapatn. 9. imdi program nza bir TDatabase objesi ekleyin. 10. AliasName olarak ODBC ayarlarnda verdiiniz, (5) Data Source Name'i sein. 11. Database Name olarak istediiniz bir isim yaz n. 12. Eer 7. basamakta bir kullanc ad ve ifresi girmediyseniz login ekrann kmamas iin LoginPrompt seeneini false yapn. Not: Eer database'in bir kullan c ad ve ifresi varsa LoginPrompt seeneini False yapmanz durumunda database'e ulaamazsnz. 13. Programnza bit TTable ekleyin. 14. Database Name ksmna TDatabase bileeninde, Database Name ksmna 11. admda verdiiniz ismi sein.

15. Programnza bit TDataSource ekleyin. 16. DataSet deeri olarak 13. admda eklediiniz TTable adn verin. Artk MS Access Database'ine bal bir table'a sahipsiniz.

Borland Delphi'de Yaplm Baz Yararl Programlar

Database'de Trke Problemi


BDE administor programnda configuration/dirvers/native/[kulland n dosya tr] seeneklerinde langdriver ksmn trke bir src olarak de itir. Bunu yaptktan sonra delphi ile trke karakterleri grebilirsiniz Bu ayar yaptktan sonra Database Desktopta Trke karakterler yine grnmeyecek.

Enter Tuu Kullanm


Windows programlarnda bir alttaki alana gemek iin TAB tu u kullanlr. Ancak DOS programlarndan gelen alkanlkla kullanclar hep Enter ile alt alana gemek ister ve bu bir tik olmutur. Delphide Enter tuu ile bir alt alana gemek iin bir yntem; Formun Keypreview olayn True yaplr. Form zerinde herhangiki tm bile enlere Default false yaplr. formun onKeypres olayna aadaki function ilave edilir.

procedure TAdresformu.FormKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin Key := #0; if (Sender is TDBGrid) then TDBGrid(Sender).Perform(WM_KeyDown,VK_Tab,0) else Perform(Wm_NextDlgCtl,0,0); end;

Ak Windows Uygulamalarnn Gsterilmesi


Burada EnumWindows API fonksiyonuyla bir window handle ve pointer parametreleri a rlarak gizli ve grnr uygulamalar listelenir.

//AnaForm zerine bir ListBox1 ve Button1 ekleyin //implementation {$R *.DFM} altyna a?a?ydaki fonksiyonu yaz function EnumWindowsProc(Wnd : HWnd;Form : TForm1) : Boolean; Export; {$ifdef Win32} StdCall; {$endif} var Buffer : Array[0..99] of char; begin GetWindowText(Wnd,Buffer,100); if StrLen(Buffer) <> 0 then Form1.ListBox1.Items.Add(StrPas(Buffer)); Result := True; end; procedure TForm1.Button1Click(Sender: TObject); begin //Tm gizli ve grnr uygulamalary listele EnumWindows(@EnumWindowsProc,LongInt(Self)); end;

Delphide Yazlan Kodla Exe altrma


Aadaki rnek kod verilen web sitesini Internet Explorer' altrarak aar. procedure TForm1.Button1Click(Sender: TObject); begin winexec('C:\Program Files\Internet Explorer\iexplore.exe www.programlama.com',SW_MAXIMIZE); end;

Bir Harddiskin Seri Numarasnn Bulunmas


Hard diskin seri numaras n bulur. procedure TForm1.Button1Click(Sender: TObject);

var VolumeSerialNumber : DWORD; MaximumComponentLength : DWORD; FileSystemFlags : DWORD; SerialNumber : string; begin GetVolumeInformation('C:\', nil, 0, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, nil, 0); SerialNumber := IntToHex(HiWord(VolumeSerialNumber), IntToHex(LoWord(VolumeSerialNumber), 4); Memo1.Lines.Add(SerialNumber); end; 4) + '-' +

Windows'un Belgeler Mensn Temizleme


Formun uses ksmna ShlOBJ eklinde ilave yapn; bir butona veya herhangi bir olayn event' ine de ; SHAddToRecentDocs(SHARD_PATH, nil); eklinde yazn.

Ekran Grnts Aktarma


Belirttiiniz snrlar dahilinde ekrann belli bir alann formunuzun zerine koymak isterseniz. Formunuza image1 adl bir resim objesi ekleyin ve daha sonra formunuzun create olayna u kodu yazn. procedure TForm1.FormCreate(Sender: TObject); var DCDesk: HDC; begin DCDesk:=GetWindowDC(GetDesktopWindow); BitBlt(Image1.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,DCDesk, 0, 0,SRCCOPY); ReleaseDC(GetDesktopWindow, DCDesk); end;

Mouse Pointer Gizlemek

Mouse Pointer gizlemek iin ShowCursor(False) komutunu kullanmak yeterli. Tabi yeniden grnmesini sa lamak iin ShowCursor(True) komutunu kullanyoruz.

mlecin Ekrandaki Yerinin Belirlenmesi


mlecin o anda ekrann neresinde olduunu bulan ufak bir kod paras. procedure TForm1.Button1Click(Sender: TObject); var Yer:TPoint; begin if Assigned(ActiveControl) then begin Yer:=Point(0,0); { burda 0,0 imle'in ekrandaki yeri oluyor } ActiveControl.ClientToScreen(Yer); SetCursorPos(Yer.X,Yer.Y); end; end;

Balat Mens Programlarnn Tespit Edilmesi


Balat mensnde hangi programlar n bulunduunu tespit eden bir kod paras. Forma bir ListBox, bir Buton, birde DDEClientConv nesnesi ekleyip, Service ve Topic zelligini "Progman" olarak giriniz. var B:Pchar; procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.clear; B := DDEClientConv1.RequestData('Groups'); ListBox1.Items.SetText(B); StrDispose(B); end;

Register Kullanm rnei

Windows alrken programnzn otomatik olarak balatlp balatlmamasn nasl ayarlarsnz. te size gzel bir rnek kod. Formunuza CheckBox Ekleyin ve ad n Autorun yapn. ( veya ne isterseniz. ) ve formun Close Olayna Aadaki kodlar yazn. procedure Tfilesetup.FormClose(Sender: TObject; var Action: TCloseAction); var AppExe :string; begin if autorun.Checked=true then begin with TRegistry.Create do try RootKey := HKEY_CURRENT_USER; if OpenKey ('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', true) then AppExe:=#34+Application.Exename+#34; WriteString('Proton', AppExe); finally end; end; //DeleteValue('Proton'); se Programnz Registry den Siler end;

Ekran znrlnn Deitirilmesi


Programnzdan ekran znrl n deitirmek isterseniz yararl bir kod. {Ekran znrl rnei-PC'nizin Mevcut Ekran Ayarlar} // AnaForm zerine ListBox1 ve Button1 bile enlerini yerle tirin {Ana formun OnCreate olay} procedure TForm1.FormCreate(Sender: TObject); var i : Integer; DevMode : TDevMode;

begin Button1.Enabled:=False; i := 0; while EnumDisplaySettings(nil,i,Devmode) do begin with Devmode do ListBox1.Items.Add(Format('%dx%d dmBitsperPel])); Inc(i); end; end; {ListBox1'in Onclick olay} procedure TForm1.ListBox1Click(Sender: TObject); // Listede istenilen znrlk de eri seildiinde Button1'de kullanr hale getir begin Button1.Enabled := Listbox1.ItemIndex >= 0; end; procedure TForm1.Button1Click(Sender: TObject); // Seilen znrlk de erini deerini uygula var DevMode : TDevMode; begin EnumDisplaySettings(nil,Listbox1.ItemIndex,Devmode); ChangeDisplaySettings(DevMode,0); end; Ekran znrlnn ekran tarafndan desteklenmeyen deerlere ayarlanmas ekrannzn bozulmasna neden olabilir. %d Colors',[dmPelsWidth,dmPelsHeight,1 shl

Mouse'un Sa Tuuna Kullanmak


Mouse'un sa tuunun kullanmn anlatan kk bir kod.

//bu rnekte form zerinde mouse'un sa tuuna baslnca merhaba yazan bir mesaj kar procedure TForm1.FormMouseDown(Sender: TShiftState; X, Y: Integer); begin if ssright in shift then begin MessageDlg('Merhaba', mtInformation, [mbOk], 0); end; end; TObject; Button: TMouseButton; Shift:

Varsaylan Browser ile Web Adresi Amak


Programnzdan herhangi bir internet adresini amak ister misiniz? Aadaki kodu girmeden nce programn uses komut satrna "Shellapi" tan mn girmelisiniz. ShellExecute(0, nil, 'http://www.programlama.com', nil, nil, SW_SHOWDEFAULT);

Saylar Formatl Yazdrmak


Eer bir ticari program yazyorsanz, veritabannda bulunmayan bir alanda para ya da benzeri cinsten bir byklk gstermek istiyorsanz, ve mteriniz sizden rahat okuma talep etmise aadaki kod iinizi grecektir. procedure TForm1.Button1Click(Sender: TObject); var a,i:integer; s:string; begin s:=Edit1.Text; i:=length(s); if pos(',',s) <>0 then exit; for a:=1 to i-1 do if (a mod 3)=0 then insert(',',s,i-a+1); Edit1.text:=s; end;

Final Diyalounu Ap Kapatmak

Find diyalog penceresini a p kapatan bir kod. H:=FindWindow(PChar('#32770'),Nil); // #32770 Find diyalog'un s nf addr. If H = 0 Then // eer Find diyalog'u a k deilse onu a... Begin With dd1 Do Begin ConnectMode:=ddeManual; ServiceApplication:='explorer.exe'; SetLink('Folders','AppProperties'); OpenLink; ExecuteMacro('[FindFolder(,C:\Dene)]',False); CloseLink; End; H:=FindWindow(PChar('#32770'),Nil); End; ShowMessage('Find File Dialogunu gizle...!!'); ShowWindow(H,SW_HIDE); ShowMessage('Find File Dialogunu gster...!!'); ShowWindow(H,SW_SHOW);

Ana Formunuzu Gizleyin


Programnz altnda Ana Formunuzun grnmesini istemiyor musunuz? ok kolay aadaki kodu projenize ekleyin. program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.RES} begin

Application.Initialize; Application.ShowMainForm := False; Application.CreateForm(TForm1, Form1); Application.Run; end;

You might also like