
|
 |
DERSLER |
DELPHI
Delphi programlama dili 'nin,temeli Pascal dilidir.Özellikle
nesne yönelimli programlama anlayışıyla yapılandırılmış Turbo Pascal dilinin görsel
sürümü denilebilir.Nesne,sınıf,kalıtım,fonksiyon aşırıyükleme(overloading) gibi
temel nesneye yönelik programlama tekniklerini ve daha fazlasını içeren ve c++ den
aşağı kalmayan güçlü ve esnek bir programlama dilidir. Borload tarafından geliştirilmektedir.
Win32 ve .NET platformları üzerinde yazılım geliştirmeye olanak sağlar. GNU/Linux
platformu üzerinde geliştirme imkanı sağlayan Kylix isimli bir sürümü de bulunmaktadır.
Delphi programlama dili nesne yönelimli bir dil olduğu için eklenen bütün nesnelerin
(Formlar da dahil) kodlarını oluşturur. Bu kodları "Unit" ler içerisinde barındırır.
Aşağıda örnek bir Delphi kaynak kodu görülmektedir. Örnekte
form üzerindeki buttona tıklandığında 'Merhaba Dünya' mesajı verir. Delphi tarafından
oluşturulan koda programcının eklediği satır açıklama ile belirtilmiştir.
Bu örnek programcı sadece button1 içine ShowMessage('Merhaba Dünya') komutunu yazıyor
ve button1. tıklandığında ekrana "merhaba dünya" mesajını veren bi program yapmış
olur.
OBJECT INSPECTOR
Delphi bir görsel programlama dilidir. Görsel dillerde program akışı olay temeline dayanır. Yani klasik programlamadaki gibi program kodu yukarıdan aşağıya ilerlemez. Programın devam etmesi için klavye veya fare hareketine ya da bir zamanlayıcıya ihtiyaç vardır (yani zamanı gelince işlem gerçekleşir). Object Inspector penceresindeki Properties ve Evet sekmeleri bize kolaylık sağlar.Örneğin bir texbox içine yazdığımız yazıyı her zaman büyük harfle yazmamızı sağlar.
|
Form Properties özellikleri:
Aling : Form’ un çalıştırıldığında form ekranın neresinde olacağı belirtilir.
- alBottom : form ekranın altını kapsayacak bir şekilde çalışır.
- alClient : Form çalıştığında ekranın hepsini kapsar.
- alCustom : Form çalıştığında ilk haliyle ekranın ortasında çalışır.
- alLeft : form çalıştığında ekranın sol kapsayacak şekilde
çalışır.
- alRight : form ekranın sağ sol kapsayacak çalışmaya başlar.
- alTop : Form ekranın üst kısmını kapsayacak şekilde
çalışır.
AlphaBlend : Form’un şeffaflığının ayarlanmasını sağlar. Bu özellik aynı
zaman AlphaBlendValue özelliğiyle kullanır.AlphaBlend özelliği true yapıldıktan
sonra 255 küçük bir değer verilirse form şeffaflığı görünür .
BorderIcons : Bu özellikle Formumuzun Ekranı kapla,simge durmuna getir ve
kapat tuşlarını kapatıp veya istediklerimizi aktif duruma getirebiliriz.
- biSystemMenu : bu özellik False olursa form çalıştığında kapat, simge durmuna
getir ve ekranı kapla düğmelerini göremeyiz.
- biMinimize : Bu özellik false olursa form çalıştığında simge durmuna getir
pasif olur.
- biMaximize: Bu özellik False olursa Form çalıştığında Ekranı kapla pasif
duruma gelir.
|
Caption : Bu özellikle Formumuzun adını değiştirebiliriz.
ClientHeight : Bu özellikle Formun yükselliği ayarlanır.
Clientwidth : Bu özellikle Formun genişliği ayarlanır.
Color : Bu özellikle Formun rengini değiştirebiliriz.
Constraints : Bu özellikle form yüksekliği ve genişliğinin en fazla veya
en az ne kadar olacağı belirtilir.
- MaxHeight : Bu özellikle formun yüksekliliğinin en fazla ne kadar olabileceği
belirtilir.
- MaxWidth : Bu özellikle formun genişliğinin en fazla ne kadar olabileceği
belirtilir.
- MinHeight : Bu özellikle formun yüksekliliğinin en az ne kadar olabileceği
belirtilir.
- MinWidth : Bu özellikle formun genişliğinin en az ne kadar olabileceği belirtilir.
Cursor : Bu özellikle imleç özelliğini değiştirebiliriz.
Font : Bu özellikle form’ un yazı tipini, rengini, boyutu ve stil özelliklerini
değiştirebiliriz.
- Name : Bu özellikle yazı tipini ayarlayabiliriz.
- Color: Bu özellikle yazı rengini ayarlayabiliriz.
- Style
- fsBold : Bu özellikle true yaparsak kalın olmasını sağlarız.
- fsitalic : Bu özellikle true yaparsak italic olmasını sağlarız.
- fsUnderline : Bu özellikle true yaparsak altı çizili olmasını sağlarız.
Position : Bu özellikle formun ekranın neresinde çalışacağı belirtilir. poDesktopCenter
özeliğini seçerek ekranın tam ortasında çalıştırabiliriz.
CharCase : Bu özellik edit1.text gerilen yazıların hepsinin büyük veya küçük
olmasını sağlarız.
- ecNormal:Edit yazılan yazılar normaldir
- ecLowerCase :Edit yazılan yazılar hepsi küçük harflerle yazılır.
- ecUpperCase :Edit yazılan yazılar hepsi büyük harflerle yazılır.
 |
Event Olayları
Onclick : Form 1 kere tıkladığında yapılacak görevleri belirlemek için kullanılır.
Örneğin: Forma tıkladığında edit1 içine karaelmas yazdıran program:
procedure TForm1.FormClick(Sender: TObject);
begin
edit1.Text := 'karaelmas ';
end;
OnDbclick : Form 2 kere tıkladığında yapılacak görevleri belirlemek için
kullanılır. Örneğin: Forma 2 kere tıkladığında edit1 içine “karaelmas BMYO” yazdıran
program:
procedure TForm1.FormDblClick(Sender: TObject);
begin
edit1.Text := 'karaelmas BMYO ';
end;
OnColose : Form kapatılırken yapılacak görevleri belirtmek için kullanılır.
Örneğin: form kapatılırken kaydetmek isterimsiniz mesajını gönderen program Bu programda
kullanacağımız showMessage komutu mesaj göstermek için kullanılmıştır. |
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
showMessage ('Kaydetmek istermisiniz?');
end;
OnCreate : Form açıldığında yapılacak görevler belirtmek için kullanılan
event(olay) özelliğidir.. Örneğin form çalıştırılınca edit1 boş gösterecek program:
procedure TForm1.FormCreate(Sender: TObject);
begin
edit1.Text := ' ';
end;
IF... THEN ... ELSE
if komutu ile karşılaştırma yapılır.if komutuyla şart gerçekleştiği zaman yapılacak
görevler else ise şart gerçekleşmediği zaman yapılması gereken görevler yazılır.if
karşılaştırma operatörünü size örneklerle açıklamaya çalışalım.Kullanımı:
if (şart) then komutlar
else komutlar
Örnek: Butona tıklandığında edit1 içine girilen sayının tek mi çift olduğunu label1
yazdıran program yapalım.
procedure TForm1.Button1Click(Sender: TObject);
Var i:integer;
Begin
i :=StrToInt(edit1.text);
if i mod 2 =0 then
label1.caption:=’çift sayı’
else
label1.caption:=’tek sayı’
end;
i değişkenimizi integer tanımladık. StrToInt komutuyla i değişkenizi sayısal
değer vermemizi sağlamış olduk. if i mod 2 =0 then komutlarıyla i edit1.textbox
kutusunda yazdığımız değeri 2 böldürdük kalan sıfır ise label1 çift sayı else (değilse)
tek sayı yazdırır.Not: if i mod 2 =0 then buradaki mod edit1 girilen sayıyı 2 bölümünden
kalanı verir.
FOR DÖNGÜSÜ
For döngüsüyle başlagıç ve bitiş değerine kadar olan program bloglarının çalışmasını
sağlar.Baslangiç Degeri, bitis Değeri den küçükse döngüye hiç girilmez. Sayaç’in
artarak degil azalarak çalismasi için downto deyimi kullanilir. Baslangiç degeri,
bitis değerinden büyükse döngüye hiç girilmez.Kullanımı:
For sayaç:=baslangiç değeri to bitis değeri do
Begin
Komutlar;
End;
Edit1 içine yazılan bir sayının asal olup olmadığını buton1.onclick gerçekleşince
bulan ve bunu label1 içine yazan program:
procedure TForm1.Button1Click(Sender: TObject);
var sayi,a,x:integer;
begin
sayi :=StrToInt(edit1.Text );
a:=-1;
for x:=2 to sayi-1 do
begin
if sayi mod x=0 then a:=+1 ;
end;
if a=1 then label1.Caption :='ASALDIR DEĞİLDİR'
else label1.Caption:= 'ASALDIR';
end;
Değişkenlerimizi tanımladık. Başlangıç değerimizi x:=1 başlatık bitiş değerimizi
sayi-1 edit1 yazdığımız değeri 1 azaltarak bitiş değerimizi belirtik ve if ile x
değişkenimiz sıfır ise a değikenimizi 1 artırmasını sağlanmış oldu. Diğer if döngüsüylede
a değikenimiz bir ise label1 "Asal değildir" değilse "asal" yazdırması sağlamış
olduk.
REPEAT UNTİL DÖNGÜSÜ
Delphide kullanılan döngülerden biride Repeat until döngüsüdür. Bu döngüde Repeat
ile until arasındaki blok Until kelimesinden sonraki kontrol şartı yanlış oldukça
çalışacaktır. Yani Untildeki karşılaştırma doğru çıkana kadar döngüden çıkılmaz.
Bu döngüde kontrol sonda yapıldığı için döngüden hemen çıkılsa bile döngü içerisindeki
kod en az bir defa çalıştırılacaktır. Buna dikkat edilmelidir. Eğer ters karşılaştırma
yapılması isteniyorsa yani şart oluştuğunda döngüden çıkılması isteniyorsa döngü
Not operatörü ile kullanılabilir.
Aşağıda DBGrid içinde bulunan “Toplam” sütunu içerisindeki rakamları (Real veya
Currency) tüm satırlarını toplatıp Label1 içerisine yazan program .
procedure TForm1.Button2Click(Sender: TObject);
var toplam:real;
begin
toplam:=0;
Adotable1.First;
Repeat
Toplam:=Toplam+Adotable1Toplam.AsCurrency;
Adotable1.Next;
Until(Adotable1.Eof)
Label1.Caption:=FloatToStr(toplam);
end;
ACCESS VERİ TABANINA BAĞLANMA
Formunuza AdoConnection,Adotable,DataSource ve DBGrid ekleyin.AdoConnection
Obeject inspector kısmından ConnectionString gelerek yanında bulunan noktalara tıklayınız.

Karşınıza gelen yukarıda resimde bulunan Build butonuna tıklayınız.

Microsolf Jet 4.0 ole db Provider seçtikten sonra ileri butonuna tıklayınız. Sonraki
Aşamada veri tabanını seçin. Adotable connection özeliğini AdoConnection1 yapın
ve TableName kısmında tablonuzu seçin.Active kısmınıda true yapmayı unutmayın.DataSoruce
properties özeliklerinden dataset Adotable1 yapın ve Dbgrid DataSource özeliğini
DataSoruce1
yapın. Böylce Access veri tabanını bağlamış olursunuz
Veri tabanına Kayıt Ekleme :
Örneğimizde 1 tane Adoconnection,Adotable,DataSoruce ve Dgrid ekleyin. Veri tabanızdaki
alanlar kadar Dbedit kullanın Dbeditlerin Properties'ten Datasoruce özeliklerini
DataSoruce1 yapınız ve DataField özeliğini ise veri tabanındaki alanlarla
ilişkilendirmesini yapınız.Veri kaydetmek içinde 1 tane buton form ekleyiniz.
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOTable1.Edit ;
ADOTable1.Post ;
end;
Seçilen Veriyi Silme :
Örneğimizde 1 tane Adoconnection,Adotable,DataSoruce ve Dgrid ekleyiniz.Veri silmek
içinde 1 tane buton forma ekleyiniz.
procedure TForm1.Button1Click(Sender: TObject);
var a:integer;
begin
a:=Application.MessageBox('Seçilen veriyi silmek istediğinizden
Emin misiniz ?','Uyarı',MB_YesNo);
if a=idyes then Adotable1.Delete;
end;
Yukarıdaki örnek seçili veri üzerindeyken button tıkladığınız zaman karşımıza
mesaj gelecek Evet tuşuna basılırsa veri silicektir.
Escape tuşuna basıldığında formun kapanmas :
Formun KeyPreview özelliğini True yapınız. Daha sonra OnKeyPress olayına
aşağıdaki kodu yazın.
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #27 then Close;
end;
Alt+F4 tuş kombinasyonuyla programın kapanmaması :
Formun KeyPreview özelliğini True yapınız, daha sonra formun OnKeyDown olayına aşağıdaki
kodu yazın.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift:
TShiftState);
begin
if ((ssAlt in Shift) and (Key = VK_F4)) then
Key := 0;
end;
F1,F2 gibi Fonksiyon Tuşlarını Kullanmak :
Formun KeyPreview özelliğini True yapın ve OnKeyDown olayına aşağıdaki
kodu yazın .
if Key = VK_F2 then begin {F2'ye basılırsa burdaki kod çalışır}
end;
Harddiskin seri numarasının bulunması :
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),
4) + '-' +
IntToHex(LoWord(VolumeSerialNumber), 4);
Memo1.Lines.Add(SerialNumber);
end;
CD-Rom sürücüyü açmak ve kapamak :
uses kısmına MMSystem unitini ekleyi unutmayınız.
mciSendString('Set cdaudio door open wait', nil, 0, handle); //açma
mciSendString('Set cdaudio door closed wait', nil, 0, handle); //kapama
<< Geri
|