30 Mart 2012 Cuma

FOR Döngüsü Kullanarak Aynı İşlemi Nasıl Yaparız ?

FOR döngüsünü kullanarak rakamları tek tek yazmaktan kurtulmuş oluruz. Yaptığımız bir önceki programın üstünde de FOR döngüsünü kullanabiliriz.
Nasıl mı?

    Öncelikle, Begin , End bloklarının arasına yazdığımız  satırları etkisiz hala getirmek için çift taksim kullunmamız gerekiyor.

begin
//t:=1+2+3.........+9+10;
//edit1.text:=inttostr(t);
end;

Bu işlemi tamamladıktan sonra yapacağımız işlem sıralaması şöyle olmalı;
Önceki programı aynen yazıp yeni eklediğim yerleri kırmızı ile yazacağım.


var
a,t:integer;
begin
//t:=1+2+3........+9+10;
//edit1.text:=inttostr(t);
t:=0;
for a:=1 to 10 do begin
t:=t+a;
end;
edit1.text:=inttostr(t);
end;
end.

(Açıklama)

        *Döngü için bir değişken daha tanımlıyoruz ve önceki satırların alt kısmına gelerek t:=0 yazıp t'mizi sıfırlıyoruz.Daha sonra döngümüzü açıp toplama yapmasını istediğimiz rakam aralığını yazıyoruz. Ve sonucu göstermek istediğimiz alanı belirtip programı bitiriyoruz.*

DELPHİ Programlama Dili ile Basit Bir İşlem Yapma

Form alanınıza işleminizin sonucunu gösterecek bir edit kutusu veişlemi yapacak bir buton yerleştirin. Daha sonra işlem butonunuzun adını yapacağınız işleme göre adlandırabilirsiniz.  Ben basit bir toplama işlemi yapacağım fakat, sizinyapacağınız işlemler : Çıkarma,bölme,çarpma v.s olabilir.

Butonunuzu adlandırdıktan sonra edit kutunuzun içersini temizleyin. Daha sonra butonunuza çift tıklayarak programın kod alanına giriş yapın.

NOT : 1-formunuz ile kod alanınız arasındaki geçişlerde F12 tuşunu kullanabilirsiniz.
           2-Programı çalıştırmak için F9 tuşunu yada run komutunu kullanabilirsiniz.

Kod kısmında yapacağınız işlem sıralaması şöyle olmalı ;


var


t:integer;


begin


t:=1+2+3..........+9+10;


edit1.text:=inttostr(t);


end;
end.

(Açıklama)

* Toplama işlemi için değişkenimizi (t) olarak atayıp integer türünde tanımlıyoruz.*
*Programı başlat komutunun alt kısmına (değişken:=toplamak istediğimiz rakamlar;)*
*Sonucu göstermesini istediğimiz alanı yazarak integer olan sayımızı string'e çeviren komutu yazıyoruz.*
*Ve programı bitiriyoruz.*

19 Mart 2012 Pazartesi

18 Mart 2012 Pazar

Veri Tabanı Uygulamaları

1-Borland Database Engıne

Jet, Btrieve gibi veritabanı motorlarını duymuşsunuzdur. Delphi sistemi veritabanlarına BDE (Borland Database Engine) ile erişir. BDE, bütün Borland yazılımlarında yerel ve uzak veritabanlarına erişmek için kullanılır.

BDE kullanımının üstünlükleri:

1. dBase ve Paradox veritabaları ile veri alışverişi sağlar.

2. Veritabanı erişimini BDE yerine getirdiği için programcı yalnızca BDE'yi kullanmayı öğrenir.

3. Veritabanı uygulamanın dışında yerel ya da uzak bir şekilde olabilir.

BDE, Oracle, Sybase, ODBC, Paradox, dBase ve Interbase gibi veritabanlarına erişim destekler. 

Bde Confıg Programı

Delphi kurulduğunda BDE Configuration program da kurulur. Program gerçekte bir BDE arabirimidir. Program veritabanı erişimi için farklı yapılandırmaları destekler.

Programı yapılandırmada kullanılacak sekmeleri:

Drivers: Sürücüler listesi.

dBase: dBase tabloları. 
  
Paradox: Paradox tabloları. 

2-Veri Tabanı Uygulamaları  

A-Ado

 ADO, Microsoft uyumlu ve diğer veritabanlarına erişim için kullanılan bir veri erişim tekniğidir.

ADO, DAO ya da RDO  arabirimlerine gereksinim duymadan verilere erişimi sağlayan bir arabirimdir. ADO, özellikle SQL Server gibi Microsoft OLEDB veri sağlayıcısının (data provider) kaynaklarını kullanmak üzere tasarlanmıştır. 

















B-Veri Tabanı Bağlantıları

ADO bileşenleri kullanarak bir veritabanı (SQL Server) bağlantısı gerçekleştirmek için form üzerinde ADO Connection, DataSet bileşenlerine gereksinim vardır. Bunun yanı sıra bir Grid ve verilerin Grid'e bağlamak için bir DataSource kontrolüne gereksinim duyulur.

 ADO Connenction nesnesi istenilen veritabanına bağlanmak üzere düzenlenir. 
























Ardından bu bağlantı DataSet'e Connection özelliği ile bağlanır. 























Ardından bu bağlantılar DataSource bileşeninin DataSource özelliğine ADODataset bileşeni bağlanır. Ardından bu veriler gride bağlanır. 




















3-Uygulamalar

Veritabanı bağlantısıyla bağlanılan bir tabloyu form üzerinde bir grid aracılığıyla getirmek.

Veritabanı Uygulaması:

Formu üzerine ADO bileşenlerinden Adoconnection, Data Access bileşenlerinden DataSource, Datacontrol bileşenlerinden Dbgrid yerleştirilir.

ADOConnection1:

Veritabanı bağlantısı seçilir.

Connected = True
Login Prompt: False

ADO Table 1:
  
Connection=ADOConnection1
Tablename=tablo adı
Active=True

Datasource1:

Dataset=Adotable1

DbGrid1:
Datasource=datasource1

Uygulama Ekranı 1: 


















Uygulama Ekranı 2: 


Program Denetimi


Program denetimi program kodlarının işletilmesi sırasında döngüler, sapmalar gibi yapıların oluşturulmasını sağlayan mekanizmadır. Delphi programının işletilmesinde kod blokları da önemli rol oynar.

Program denetiminin ana yapıları:
  • Karar (selection)
  • Döngü (loop, iteration)
  • Atlama (jump)
Klasik (geleneksel) programlamada programın akışı sıradan gider. Diğer bir deyişle programın işletimi, deyimlerin sırasıyla yürütülmesiyle (satır satır) devam eder. Bir karar, döngü ya da bir atlama deyimi ile karşılaşılması durumunda programın akışını değiştirir.

Ana karar yapıları şunlardır:
  •  If..Else   
  •  Switch
 Döngüler özellikle programın etkinliği bakımından önemli bir programlama tekniğidir.

Döngü Yapıları:
  • While
  •  Do
  •  For
  •  Foreach
 Atlama (Jump) yapıları ise program denetimini hiçbir koşula bağlı olmadan (doğruda) bir diğer deyime geçirir.

Atlama deyimleri:
  • Goto
  • Break
  • Continue

1-If.Then.Else Yapısı

Yapısı:

IF <koşul> THEN <doğru olduğunda çalışacak kod> ELSE <yanlış olduğunda çalışacak kod>;

IF yapısı true ya da false değerinden birisini döndürür.

Örnek:

If yasi >= 18 then

    yetiskin:=true

else

    yetiskin:=false;

Basit bir koşul için tek parçalı bir IF yapısı yeterlidir:

Örnek:

If sonuc=true then

    exit;

Örnek:

If yasi>=18 then

Begin

    yetiskin:=true;

    ucret:=1000;

end

else

Begin

    yetiskin:=false;

    ucret:=500;

end;

DİKKAT: Else deyiminden sonra ; işaretinin kullanılmaz.

2-For.To/Downto.Do.; Yapısı

Bir grup kodun belli bir sayıda yinelenmesi gerekebilir. Örneğin birden ona kadar saymak gibi.

Örnek:

For x:=10 downto 1 do y:=y+1;

Yukarıdaki kod ile y'nin değeri bir artırılır.

x:=10;

y:=y+1;

x:=9;

y:=y+1;

x:=8;

y:=y+1;

x:=7;

y:=y+1;

x:=6;

y:=y+1;

x:=5;

y:=y+1;

x:=4;

y:=y+1;

x:=3;

y:=y+1;

x:=2;

y:=y+1;

x:=1;

y:=y+1;

Farklı döngü adımları da kullanılabilir:

for i:=2 to 10 step 2 do.....

3-While.Do.; Yapısı

While.do döngüleri de bir tür yineleme mekanizmasıdır. Repeat deyimine çok benzer ancak tek farkı While döngüsünde döngüye girmeden önce soru sorulur. Döngü koşulu sağlanırsa döngüye girilir, sağlanmazsa girilmez.

Örnek:

While x<10 do x:=x+1;



Programlama Temelleri


Object Pascal, nesne yönelimli özelliklerinin dışında söz dizim kullarına sahiptir:

 Bütün Delphi kodları ; ile sonlandırılır.

Eşittir işareti := şeklinde belirtilir.

= işareti ise karşılaştırma işleminde kullanılır. 


Procedure ve Fonksiyonlara Giriş

Procedure ve Fonksiyonlar
Prosedure ve fonksiyonlar program kodlarının modüler kısımları olup özel görevler üstlenirler.Bunlar aynı zamanda "Altprogram" olarakta bilinirler.Delphi uygulamaları geliştirmek için çok sayıda hazır procedure ve fonksiyonu kullanıcının hizmetine sokar.

Procedure ve fonksiyonlar nesnelerle birlikte kullanıldığı zaman metod adını alırlar.


PROSEDURLER
bir procedur su sekilde tanımlanır:



procedure procedureadı(giriş parametreleri:tipi); sabit,değişken,tip tanımı begin program kodları; [exit;] end;
procedureadı:procedure verilecek addır.
girişparametreleri:çağrıldığı yerden gönderilen bilgilerdir.
sabitdeğişkentiptanımı:proceurenin kullanılacağı değişkenler,sabitler veya tipler bu blokta tanımlanır.bu bölumde tanımlanan değişkenler local değişkenlerdir.
program kodlar:bu kısımda procedurun yapması gerken işi belirleyen kodlar bulunur.
normalde bir procedure bloğun sonuna kadar çalışır.Ancak belirli şartlar gerçekleştiğinde tamamı çalışmadan çıkmak için Exit komuyu kullanılır.


Procedre Çağırma:
procedure çağırma işlemi de procedure ismi ile parametreleri verilerek yapılır.

evciz(1001006080);
bu kodu bir komut düğmesinin click olay alt programına yazarsak düğme tıklandığında ev çizilicektir.



proceure Tform1.button1click(sender:tobject); begin evciz(100,100,60,80); end;


FONKSİYONLAR
Bir fonksiyon ise su sekilde tanımlanır:



functon fonksiyonadi(girişparametreleri:tipi):fonktipi; sabit,değişken,tiptanımı; begin program kodları; [exit;] fonksiyonadi:=deger; end;
Procedure tanımında farklı olarak fonksiyon geriye bir değer göndereceği için bu değerin tipi fonksiyon tanımından sonra fonktipi parametresi ile belirlenir.ayrıca geri dönecek değer, fonksiyon adına ya da result
ifadesine atanan değer ile yapılır.




functon fonksiyonadi(girişparametreleri:tipi):fonktipi; sabitdeğişken,tiptanımı; begin program kodları; [exit;] result:=deger; end;
Fonksiyon Çağırma
fonksiyon çağırma işlemi bir procedure çağırma işlemi gibidir.Ancak fonksiyondan değer geriye döneceği için,sonucun bir değişkene aktarılması gerekir.


x:=fak(10);
bir komut düğmesiyle sonucu edit1 kutusuna yazmak için;

Kara Yapıları
Bu bölümde karar yapılarını ve döngüleri bulacaksınız.Programlamada çoğu kere birden fazla şart arasında bir seçeneği seçmek ve programı seçilen seçeneğe göre dallandırmak gerekir.İşte bu durumlarda karşımızdaki problemin yapısına göre kara ifadelerini kullanırız.

Bu bölümde karar yapılarından if yapısını,case yapısını bulacaksınız.


Karar Yapıları

Programlar normalde satır satır çalışırlar.İstenirse belirli şartlar aranarak programın bir kısmının çalıştrılmasını veya çalıştırılmamasını sağlayabiliriz.
1-Yordamlar (Procedures)

Bir procedure,bir seferde çağırılabilen bir kod parçasıdır. Yordamlar parametre de kabul edebilirler.

Örnek:

procedure TColorBox.Button1Click(Sender: TObject);

 begin

  ColorBox.Color := clGreen;

end;

2-Fonksiyonlar

Fonksiyonlar da procedure yapısına benzerler ancak bir değer döndürürler. Örneğin bir hesaplamayı içeren fonksiyon, o hesaplamaya gereksinim duyulduğunda çağırılarak kullanılır.

Fonksiyon tanımı:

function UcretHesapla(Deger: Double);

 begin

  UcretHesapla=1000;

end;

Fonksiyonu çağırmak:

function UcretHesapla: Double;

3-Kodlama Kuralları

Kodlama kurallarının başında açıklama satırı yamak gelir:

 (* açıklama  *)

{ bu da açıklama }

Delphi'nin kendisi {} metodunu kullanır.

Diğer bir kodlama kuralı da girinti (indent) işlemidir:

 if (form1.caption='Musteri') then

begin

    Form1.caption:='Bizim Form';

end;

Yukarıdaki satırlar tek bir satır olarak yazılabilir, ancak okumak ve gerektiğinde hata kontrolünü daha iyi yapabilmek için girinti kurallarına uyulur:

if (form1.caption='Musteri') then Form1.caption:='Bizim Form';
  
4-Değişkenler

Uzunca bir zamandır, değişkenleri (variables) şu şekilde tanımlarız: uygulamalarda verileri temsil etmek, işlemek ve saklamak için yapılan tanımlamalarda kullanılan sözcüklere değişken denir.

Uygulama içinde "ücret" bilgisini temsil etmek için Ucret ya da HesUcret gibi bir değişken tanımlanır. Ardından bu değişkene değerler atanarak işlemler yapılır.

İPUCU: Genellikle küçük harf ve büyük harfle başlayan değişken adlandırma kullanılır. Örneğin: PersonelUcreti gibi.

 Değişkenlerin türleri:

Gerçek Sayılar  Real, Single, Double, Extended, Comp

Integers Integer, Shortint, SmalIint, LongInt,  Byte, Word, Cardinal, Boolean, ByteBool, WordBool, LongBool, Char

Strings String,Pchar

 Örnek:

var

    x : integer;

begin

    x:=5;

end;

Değişkenler Var anahtar sözcüğüyle bildirilirler.

Örnek:

var

    x : integer;

    adresi: string;

5-Begin End Blokları

Begin ve End blokları bir grup kodu ifade ederler.

Örnek:

Begin

    x:=5;

    adresi:='1234 sokak no 1';

end;

Object Pascal

Object Pascal


Object Pascal, Delphi içinde kullanılan programlama dilidir. Turbo Pascal'a benzer ve nesne yönelimli bir programlama dilidir. Bu anlamda object pascal dili nesne yönelimli program tasarımını ve modern gereksinimleri karşılayabilecek kodlama olanaklarına sahiptir. 

1-Bildirimler

Object Pascal dili özellikleri arasında koşullu derleme bildirimleri gelir. Bu bildirimler işletim sisteminin (platform) seçilmesi gibi derleyiciyi yönlendirir.


$IF

$ELSEIF

$WARN

$MESSAGE


$IF bildirimi:

 Belli bir simgenin tanımlı olup olmadığını öğrenmek için kullanılır.



Const

            Hatakontrol = 1;

            {$IF Defined(DEBUG) and (hatakontrol > 2)}

            Showmessage ('mesaj');

{$IFEND}

2-Sınıf ve Nesneler

Sınıflar bir durumu ve belli davranışları olan kullanıcı tanımlı bir veridir. Sınıflar class sözcüğüyle tanımlanırlar. Nesneler ise sınıfların örnekleridir.

Bir sınıf türünü tanımlamak:

 Type

            TDuzenle = class

            Ay, Gun, Yil: Integer;

            Procedure DegerVer (g, a, y: Integer);

            
 Sınıf tanımlamak:
  
 procedure TDuzenle.DegerVer (g, a, y: Integer);

            begin

                        Gun:=g;

                        Ay:=a;

                        Yil:=y;

            End;

 Sınıf tanımlandıktan sonra nesye yaratılabilir:

var

                        Tarih: TDuzenle;

            begin

                        // bir nesne yarat

                        Tarih:= TDuzenle.Create;

                        Tarih.DegerVer (1, 1, 2003)

            end;

3-Bir Delphi Nesnesi

Yeni bir proje yarattığınızda, Delphi şekillendirebileceğiniz bir yapı sunar. Code Editor içinde Delphi yeni bir sınıf türü tanımlar.


unit Unit1;

interface

 uses Windows, Classes, Graphics, Forms, Controls, Dialogs;

type


 TForm1 = class(TForm)         { tür bildirimlerinin başı. }

  private

    { Private bildirimler.}

  public

    { Public bildirimler. }

  end;    { tür bildirimlerinin sonu.}

 var

Form1: TForm1;

 implementation  { implemente işlemlerinin başı. }

 {$R *.DFM}

end.      { implemente işleminin ve unitin sonu. }


 Yeni sınıf türü TForm1'dır ve TForm sınıfından türetilir.

Bu değişken Form1 adlı yeni bir değişkeni bildirir:

var

 Form1: TForm1;

Form1, TForm1 sınıfından örneklenir. Örneğin form üzerine bir düğme eklendi ve OnClick olayına kod yazıldı:


procedure TForm1.Button1Click(Sender: TObject);


begin

  Form1.Color := clGreen;

end;

Nesneler diğer nesneleri birer veri alanı olarak içerirler. Form üzerine yeni bir bileşen eklediğinizde yeni alan formun tür tanımında görünür.


unit Unit1;

interface

uses Windows, Classes, Graphics, Forms, Controls;

type


  TForm1 = class(TForm)

    Button1: TButton;     { yeni veri alanı.}

    procedure Button1Click(Sender: TObject);   { Yeni metot bildirimi.}

  private

    { Private bildirimler.}

  public

    { Public bildirimler.}

  end;

var

 Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);     { Yeni metodun kodu.}

begin

  Form1.Color := clGreen;

end;

 end.

17 Mart 2012 Cumartesi

Programları Derlemek ve Çalıştırmak

1-Programları Derlemek ve Çalıştırmak


Delphi'nin başlatılmasıyla uygulama başlandığını ve yapılan tasarım ve kodlama çalışmalarının ardından F9 tuşuyla programın çalıştırıldığını belirtmiştik.




F9 tuşu ya da Run komutunun seçilmesiyle Delphi şu işlemleri yapar:


  •  Pascal kaynak kodlarını derler. Varsa hataları işaret eder.
  •  Proje dosyasını derler.
  •  EXE dosyasını oluşturur.
  •  İşletilebilir (EXE) dosyası çalıştırır.


2-Hata Giderme (Debuggıng)


Delphi 7 yeni hata giderme araçlarına sahiptir. Hata gidermenin ilk aşaması derleyicidir. Derleme sırasında kodların hataları kontrol edilir ve bulunan hatalar raporlanır










3-Pause


Delphi IDE içinde çalışan bir programı durdurmak için, Run menüsünden Program Pause komutu seçilir ya da Pause düğmesi tıklanır. Bu çalışan uygulamanın durmasını ve gerekli hata giderme çalışmalarının yapılmasını sağlar.


Programı yeniden başlatmak için:


Yeniden Delphi IDE'sinde Run menüsünden Program Reset komutunu seçin. .


4-BreakPoınt


Breakpoints (kesme noktaları) programın belli bir satırda durmasını ve o andaki durum üzerinde kontroller yapılmasına olanak sağlayan bir program denetimi tekniğidir.


Kod satırına bir kesme noktası yerleştirmek için:


Kod satırının başına tıklayın ve bir Stop işaretinin oraya eklendiğine dikkat edin.


Ardından programın çalışması bu noktada kesilir. Bu kesilmenin ardından programcı program değişkenlerinin bu aşamada değerlerini kontrol eder.


5-Steppıng


Bir breakpoint aracılığıyla program durdurulduktan sonra program işleyişine adım adım devam edilmek istenebilir. İşte bu olanak step over seçeneği ile sağlanır. Program adım adım işletilmesi F8 tuşu ile ya da Run menüsünden seçebileceğiniz Step Over komutu ile sağlanır.


6-Derleme Hataları


Aşağıdaki tabloda yaygın karşılaşılan derleme hataları:


  1. Out of memory
  2. Identifier expected
  3. Unknown identifier
  4. Duplicate identifier
  5. Syntax error
  6. Error in real constant
  7. Error in integer constant
  8. String constant exceeds line
  9. Unexpected end of file
  10. Line too long
  11. Type identifier expected
  12. Too many open files
  13. Invalid filename
  14. File not found
  15. Disk full
  16. Invalid compiler directive
  17. Too many files
  18. Undefined type in pointer definition
  19. Variable identifier expected
  20. Error in type
  21. Structure too large
  22. Set base type out of range
  23. File components may not be files or objects
  24. Invalid string length
  25. Type mismatch
  26. Invalid subrange base type
  27. Lower bound greater than upper bound
  28. Ordinal type expected
  29. Integer constant expected
  30. Constant expected
  31. Integer or real constant expected
  32. Pointer type identifier expected
  33. Invalid function result type
  34. Label identifier expected
  35. BEGIN expected
  36. END expected
  37. Integer expression expected
  38. Ordinal expression expected
  39. Boolean expression expected
  40. Operand types do not match operator
  41. Error in expression
  42. Illegal assignment
  43. Field identifier expected
  44. Object file too large
  45. Undefined external
  46. Invalid object file record
  47. Code segment too large
  48. Data segment too large
  49. DO expected
  50. Invalid PUBLIC definition
  51. Invalid EXTRN definition
  52. Too many EXTRN definitions
  53. OF expected
  54. INTERFACE expected
  55. Invalid relocatable reference
  56. THEN expected
  57. TO or DOWNTO expected
  58. Undefined forward
  59. Invalid typecast
  60. Division by zero
  61. Invalid file type
  62. Cannot Read or Write variables of this type
  63. Pointer variable expected
  64. String variable expected
  65. String expression expected
  66. Circular unit reference
  67. Unit name mismatch
  68. Unit version mismatch
  69. Internal stack overflow
  70. Unit file format error
  71. IMPLEMENTATION expected
  72. Constant and case types do not match
  73. Record or object variable expected
  74. Constant out of range
  75. File variable expected
  76. Pointer expression expected
  77. Integer or real expression expected
  78. Label not within current block
  79. Label already defined
  80. Undefined label in preceding statement part
  81. Invalid @ argument
  82. UNIT expected
  83. ";" expected
  84. ":" expected
  85. "," expected
  86. "(" expected
  87. ")" expected
  88. "=" expected
  89. ":=" expected
  90. "[" or "(." expected
  91. "]" or ".)" expected
  92. "." expected
  93. ".." expected
  94. Too many variables
  95. Invalid FOR control variable
  96. Integer variable expected
  97. File and procedure types are not allowed here
  98. String length mismatch

16 Mart 2012 Cuma

Code Editör


Code Editor, Delphi içinde programı oluşturan kodların yazıldığı bir metin düzenleyicidir. Editor bir dizi taba sahip sayfalardan oluşur. Her bir sayfa tek bir Delphi Project Unit için kodları içerir: Bir unit .PAS dosyası olarak saklanır ve uygulamanın görünmeyen elemanlarını içerir. Bazı uniteler ise kendisine ait forma sahip değildir, ancak form dosyasıyla aynı adı paylaşır. Normalde form dosyası .DFM dosyası olarak saklanır.