Professional Documents
Culture Documents
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.
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;
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.
kutusundan eklemek istenilen kontroln hangi ksma eklenece i seildikten sonra Install dmesi ile Delphi'ye al nabilir.
Var a,b : integer ; i : integer ; aciklama : string ; Medenihal : Boolean ; kesirli : real ;
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.
Or 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;
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';
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.
Pointer Kullanm
Pointer, tiplerin nne ^i areti koyularak tanmlanrlar. rnek: var x : ^integer ; y : ^string ;
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 ;
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 ;
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.
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.
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.
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.
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 ;
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.
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 ;
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 ;
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.
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.
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;
//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;
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) + '-' +
Mouse Pointer gizlemek iin ShowCursor(False) komutunu kullanmak yeterli. Tabi yeniden grnmesini sa lamak iin ShowCursor(True) komutunu kullanyoruz.
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;
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
//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:
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);