Programlama yapalım ve Öğrenelim. - Delphi Eğitim207
  Ana Sayfa
  .NET Eğitim Notları
  Visual C# .NET Örnek Kodları
  VisualBasic.NET Örnek Kodları
  J# Örnekleri
  ASP.NET Örnek Kodları
  Delphi Eğitim
  => Delphi Eğitim1
  => Delphi Eğitim2
  => Delphi Eğitim3
  => Delphi Eğitim4
  => Delphi Eğitim5
  => Delphi Eğitim6
  => Delphi Eğitim7
  => Delphi Eğitim8
  => Delphi Eğitim9
  => Delphi Eğitim10
  => Delphi Eğitim11
  => Delphi Eğitim13
  => Delphi Eğitim14
  => Delphi Eğitim15
  => Delphi Eğitim16
  => Delphi Eğitim17
  => Delphi Eğitim18
  => Delphi Eğitim19
  => Delphi Eğitim20
  => Delphi Eğitim21
  => Delphi Eğitim22
  => Delphi Eğitim23
  => Delphi Eğitim24
  => Delphi Eğitim25
  => Delphi Eğitim26
  => Delphi Eğitim27
  => Delphi Eğitim28
  => Delphi Eğitim29
  => Delphi Eğitim30
  => Delphi Eğtim31
  => Delphi Eğitim32
  => Delphi Eğitim33
  => Delphi Eğitim34
  => Delphi Eğitim35
  => Delphi Eğitim36
  => Delphi Eğitim37
  => Delphi Eğitim38
  => Delphi Eğitim39
  => Delphi Eğitim40
  => Delphi Eğitim41
  => Delphi Eğitim42
  => Delphi Eğitim43
  => Delphi Eğitim44
  => Delphi Eğitim45
  => Delphi Eğitim46
  => Delphi Eğitim47
  => Delphi Eğitim48
  => Delphi Eğitim49
  => Delphi Eğitim50
  => Delphi Eğitim51
  => Delphi Eğitim52
  => Delphi Eğitim53
  => Delphi Eğitim54
  => Delphi Eğitim55
  => Delphi Eğitim56
  => Delphi Eğitim57
  => Delphi Eğitim58
  => Delphi Eğitim59
  => Delphi Eğitim60
  => Delphi Eğitim61
  => Delphi Eğitim62
  => Delphi Eğitim63
  => Delphi Eğitim64
  => Delphi Eğitim65
  => Delphi Eğitim66
  => Delphi Eğitim67
  => Delphi Eğitim68
  => Delphi Eğitim69
  => Delphi Eğitim70
  => Delphi Eğitim71
  => Delphi Eğitim72
  => Delphi Eğitim73
  => Delphi Eğitim74
  => Delphi Eğitim75
  => Delphi Eğitim76
  => Delphi Eğitim77
  => Delphi Eğitim78
  => Delphi Eğitim79
  => Delphi Eğitim80
  => Delphi Eğitim81
  => Delphi Eğitim82
  => Delphi Eğitim83
  => Delphi Eğitim84
  => Delphi Eğitim85
  => Delphi Eğitim86
  => Delphi Eğitim87
  => Delphi Eğitim88
  => Delphi Eğitim89
  => Delphi Eğitim90
  => Delphi Eğitim91
  => Delphi Eğitim92
  => Delphi Eğitim93
  => Delphi Eğitim94
  => Delphi Eğitim95
  => Delphi Eğitim96
  => Delphi Eğitim97
  => Delphi Eğitim98
  => Delphi Eğitim99
  => Delphi Eğitim100
  => Delphi Eğitim101
  => Delphi Eğitim102
  => Delphi Eğitim103
  => Delphi Eğitim104
  => Delphi Eğitim105
  => Delphi Eğitim106
  => Delphi Eğitim107
  => Delphi Eğitim108
  => Delphi Eğitim109
  => Delphi Eğitim110
  => Delphi Eğitim111
  => Delphi Eğitim112
  => Delphi Eğitim113
  => Delphi Eğitim114
  => Delphi Eğitim115
  => Delphi Eğitim116
  => Delphi Eğitim117
  => Delphi Eğitim118
  => Delphi Eğitim119
  => Delphi Eğitim120
  => Delphi Eğitim121
  => Delphi Eğitim122
  => Delphi Eğitim123
  => Delphi Eğitim124
  => Delphi Eğitim125
  => Delphi Eğitim126
  => Delphi Eğitim127
  => Delphi Eğitim128
  => Delphi Eğitim129
  => Delphi Eğitim130
  => Delphi Eğitim131
  => Delphi Eğitim132
  => Delphi Eğitim133
  => Delphi Eğitim134
  => Delphi Eğitim135
  => Delphi Eğitim136
  => Delphi Eğitim137
  => Delphi Eğitim138
  => Delphi Eğitim139
  => Delphi Eğitim140
  => Delphi Eğitim141
  => Delphi Eğitim142
  => Delphi Eğitim143
  => Delphi Eğitim144
  => Delphi Eğitim145
  => Delphi Eğitim146
  => Delphi eğitim147
  => Delphi Eğitim148
  => Delphi Eğitim149
  => Delphi Eğitim150
  => Delphi Eğitim151
  => Delphi Eğitim152
  => Delphi Eğitim153
  => Delphi Eğitim154
  => Delphi Eğitim155
  => Delphi Eğitim156
  => Delphi Eğitim157
  => Delphi Eğitim158
  => Delphi Eğitim159
  => Delphi Eğitim160
  => Delphi Eğitim161
  => Delphi Eğitim162
  => Delphi Eğitim164
  => Delphi Eğitim165
  => Delphi Eğitim166
  => Delphi Eğitim167
  => Delphi Eğitim168
  => Delphi Eğitim169
  => Delphi Eğitim170
  => Delphi Eğitim171
  => Delphi Eğitim172
  => Delphi Eğitim173
  => Delphi Eğitim174
  => Delphi Eğitim175
  => Delphi Eğitim176
  => Delphi Eğitim177
  => Delphi Eğitim178
  => Delphi Eğitim179
  => Delphi Eğitim180
  => Delphi Eğitim181
  => Delphi Eğitim182
  => Delphi Eğitim183
  => Delphi Eğitim184
  => Delphi Eğitim185
  => Delphi Eğitim186
  => Delphi Eğitim187
  => Delphi Eğitim188
  => Delphi Eğitim189
  => Delphi Eğitim190
  => Delphi Eğitim191
  => Delphi Eğitim192
  => Delphi Eğitim193
  => Delphi Eğitim194
  => Delphi Eğitim195
  => Delphi Eğitim196
  => Delphi Eğitim197
  => Delphi Eğitim198
  => Delphi Eğitim199
  => Delphi Eğitim200
  => Delphi Eğitim201
  => Delphi Eğitim202
  => Delphi Eğitim203
  => Delphi Eğitim204
  => Delphi Eğitim205
  => Delphi Eğitim206
  => Delphi Eğitim207
  => Delphi Eğitim208
  => Delphi Eğitim209
  => Delphi Eğitim210
  => Delphi Eğitim211
  => Delphi Eğitim212
  => Delphi Eğitim213
  => Delphi Eğitim214
  => Delphi Eğitim215
  => Delphi Eğitim216
  => Delphi Eğitim217
  => Delphi Eğitim218
  => Delphi Eğitim219
  => Delphi Eğitim220
  => Delphi Eğitim221
  => Delphi Eğitim222
  => Delphi Eğitim223
  => Delphi Eğitim224
  => Delphi Eğitim225
  => Delphi Eğitim226
  => Delphi Eğitim227
  => Delphi Eğitim228
  => Delphi Eğitim229
  => Delphi Eğitim230
  => Delphi Eğitim231
  => Delphi Eğitim232
  => Delphi Eğitim233
  => Delphi Eğitim234
  => Delphi Eğitim235
  => Delphi Eğitim236
  => Delphi Eğitim237
  => Delphi Eğitim238
  => Delphi Eğitim239
  => Delphi Eğitim240
  => Delphi Eğitim241
  => Delphi Eğitim242
  İletişim

 neoturk - canvas ile basit çizim

"

iyi günler neoturk benim size bir sorum olacak?

Delphi ile ilgili bir soruyu sınıfta kimse yapamadı

hocada internette araştırın  bulun dedi.

4 buton var, 2 edit ve 1 image....  editlere (x ve y)

kordinatları girilcek...  1.butona tıkladığımızda kare...

2. butona tıkladığımızda dikdörtgen....

3 . butona tıkladığımızda üçgen....

4. butona tıkladığımızda beşgen çizcek belirtilen kordinatlara...

rectangle komutları ile yapılacak galiba siz daha iyi bilirsiniz

yardım edersiniz sevinirim

"

 

--------------------------------

 

canvas nesnesi ile çizim yaptırabiliriz:

 

forma ya da herhangi bir nesnenin üzerine.

 

örneğin;

 

canvas.rectangle(10,20,100,50) dersen bu dikdörtgen form üzerine

belirtilen koordinatlara çizilir.

 

image1.canvas.rectangle(x1,y1,x2,y2) dersen bu dikdörgen de image nesnesi

üzerine çizilir.

 

 

kare veya dikdörtgen yapmak için rectangle kullanabilirsin,

 

kullanım örneği:

 

rectangle(x1,y1,x2,y2)

 

sol köşe koordinatı  = x1,y1 dir

 

sağ köşe koordinatı = x2,y2 dir.

 

 

belirttiğin bu köşe koordinatlarını dikdörtgen veya kare oluşturacak şekilde

çizim yapar.

 

örneğin: canvas.rectangle(10,20,100,50) gibi....

 

normal bir çizgi çizmek istersen:

 

canvas.moveto(50,100);canvas.lineto(100,50);  gibi bir kullanım yapabilirsin.

 

moveto: x1,y1 başlangıç koordinatları

 

lineto: x2,y2 bitiş koordinatları

 

bu mantığa göre belirteceğin sayılara göre üçgen vs çizdirebilirsin.

 

örnek bir üçgen koordinatı mesela:

 

Canvas.MoveTo(50, 100);Canvas.LineTo(100,50);

Canvas.MoveTo(100, 50);Canvas.LineTo(150,100);

Canvas.MoveTo(50, 100);Canvas.LineTo(150,100);

 

gibi ....

 

artık 5geni de sen yapabilirsin bundan sonra......

( kağıt üzerinde koordinatla koordinatları belirle sonra

kodlamasını yaparsın zaten )

 

ek ilave olarak:

 

canvas.fillrect(clientrect);   >>  çizdiğin çizgilerin tümünü temizler ekrandan

 

canvas.pen.color:=clred;  >>  çizgi rengim kırmızı olsun

 

canvas.pen.style:=psdashdot;  >> çizgi stilim noktalı çizgili olsun

 

canvas.pen.style:=psdot;  >> çizgi stilim noktanokta olsun

 

gibi süslemeler yapabilirsin.

 

umarım yardımcı olabilmişimdir mustafa.. kolay gelsin..

 

saygılarımla_

 

neoturk

 

Delphi - .....................................

 

neoturk - canvas ile basit çizim

"

iyi günler neoturk benim size bir sorum olacak?

Delphi ile ilgili bir soruyu sınıfta kimse yapamadı

hocada internette araştırın  bulun dedi.

4 buton var, 2 edit ve 1 image....  editlere (x ve y)

kordinatları girilcek...  1.butona tıkladığımızda kare...

2. butona tıkladığımızda dikdörtgen....

3 . butona tıkladığımızda üçgen....

4. butona tıkladığımızda beşgen çizcek belirtilen kordinatlara...

rectangle komutları ile yapılacak galiba siz daha iyi bilirsiniz

yardım edersiniz sevinirim

"

 

--------------------------------

 

canvas nesnesi ile çizim yaptırabiliriz:

 

forma ya da herhangi bir nesnenin üzerine.

 

örneğin;

 

canvas.rectangle(10,20,100,50) dersen bu dikdörtgen form üzerine

belirtilen koordinatlara çizilir.

 

image1.canvas.rectangle(x1,y1,x2,y2) dersen bu dikdörgen de image nesnesi

üzerine çizilir.

 

 

kare veya dikdörtgen yapmak için rectangle kullanabilirsin,

 

kullanım örneği:

 

rectangle(x1,y1,x2,y2)

 

sol köşe koordinatı  = x1,y1 dir

 

sağ köşe koordinatı = x2,y2 dir.

 

 

belirttiğin bu köşe koordinatlarını dikdörtgen veya kare oluşturacak şekilde

çizim yapar.

 

örneğin: canvas.rectangle(10,20,100,50) gibi....

 

normal bir çizgi çizmek istersen:

 

canvas.moveto(50,100);canvas.lineto(100,50);  gibi bir kullanım yapabilirsin.

 

moveto: x1,y1 başlangıç koordinatları

 

lineto: x2,y2 bitiş koordinatları

 

bu mantığa göre belirteceğin sayılara göre üçgen vs çizdirebilirsin.

 

örnek bir üçgen koordinatı mesela:

 

Canvas.MoveTo(50, 100);Canvas.LineTo(100,50);

Canvas.MoveTo(100, 50);Canvas.LineTo(150,100);

Canvas.MoveTo(50, 100);Canvas.LineTo(150,100);

 

gibi ....

 

artık 5geni de sen yapabilirsin bundan sonra......

( kağıt üzerinde koordinatla koordinatları belirle sonra

kodlamasını yaparsın zaten )

 

ek ilave olarak:

 

canvas.fillrect(clientrect);   >>  çizdiğin çizgilerin tümünü temizler ekrandan

 

canvas.pen.color:=clred;  >>  çizgi rengim kırmızı olsun

 

canvas.pen.style:=psdashdot;  >> çizgi stilim noktalı çizgili olsun

 

canvas.pen.style:=psdot;  >> çizgi stilim noktanokta olsun

 

gibi süslemeler yapabilirsin.

 

umarım yardımcı olabilmişimdir mustafa.. kolay gelsin..

 

saygılarımla_

 

neoturk

 

Delphi - .....................................

 

neoturk - re: "Bir formun yaratılıp yaratılmadığını öğrenmek"

sorulmuş ki: "merhaba arkadaşlar bunu nasıl yaparız ??"

..............

 

const

    msg1 = "Bİ KERE SORU SORUŞ TARZIN FA-UL AND out-side";

    msg2 = "NEYİ SORUYORSUN? ADAM GİBİ AÇIKLAMAN NEREDE SENİN?"

    msgX = "FORMU YARATILIP YARATILMADIĞINI ÖĞRENMEK"

    msgY = "sorusunu ben başlıktan mı okumalıyım?"

    msgZ = "yani biz salağız, sen de uyanıklıkla sordun ÖYLE Mİ ?"

    msg3 = "BAHÇELERDE MAYDANOZ..."

    msg4 = "GEL BİZE BAZI BAZI........"

    msg5 = "BU TİP SORULARI SORACAKSAN BURAYA DEĞİL FORUMA SOR"

    msg6 = "YA DA BANA SOR, mail adresim: xxnt03@lycos.co.uk"

    msg7 = "MİLLETİN SİNİRLERİNİ GER-ME !"

 

...............

 

var a:longint;

 

a:=100.000;

 

bu tür saçma ve gereksiz soruları "a" kere sormayın demediler mi arkadaşım?

 

codebankı yöneten herhangi bir admin arkadaşım varsa rica ediyorum,

 

şu codebankın kod onay işlemlerini lütfen bana bırakın, gereksiz ve işe yaramayan

kodları ignore edeyim. onayla kodla işlenilsin buraya.

 

gevurların saygısı bile bizden daha çerçeveli. kurallara uyuyorlar en azından !

 

malum burası TÜRKİYE ! ................

 

cıvkını çıkarın aferim.........

 

kod filan yazmıyorum kardeşim, adam olmayacak burası anlaşıldı.

 

saygı gerektirmeyen bir ortam. saygılarımla demiyorum...

 

bye

 

neoturk_

 

Delphi - .....................................

 

neoturk - re: "Bir formun yaratılıp yaratılmadığını öğrenmek"

sorulmuş ki: "merhaba arkadaşlar bunu nasıl yaparız ??"

..............

 

const

    msg1 = "Bİ KERE SORU SORUŞ TARZIN FA-UL AND out-side";

    msg2 = "NEYİ SORUYORSUN? ADAM GİBİ AÇIKLAMAN NEREDE SENİN?"

    msgX = "FORMU YARATILIP YARATILMADIĞINI ÖĞRENMEK"

    msgY = "sorusunu ben başlıktan mı okumalıyım?"

    msgZ = "yani biz salağız, sen de uyanıklıkla sordun ÖYLE Mİ ?"

    msg3 = "BAHÇELERDE MAYDANOZ..."

    msg4 = "GEL BİZE BAZI BAZI........"

    msg5 = "BU TİP SORULARI SORACAKSAN BURAYA DEĞİL FORUMA SOR"

    msg6 = "YA DA BANA SOR, mail adresim: xxnt03@lycos.co.uk"

    msg7 = "MİLLETİN SİNİRLERİNİ GER-ME !"

 

...............

 

var a:longint;

 

a:=100.000;

 

bu tür saçma ve gereksiz soruları "a" kere sormayın demediler mi arkadaşım?

 

codebankı yöneten herhangi bir admin arkadaşım varsa rica ediyorum,

 

şu codebankın kod onay işlemlerini lütfen bana bırakın, gereksiz ve işe yaramayan

kodları ignore edeyim. onayla kodla işlenilsin buraya.

 

gevurların saygısı bile bizden daha çerçeveli. kurallara uyuyorlar en azından !

 

malum burası TÜRKİYE ! ................

 

cıvkını çıkarın aferim.........

 

kod filan yazmıyorum kardeşim, adam olmayacak burası anlaşıldı.

 

saygı gerektirmeyen bir ortam. saygılarımla demiyorum...

 

bye

 

neoturk_

 

Delphi - .....................................

 

Bir formun yaratılıp yaratılmadığını öğrenmek

merhaba arkadaşlar bunu nasıl yaparız ??

 

Delphi - .....................................

 

Bir formun yaratılıp yaratılmadığını öğrenmek

merhaba arkadaşlar bunu nasıl yaparız ??

 

Delphi - .....................................

 

Refresh Desktop (F5)

procedure RefreshDesktop;

var

  c1: cardinal;

begin

  c1 := FindWindowEx(FindWindowEx(FindWindow('Progman', 'Program Manager'), 0,

    'SHELLDLL_DefView', ''), 0, 'SysListView32', '');

  PostMessage(c1, WM_KEYDOWN, VK_F5, 0);

  PostMessage(c1, WM_KEYUP, VK_F5, 1 shl 31);

end;

 

Delphi - .....................................

 

Refresh Desktop (F5)

procedure RefreshDesktop;

var

  c1: cardinal;

begin

  c1 := FindWindowEx(FindWindowEx(FindWindow('Progman', 'Program Manager'), 0,

    'SHELLDLL_DefView', ''), 0, 'SysListView32', '');

  PostMessage(c1, WM_KEYDOWN, VK_F5, 0);

  PostMessage(c1, WM_KEYUP, VK_F5, 1 shl 31);

end;

 

Delphi - .....................................

 

Kronometre, zamanı geriye saydırma

Arkadaşlar, saat, dakika, saniye olarak girdiğiniz süreyi geriye sayan ve süre bittiğinde ikaz eden kodlar şu şekildedir.

 

Öncelikle formunuza yanyana 3 adet edit (saat, dakika ve saniye) ve ayrı 1 tane daha edit (geriye sayma) daha koyun. 1 tane timer, 1 tane de button ekleyin.

uses bölümüne ise dateutils eklemeyi unutmayın. Bu arada public altına ise Sure:integer; değişkenini ekleyin.

// edit1= saat girilecek örneğin :02

// edit2= dakika girilecek örneğin :15

// edit3= saniye girilecek örneğin :23

// edit4= geriye doğru değerlerin sayılacağı kronometremiz.

// yani kronometre değerimiz şu şeklde olacaktır. 02:15:23

// ve bu değerden geriye doğru sayacaktır.

 

procedure TForm1.Timer1Timer(Sender: TObject);

begin

  Sure := Sure - 1;

  Edit4.Text :=  FormatDateTime('hh:mm:ss', IncSecond(EncodeTime(0,0,0,0), Sure)  );

 

  if (Sure = 0)

  then begin

         Timer1.Enabled := False;

         application.MessageBox('Süreniz Bitti','Dikkat');

       end;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  sure:=(strtoint (edit1.text)*3600)+(strtoint (edit2.text)*60) + (strtoint(edit3.Text));

  Timer1.Enabled := True;

end;

 

Delphi - .....................................

 

Kronometre, zamanı geriye saydırma

Arkadaşlar, saat, dakika, saniye olarak girdiğiniz süreyi geriye sayan ve süre bittiğinde ikaz eden kodlar şu şekildedir.

 

Öncelikle formunuza yanyana 3 adet edit (saat, dakika ve saniye) ve ayrı 1 tane daha edit (geriye sayma) daha koyun. 1 tane timer, 1 tane de button ekleyin.

uses bölümüne ise dateutils eklemeyi unutmayın. Bu arada public altına ise Sure:integer; değişkenini ekleyin.

// edit1= saat girilecek örneğin :02

// edit2= dakika girilecek örneğin :15

// edit3= saniye girilecek örneğin :23

// edit4= geriye doğru değerlerin sayılacağı kronometremiz.

// yani kronometre değerimiz şu şeklde olacaktır. 02:15:23

// ve bu değerden geriye doğru sayacaktır.

 

procedure TForm1.Timer1Timer(Sender: TObject);

begin

  Sure := Sure - 1;

  Edit4.Text :=  FormatDateTime('hh:mm:ss', IncSecond(EncodeTime(0,0,0,0), Sure)  );

 

  if (Sure = 0)

  then begin

         Timer1.Enabled := False;

         application.MessageBox('Süreniz Bitti','Dikkat');

       end;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  sure:=(strtoint (edit1.text)*3600)+(strtoint (edit2.text)*60) + (strtoint(edit3.Text));

  Timer1.Enabled := True;

end;

 

Delphi - .....................................

 

Quick raporda dik label

quick raporda dik label companenti var mıdır?

 

Delphi - .....................................

 

Quick raporda dik label

quick raporda dik label companenti var mıdır?

 

Delphi - .....................................

 

Sayı yuvarlamaya farklı bir yöntem

// virgülden sonraki sıfırlar yuvarlanacak basamak sayısı

 

FUNCTION CEVIR(AL: DOUBLE):DOUBLE;

VAR

SAYI : STRING;

BEGIN

SAYI:=FormatFloat('#,##0.00',AL);

SAYI:=StringReplace(SAYI,ThousandSeparator,'',[rfReplaceAll]);

Result:=StrToFloat(SAYI);

END;

 

Delphi - .....................................

 

Sayı yuvarlamaya farklı bir yöntem

// virgülden sonraki sıfırlar yuvarlanacak basamak sayısı

 

FUNCTION CEVIR(AL: DOUBLE):DOUBLE;

VAR

SAYI : STRING;

BEGIN

SAYI:=FormatFloat('#,##0.00',AL);

SAYI:=StringReplace(SAYI,ThousandSeparator,'',[rfReplaceAll]);

Result:=StrToFloat(SAYI);

END;

 

Delphi - .....................................

 

Aynı İşmeler

Aşağıdaki satırlar aynı işlemi görür

 if Edit1.Text = '1' then A := True Else A:= False

 

 A := Edit1.Text='1'

 ismail@ismailkurt.com

 protakip@hotmail.com

 

Delphi - .....................................

 

Aynı İşmeler

Aşağıdaki satırlar aynı işlemi görür

 if Edit1.Text = '1' then A := True Else A:= False

 

 A := Edit1.Text='1'

 ismail@ismailkurt.com

 protakip@hotmail.com

 

Delphi - .....................................

 

Aynı İşlemler

Aşağıdaki satırlar aynı işlemi görür

 if Edit1.Text = '1' then A := True Else A:= False

 

 A := Edit1.Text='1'

 

Delphi - .....................................

 

Aynı İşlemler

Aşağıdaki satırlar aynı işlemi görür

 if Edit1.Text = '1' then A := True Else A:= False

 

 A := Edit1.Text='1'

 

Delphi - .....................................

 

WideString to String

function WideStringToString(const ws: WideString; codePage: Word): AnsiString;

var

  l: integer;

begin

  if ws = '' then

    Result := ''

  else

  begin

    l := WideCharToMultiByte(codePage,

      WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,

      @ws[1], - 1, nil, 0, nil, nil);

    SetLength(Result, l - 1);

    if l > 1 then

      WideCharToMultiByte(codePage,

        WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,

        @ws[1], - 1, @Result[1], l - 1, nil, nil);

  end;

end; { WideStringToString }

 

Delphi - .....................................

 

WideString to String

function WideStringToString(const ws: WideString; codePage: Word): AnsiString;

var

  l: integer;

begin

  if ws = '' then

    Result := ''

  else

  begin

    l := WideCharToMultiByte(codePage,

      WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,

      @ws[1], - 1, nil, 0, nil, nil);

    SetLength(Result, l - 1);

    if l > 1 then

      WideCharToMultiByte(codePage,

        WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,

        @ws[1], - 1, @Result[1], l - 1, nil, nil);

  end;

end; { WideStringToString }

 

Delphi - .....................................

 

WideString To AnsiString

function WideStringToString(const ws: WideString; codePage: Word): AnsiString;

var

  l: integer;

begin

  if ws = '' then

    Result := ''

  else

  begin

    l := WideCharToMultiByte(codePage,

      WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,

      @ws[1], - 1, nil, 0, nil, nil);

    SetLength(Result, l - 1);

    if l > 1 then

      WideCharToMultiByte(codePage,

        WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,

        @ws[1], - 1, @Result[1], l - 1, nil, nil);

  end;

end; { WideStringToString }

 

Delphi - .....................................

 

WideString To AnsiString

function WideStringToString(const ws: WideString; codePage: Word): AnsiString;

var

  l: integer;

begin

  if ws = '' then

    Result := ''

  else

  begin

    l := WideCharToMultiByte(codePage,

      WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,

      @ws[1], - 1, nil, 0, nil, nil);

    SetLength(Result, l - 1);

    if l > 1 then

      WideCharToMultiByte(codePage,

        WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,

        @ws[1], - 1, @Result[1], l - 1, nil, nil);

  end;

end; { WideStringToString }

 

Delphi - .....................................

 

Parse

{

Bir String 'teki belirli karakterlere göre ayırma yapar.

Örneğin;

parse('Dosya Adı$Resim Numarası$Ekipman Adı','$',Listbox1);

 

yapıldığında, ListBox1 'e bunları

 

Dosya Adı

Resim Numarası

Ekipman Adı

 

olarak ekler..

Veritabanı gerektirmeyecek kadar küçük işlerde kullanmak içindir..

 

 

}

procedure Parse(x,substr: String;list:TListBox);

var

i,aa: integer;

dd: String;

begin

aa := Length(x);

   for i := 1 to aa do

      begin

          dd :=  Copy(x,1,POS(substr,x)-1);

                if dd <> '' then

                    List.items.Add(dd);

          delete(x,1,length(dd)+1);

                if pos(substr,x) = 0 then

                  begin

                    list.items.add(Copy(x,1,Length(x)));

                    exit;

                 end;

      end;

end;

 

Delphi - .....................................

 

Parse

{

Bir String 'teki belirli karakterlere göre ayırma yapar.

Örneğin;

parse('Dosya Adı$Resim Numarası$Ekipman Adı','$',Listbox1);

 

yapıldığında, ListBox1 'e bunları

 

Dosya Adı

Resim Numarası

Ekipman Adı

 

olarak ekler..

Veritabanı gerektirmeyecek kadar küçük işlerde kullanmak içindir..

 

 

}

procedure Parse(x,substr: String;list:TListBox);

var

i,aa: integer;

dd: String;

begin

aa := Length(x);

   for i := 1 to aa do

      begin

          dd :=  Copy(x,1,POS(substr,x)-1);

                if dd <> '' then

                    List.items.Add(dd);

          delete(x,1,length(dd)+1);

                if pos(substr,x) = 0 then

                  begin

                    list.items.add(Copy(x,1,Length(x)));

                    exit;

                 end;

      end;

end;

 

Delphi - .....................................

 

Hdd Seri numarasını bulma

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;

 

Delphi - .....................................

 

Hdd Seri numarasını bulma

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;

 

Delphi - .....................................

 

Programı Bekletme

Sleep(10000)

10 saniye bekler

 

Delphi - .....................................

 

Programı Bekletme

Sleep(10000)

10 saniye bekler

 

Delphi - .....................................

 

Filtreleme

Table1.Filtered := False;

Table1.FilterOptions := [FoCaseInsensitive];

Table1.Filter := 'Tarih=' +QuotedStr(DateToStr(DateTimePicker1.Date));

Table1.Filtered := True;

 

Delphi - .....................................

 

Filtreleme

Table1.Filtered := False;

Table1.FilterOptions := [FoCaseInsensitive];

Table1.Filter := 'Tarih=' +QuotedStr(DateToStr(DateTimePicker1.Date));

Table1.Filtered := True;

 

Delphi - .....................................

 

Şifreleme

var

x,b:string;

begin

b:='Buraya şifre giriniz';

x:=inputbox('Programa Giriş','Programa girmek için şifreyi Giriniz:','');

if x=b then

application.messagebox('Programa Girişiniz Onaylandı.Tebrikler ..!','Tebrikler',mb_ok+mb_defbutton1)

else

halt;

end;

end.

 

Yazan :KardeşlerSoft

 

Delphi - .....................................

 

Şifreleme

var

x,b:string;

begin

b:='Buraya şifre giriniz';

x:=inputbox('Programa Giriş','Programa girmek için şifreyi Giriniz:','');

if x=b then

application.messagebox('Programa Girişiniz Onaylandı.Tebrikler ..!','Tebrikler',mb_ok+mb_defbutton1)

else

halt;

end;

end.

 

Yazan :KardeşlerSoft

 

Delphi - .....................................

 

(EK BILGI)Button'a Tıklayınca Label de İstediğiniz şey yazsın

Sevgili yavuz kardeşim sanırım delphide yenisin. sana söylemek istediğim

aşağıda vermiş olduğun kod labele bilgi yazmaz bu kod sadece formuna koyduğun

buttonun captionunu  değiştirir. labele yazması için

button click olayına label1.caption:='Yavuz Yiğit Bilgin'; yazmalısın.

ve bilmelisinki bu vermiş olduğunuz kodlar en basit delphi kitaplarında bile yer

almaktadır.

 

Arkadaşlar Lütfen Temiz Bir KodBank için gereksiz kodlar göndermeyelim.

Burası bilgi paylaşımı OK ama aynı kodtan onlarca var ve önüne gelen intenet sitelerinden

aynı kodları alıp alıp buraya yapıştırıyor.

Lütfen KodBankımızı kirletmiyelim. Profesyonel kodlarla zenginleştirelim

Birlik Beraberlikle.

Herkese Doğru kodlu bol Delphili Günler

 

button1.caption:='Yavuz Yiğit Bilgin'

 

Delphi - .....................................

 

(EK BILGI)Button'a Tıklayınca Label de İstediğiniz şey yazsın

Sevgili yavuz kardeşim sanırım delphide yenisin. sana söylemek istediğim

aşağıda vermiş olduğun kod labele bilgi yazmaz bu kod sadece formuna koyduğun

buttonun captionunu  değiştirir. labele yazması için

button click olayına label1.caption:='Yavuz Yiğit Bilgin'; yazmalısın.

ve bilmelisinki bu vermiş olduğunuz kodlar en basit delphi kitaplarında bile yer

almaktadır.

 

Arkadaşlar Lütfen Temiz Bir KodBank için gereksiz kodlar göndermeyelim.

Burası bilgi paylaşımı OK ama aynı kodtan onlarca var ve önüne gelen intenet sitelerinden

aynı kodları alıp alıp buraya yapıştırıyor.

Lütfen KodBankımızı kirletmiyelim. Profesyonel kodlarla zenginleştirelim

Birlik Beraberlikle.

Herkese Doğru kodlu bol Delphili Günler

 

button1.caption:='Yavuz Yiğit Bilgin'

 

Delphi - .....................................

 

WİNDOWS NETWORK & EKRAN MODUNA KISITLAMA

Görüntü Özelliklerinde kısatlamalar.

 

1. Görüntü özelliklerini tamamen kısıtlamak=

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociessystem

dizinene NoDispCPLdworld olarak key ekleyin ve 1 yazın.

 

2. Duvar kagıdını gizlemek=

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociessystem

dizinene NoDispBackgroundPagedworld olarak key ekleyin ve 1 yazın.

 

3. Ekran koruyucunu kısıtlamak=

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociessystem

dizinene NoDispScrSavPagedworld olarak key ekleyin ve 1 yazın.

 

4. Görünüm ayar denetimi=

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociessystem

dizinene NoDispAppearancePagedworld olarak key ekleyin ve 1 yazın.

 

5. Ekran mod ayarı=

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociessystem

dizinene NoDispSettingsPagedworld olarak key ekleyin ve 1 yazın.

 

 

Network Özelliklerinde kısıtlamalar.

 

1. Network denetim panelini gizlemek.

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociesNetwork

dizinene NoNetSetupdworld olarak key ekleyin ve 1 yazın.

 

2. Network tanım panelini gizlemek.

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociesNetwork

dizinene NoNetSetupIDPagedworld olarak key ekleyin ve 1 yazın.

 

3.   Network erişimi gizlemek.

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociesNetwork

dizinene NoNetSetupSecurityPagedworld olarak key ekleyin ve 1 yazın.

 

4. Network dosya paylaşımını kaldırmak.

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociesNetwork

dizinene NoFileSharingControldworld olarak key ekleyin ve 1 yazın.

 

5. Network yazıcı paylaşımını kaldırmak.

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociesNetwork

dizinene NoPrintSharingdworld olarak key ekleyin ve 1 yazın.

 

FİKRET DURU

 

Delphi - .....................................

 

WİNDOWS NETWORK & EKRAN MODUNA KISITLAMA

Görüntü Özelliklerinde kısatlamalar.

 

1. Görüntü özelliklerini tamamen kısıtlamak=

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociessystem

dizinene NoDispCPLdworld olarak key ekleyin ve 1 yazın.

 

2. Duvar kagıdını gizlemek=

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociessystem

dizinene NoDispBackgroundPagedworld olarak key ekleyin ve 1 yazın.

 

3. Ekran koruyucunu kısıtlamak=

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociessystem

dizinene NoDispScrSavPagedworld olarak key ekleyin ve 1 yazın.

 

4. Görünüm ayar denetimi=

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociessystem

dizinene NoDispAppearancePagedworld olarak key ekleyin ve 1 yazın.

 

5. Ekran mod ayarı=

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociessystem

dizinene NoDispSettingsPagedworld olarak key ekleyin ve 1 yazın.

 

 

Network Özelliklerinde kısıtlamalar.

 

1. Network denetim panelini gizlemek.

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociesNetwork

dizinene NoNetSetupdworld olarak key ekleyin ve 1 yazın.

 

2. Network tanım panelini gizlemek.

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociesNetwork

dizinene NoNetSetupIDPagedworld olarak key ekleyin ve 1 yazın.

 

3.   Network erişimi gizlemek.

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociesNetwork

dizinene NoNetSetupSecurityPagedworld olarak key ekleyin ve 1 yazın.

 

4. Network dosya paylaşımını kaldırmak.

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociesNetwork

dizinene NoFileSharingControldworld olarak key ekleyin ve 1 yazın.

 

5. Network yazıcı paylaşımını kaldırmak.

HKEY_CURRENT_USERSoftwareMicrosoftwindowsPociesNetwork

dizinene NoPrintSharingdworld olarak key ekleyin ve 1 yazın.

 

FİKRET DURU

 

Delphi - .....................................

 

Windows un environment bilgilerini almak

procedure TForm1.Button1Click(Sender: TObject);

var

  MyPointer: PChar;

begin

  Memo1.Lines.Clear;

  MyPointer := GetEnvironmentStrings;

  if MyPointer <> nil then

    while MyPointer <> nil do

    begin

      Memo1.Lines.Add(StrPas(MyPointer));

          Inc(MyPointer,StrLen(MyPointer)+1);

      if (Byte(MyPointer[0]) = 0) then MyPointer := nil;

    end;

  FreeEnvironmentStrings(MyPointer);

end;

 

Delphi - .....................................

 

Windows un environment bilgilerini almak

procedure TForm1.Button1Click(Sender: TObject);

var

  MyPointer: PChar;

begin

  Memo1.Lines.Clear;

  MyPointer := GetEnvironmentStrings;

  if MyPointer <> nil then

    while MyPointer <> nil do

    begin

      Memo1.Lines.Add(StrPas(MyPointer));

          Inc(MyPointer,StrLen(MyPointer)+1);

      if (Byte(MyPointer[0]) = 0) then MyPointer := nil;

    end;

  FreeEnvironmentStrings(MyPointer);

end;

 

Delphi - .....................................

 

hatalar

Hatalar, Özel Durumlar ?

 

Bir özel durum(exception), genel olarak bir hata durumu yada uygulamadaki normal

program akışını engelleyen bir olaydır. Ne zaman bir kod satırı hataya sebep olursa,

Delphi, TObject'den türetilmiş, istisna nesnesi(exception object) denen bir nesne

oluşturur.

 

Korunumlu Kısım

 

Uygulama, özel bir durumu, bazı sonlandırma kodları çalıştırarak, bu özel durumu

işleyerek yada her ikisini de yaparak yanıtlar. Belirlenen bir koddaki hata yada

özel durumu yakalamak için,  özel durumun, korunumlu alan tanımı içerisinde oluşması

gerekir. Genel kod şu şekilde görünür :

 

try

  {korunan kod bloğu}

except

  on <EOzelDurum> do begin

    {özel durum bloğu-OzelDurum'u işler}

  end;

end;

 

try..except deyimi, korunmuş kod bloğundaki direktifleri çalıştırır.

Eğer direktifler herhangi bir istisna oluşmadan çalışırsa, istisna bloğu yok

sayılır ve kontrol, end deyimi ile biten bir sonraki direktife geçer.

 

Örnek :

 

...

Zero:=0;

try

 dummy:= 10 / Zero;

except

 on EZeroDivide do

   MessageDlg('Sıfıra bölünemez!',

               mtError, [mbOK], 0);

end;

...

 

 

Kaynakları Korumak

 

Bir kod parçası bir kaynak ayırdığında, kod normal olarak tamamlandığına yada

bir özel durum tarafından engellendiğine bakmaksızın, genellikle onun bu kaynağı

tekrar serbest bıraktığından emin olmamız gerekir. Bu durumda yazım finally

kelimesini kullanır ve şöyle görünür :

 

{kaynak ayıran bazı kodlar..}

try

  {korunmuş kod bloğu}

finally

  {sonlandırma bloğu - kaynakları serbest bırakacak kod..}

end;

 

Örnek :

 

...

AboutBox:=TAboutBox.Create(Self);

try

  AboutBox.ShowModal;

finally

  AboutBox.Release;

end;

...

 

Application.OnException

 

Eğer sizin uygulamanız özel durum tarafından oluşturulan hatayı işlemiyorsa,

Delphi kendi varsayılan istisna işleyicisini(exception handler) kullanacak,

sadece bir uyarı penceresi açacaktır. Uygulama seviyesinde(application level)

hataları yakalamak yerine, TApplication nesnesinin OnException olayına kod yazmayı

da düşünebilirsiniz.

 

Hatalarda Duraklama

 

Hata işleme ile kod yazarken, Delphi'nin hatalarda duraklamasını istemeyebilirsiniz.

Delphi'nin nerede hata oluştuğunu göstermesini istiyorsanız, bu harika bir özelliktir,

bununla birlikte, eğer kendi hata işleme mekanizmanızı test ediyorsanız,

bu can sıkıcı olabilir.

 

Delphi'nin hata ayıklayıcısını devreden çıkartmak için Tools-> Debugger

Options menüsünden Integrated Debugging seçeneği onayının kaldırılması gerekir.

 

Delphi - .....................................

 

hatalar

Hatalar, Özel Durumlar ?

 

Bir özel durum(exception), genel olarak bir hata durumu yada uygulamadaki normal

program akışını engelleyen bir olaydır. Ne zaman bir kod satırı hataya sebep olursa,

Delphi, TObject'den türetilmiş, istisna nesnesi(exception object) denen bir nesne

oluşturur.

 

Korunumlu Kısım

 

Uygulama, özel bir durumu, bazı sonlandırma kodları çalıştırarak, bu özel durumu

işleyerek yada her ikisini de yaparak yanıtlar. Belirlenen bir koddaki hata yada

özel durumu yakalamak için,  özel durumun, korunumlu alan tanımı içerisinde oluşması

gerekir. Genel kod şu şekilde görünür :

 

try

  {korunan kod bloğu}

except

  on <EOzelDurum> do begin

    {özel durum bloğu-OzelDurum'u işler}

  end;

end;

 

try..except deyimi, korunmuş kod bloğundaki direktifleri çalıştırır.

Eğer direktifler herhangi bir istisna oluşmadan çalışırsa, istisna bloğu yok

sayılır ve kontrol, end deyimi ile biten bir sonraki direktife geçer.

 

Örnek :

 

...

Zero:=0;

try

 dummy:= 10 / Zero;

except

 on EZeroDivide do

   MessageDlg('Sıfıra bölünemez!',

               mtError, [mbOK], 0);

end;

...

 

 

Kaynakları Korumak

 

Bir kod parçası bir kaynak ayırdığında, kod normal olarak tamamlandığına yada

bir özel durum tarafından engellendiğine bakmaksızın, genellikle onun bu kaynağı

tekrar serbest bıraktığından emin olmamız gerekir. Bu durumda yazım finally

kelimesini kullanır ve şöyle görünür :

 

{kaynak ayıran bazı kodlar..}

try

  {korunmuş kod bloğu}

finally

  {sonlandırma bloğu - kaynakları serbest bırakacak kod..}

end;

 

Örnek :

 

...

AboutBox:=TAboutBox.Create(Self);

try

  AboutBox.ShowModal;

finally

  AboutBox.Release;

end;

...

 

Application.OnException

 

Eğer sizin uygulamanız özel durum tarafından oluşturulan hatayı işlemiyorsa,

Delphi kendi varsayılan istisna işleyicisini(exception handler) kullanacak,

sadece bir uyarı penceresi açacaktır. Uygulama seviyesinde(application level)

hataları yakalamak yerine, TApplication nesnesinin OnException olayına kod yazmayı

da düşünebilirsiniz.

 

Hatalarda Duraklama

 

Hata işleme ile kod yazarken, Delphi'nin hatalarda duraklamasını istemeyebilirsiniz.

Delphi'nin nerede hata oluştuğunu göstermesini istiyorsanız, bu harika bir özelliktir,

bununla birlikte, eğer kendi hata işleme mekanizmanızı test ediyorsanız,

bu can sıkıcı olabilir.

 

Delphi'nin hata ayıklayıcısını devreden çıkartmak için Tools-> Debugger

Options menüsünden Integrated Debugging seçeneği onayının kaldırılması gerekir.

 

Delphi - .....................................

 

MSSQL( FUNCTION VE TRIGGER ) DENEMESİ

/*

{BİLDİĞİM KADARI İLE PEYGAMBERİMİZ (HZ.MUHAMMED S.A.V.) DEMİŞKİ

ÖĞRENMEK SÜNNET ÖĞRETMEK İSE FARZDIR

SİZ MSSQL İYİ BİLEN PROGRAMCI ARKADAŞLAR BUNLARI DAHA NE ZAMANA KADAR SAKLAYIP PAYLAŞMAYACAKSINIZ

ZORUNA GİDİPTE BANA CEVAP YAZMAK İSTEYEN ARKADAŞLAR

BURAYI KULLANMAYIP MSN:ramazanayer@gmail.com ADRESİNİ KULLANA BİLİRLER.

 

MSSQL VERI TABANINI HEPİMİZ HEMEN HEMEN BİLİRİZ

SAĞLAM VERİ TABANLARINDAN BİRİDİR.

FAKAT KİMSE BUNLAR HAKKINDA FAZLA BİLGİ VERMEMEKTE

BENDE MSSQL LE BAŞLAYALI BİR KAÇ AY OLDU

FAKAT FUNCTION VE TRIGGER LARIN AVANTAJLARINI,GUZELLIKLERINI DUN KEŞFETTIM

ARAŞTIRDIM MSSQL ORNEKLERINE BAKTIM

VE ÖĞRENDİKLERİMİ PAYLAŞMAK İSTEDİM ÖĞRENMEM GEREKEN ÇOK ŞEY OLDUĞUNU BİLİYORUM

Trigger = Tetikleyici

Function = fonksiyon  zaten delphi kullananlar ne olduğunu biliyor

bu ikisi ni doğru bir şekilde yazdığınız zaman delphi de

veri tabanı programçılığında insert,update,delete gibi işlemleri yaparken

başka tablolar daki verileri yönetme işlemini mssql kendi yapıyor ve bunun için

delphi içerisinde ayrı bir kod yazmanız gerekmiyor.

 

MSSQL İLE BİRLİKTE GELEN Enterprise Manager İLE

LOCAL DE DENEMEVERI ADINDA DATABASE OLUŞTURDUM.

Query Analyzer PROGRAMINDA BU DATABASE SEÇİP

DENEME ADINDAKİ FUNCTION KODUNU AŞAĞIDA YAZDIM

ŞİMDİ ÖĞRENDİĞİMİ ANLATAYIM,

}

*/

 

/****** {MSSQL FUNCTION YARATMA} ******/

IF  EXISTS (

SELECT * FROM dbo.sysobjects

WHERE id = OBJECT_ID(N'[dbo].[DENEME]')

AND xtype in (N'FN', N'IF', N'TF')

)

 

DROP FUNCTION [dbo].[DENEME]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

 

create function DENEME(@VERI float) // deneme adında function yarat ve @veri adında float değer atanıyor

returns float // geri dönen değer float olsun

as

begin

  declare @result float // @result adında float bir değer

  set @result = @VERI*5 // @result e atanmış olan @veri değerinin  5 katını eşitle

  return(@result) // return = geri gönder // @result ü return ile geri gönder

end

 

GO

SET ANSI_NULLS OFF

GO

SET QUOTED_IDENTIFIER OFF

 

/*

{

yani database de deneme adında bi function yaratıyoruz

bu functionun tek amacı ise ona gönderilen bir sayının 5 katını geri göndermek.

 

function oluştu şimdi ise database de iki tablo oluşturup

triggerımızı yazalım ve function ile destekliyelim.

 

size tabloların Query Analyzer kodunu vereyim

DENEMEVERI ADINDA DATABASE inde bunları yazıp çalıştırırsanız

tablolar oluşmuş olur

 

 

CREATE TABLE [STOKKODU] (

      [STOKKODU] [char] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,

      [DEGER] [float] NULL ,

      CONSTRAINT [IX_STOKKODU] UNIQUE  NONCLUSTERED

      (

            [STOKKODU]

      )  ON [PRIMARY]

) ON [PRIMARY]

GO

 

CREATE TABLE [DSTK] (

      [STOKKOD] [char] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

      [VERISI] [float] NULL ,

      CONSTRAINT [FK_DSTK_STOKKODU] FOREIGN KEY

      (

            [STOKKOD]

      ) REFERENCES [STOKKODU] (

            [STOKKODU]

      )

) ON [PRIMARY]

GO

 

 

tablolarıda bu şekilde oluşturduktan sonra Query Analyzer da

DENEMEVERI ADINDA DATABASE inde

aşağıdaki kodları yazarak triggerda oluşmuş olur

}

*/

 

//******** TRIGGER YARATMA *****//

IF  EXISTS (

SELECT * FROM dbo.sysobjects

WHERE id = OBJECT_ID(N'[dbo].[RAMAZANDENEME]')

AND OBJECTPROPERTY(id, N'IsTrigger') = 1

)

 

DROP TRIGGER [dbo].[RAMAZANDENEME]

GO

 

CREATE TRIGGER RAMAZANDENEME ON DSTK FOR INSERT // ramazandeneme adında triggerı dstk tablosunda oluştur sadece insert modunda çalışsın

AS

BEGIN

  declare @VERI float // @veri adında float bir değer ata

  declare @stk varchar(15) // @stk adında 15 karakterlik varchar bir değer ata

  declare @donus float // @donus adında float bir değer ata

 

      SET  @stk =(select stokkod from inserted) // @stk ya dstk içinde a anda açılan stokkod u ata

      SET @VERI=(SELECT VERISI FROM INSERTED) // @veri ya dstk içinde a anda açılan VERISI değerini ata

      IF @VERI IS NULL // değer boşsa

      SET @VERI=0.0 // değeri 0 yap

    SET NOCOUNT ON

    set @donus = dbo.DENEME(@VERI) // @donus e az önce oluşturduğumuz function ile @veri değerini döndür

 

    update STOKKODU //stokkudu değişime hazırla

      set DEGER = DEGER + @donus // DEGER alanına @donus değerini ekle

    where STOKKODU = @STK // tabi stokkodunu bulupta

END

 

GO

SET ANSI_NULLS OFF

GO

SET QUOTED_IDENTIFIER OFF

 

 

{

sizinde tahmin edebileceğiniz gibi

delphi programında dskt tablosuna eklenen her stokkod un deger i bağlı olduğu

stokkodu tablosundaki stokkunun bulunduğu satırdaki VERISI değerine eklenecektir.

delphide bunuda aynı anda görmek isterseniz stokkodu tablosunu refresh yapın veya kapatıp açın.

bu tabloları hangi forma kullanırsanız kullanın insert ile değerin diğer tabloya + olarak gitmesi

için ayrıca kod yazmanız gerekmez.

 

Ramazan AYER

ramazanayer@gmail.com

Bunları ve daha fazlasını bilipte paylaşmayanlara kırgın

}

 

Delphi - .....................................

 

MSSQL( FUNCTION VE TRIGGER ) DENEMESİ

/*

{BİLDİĞİM KADARI İLE PEYGAMBERİMİZ (HZ.MUHAMMED S.A.V.) DEMİŞKİ

ÖĞRENMEK SÜNNET ÖĞRETMEK İSE FARZDIR

SİZ MSSQL İYİ BİLEN PROGRAMCI ARKADAŞLAR BUNLARI DAHA NE ZAMANA KADAR SAKLAYIP PAYLAŞMAYACAKSINIZ

ZORUNA GİDİPTE BANA CEVAP YAZMAK İSTEYEN ARKADAŞLAR

BURAYI KULLANMAYIP MSN:ramazanayer@gmail.com ADRESİNİ KULLANA BİLİRLER.

 

MSSQL VERI TABANINI HEPİMİZ HEMEN HEMEN BİLİRİZ

SAĞLAM VERİ TABANLARINDAN BİRİDİR.

FAKAT KİMSE BUNLAR HAKKINDA FAZLA BİLGİ VERMEMEKTE

BENDE MSSQL LE BAŞLAYALI BİR KAÇ AY OLDU

FAKAT FUNCTION VE TRIGGER LARIN AVANTAJLARINI,GUZELLIKLERINI DUN KEŞFETTIM

ARAŞTIRDIM MSSQL ORNEKLERINE BAKTIM

VE ÖĞRENDİKLERİMİ PAYLAŞMAK İSTEDİM ÖĞRENMEM GEREKEN ÇOK ŞEY OLDUĞUNU BİLİYORUM

Trigger = Tetikleyici

Function = fonksiyon  zaten delphi kullananlar ne olduğunu biliyor

bu ikisi ni doğru bir şekilde yazdığınız zaman delphi de

veri tabanı programçılığında insert,update,delete gibi işlemleri yaparken

başka tablolar daki verileri yönetme işlemini mssql kendi yapıyor ve bunun için

delphi içerisinde ayrı bir kod yazmanız gerekmiyor.

 

MSSQL İLE BİRLİKTE GELEN Enterprise Manager İLE

LOCAL DE DENEMEVERI ADINDA DATABASE OLUŞTURDUM.

Query Analyzer PROGRAMINDA BU DATABASE SEÇİP

DENEME ADINDAKİ FUNCTION KODUNU AŞAĞIDA YAZDIM

ŞİMDİ ÖĞRENDİĞİMİ ANLATAYIM,

}

*/

 

/****** {MSSQL FUNCTION YARATMA} ******/

IF  EXISTS (

SELECT * FROM dbo.sysobjects

WHERE id = OBJECT_ID(N'[dbo].[DENEME]')

AND xtype in (N'FN', N'IF', N'TF')

)

 

DROP FUNCTION [dbo].[DENEME]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

 

create function DENEME(@VERI float) // deneme adında function yarat ve @veri adında float değer atanıyor

returns float // geri dönen değer float olsun

as

begin

  declare @result float // @result adında float bir değer

  set @result = @VERI*5 // @result e atanmış olan @veri değerinin  5 katını eşitle

  return(@result) // return = geri gönder // @result ü return ile geri gönder

end

 

GO

SET ANSI_NULLS OFF

GO

SET QUOTED_IDENTIFIER OFF

 

/*

{

yani database de deneme adında bi function yaratıyoruz

bu functionun tek amacı ise ona gönderilen bir sayının 5 katını geri göndermek.

 

function oluştu şimdi ise database de iki tablo oluşturup

triggerımızı yazalım ve function ile destekliyelim.

 

size tabloların Query Analyzer kodunu vereyim

DENEMEVERI ADINDA DATABASE inde bunları yazıp çalıştırırsanız

tablolar oluşmuş olur

 

 

CREATE TABLE [STOKKODU] (

      [STOKKODU] [char] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,

      [DEGER] [float] NULL ,

      CONSTRAINT [IX_STOKKODU] UNIQUE  NONCLUSTERED

      (

            [STOKKODU]

      )  ON [PRIMARY]

) ON [PRIMARY]

GO

 

CREATE TABLE [DSTK] (

      [STOKKOD] [char] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

      [VERISI] [float] NULL ,

      CONSTRAINT [FK_DSTK_STOKKODU] FOREIGN KEY

      (

            [STOKKOD]

      ) REFERENCES [STOKKODU] (

            [STOKKODU]

      )

) ON [PRIMARY]

GO

 

 

tablolarıda bu şekilde oluşturduktan sonra Query Analyzer da

DENEMEVERI ADINDA DATABASE inde

aşağıdaki kodları yazarak triggerda oluşmuş olur

}

*/

 

//******** TRIGGER YARATMA *****//

IF  EXISTS (

SELECT * FROM dbo.sysobjects

WHERE id = OBJECT_ID(N'[dbo].[RAMAZANDENEME]')

AND OBJECTPROPERTY(id, N'IsTrigger') = 1

)

 

DROP TRIGGER [dbo].[RAMAZANDENEME]

GO

 

CREATE TRIGGER RAMAZANDENEME ON DSTK FOR INSERT // ramazandeneme adında triggerı dstk tablosunda oluştur sadece insert modunda çalışsın

AS

BEGIN

  declare @VERI float // @veri adında float bir değer ata

  declare @stk varchar(15) // @stk adında 15 karakterlik varchar bir değer ata

  declare @donus float // @donus adında float bir değer ata

 

      SET  @stk =(select stokkod from inserted) // @stk ya dstk içinde a anda açılan stokkod u ata

      SET @VERI=(SELECT VERISI FROM INSERTED) // @veri ya dstk içinde a anda açılan VERISI değerini ata

      IF @VERI IS NULL // değer boşsa

      SET @VERI=0.0 // değeri 0 yap

    SET NOCOUNT ON

    set @donus = dbo.DENEME(@VERI) // @donus e az önce oluşturduğumuz function ile @veri değerini döndür

 

    update STOKKODU //stokkudu değişime hazırla

      set DEGER = DEGER + @donus // DEGER alanına @donus değerini ekle

    where STOKKODU = @STK // tabi stokkodunu bulupta

END

 

GO

SET ANSI_NULLS OFF

GO

SET QUOTED_IDENTIFIER OFF

 

 

{

sizinde tahmin edebileceğiniz gibi

delphi programında dskt tablosuna eklenen her stokkod un deger i bağlı olduğu

stokkodu tablosundaki stokkunun bulunduğu satırdaki VERISI değerine eklenecektir.

delphide bunuda aynı anda görmek isterseniz stokkodu tablosunu refresh yapın veya kapatıp açın.

bu tabloları hangi forma kullanırsanız kullanın insert ile değerin diğer tabloya + olarak gitmesi

için ayrıca kod yazmanız gerekmez.

 

Ramazan AYER

ramazanayer@gmail.com

Bunları ve daha fazlasını bilipte paylaşmayanlara kırgın

}

 

Delphi - .....................................

 

Companent'e İhtiyacı Olanlar

Companente İhtiyacı Olan Var Mı Veya Elinde Companent i Olan Varsa siteye download edebilir mi

 

Delphi - .....................................

 

Companent'e İhtiyacı Olanlar

Companente İhtiyacı Olan Var Mı Veya Elinde Companent i Olan Varsa siteye download edebilir mi

Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol