Programlama yapalım ve Öğrenelim. - Delphi Eğitim140
  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
 

Tüm Dizi Kodları

 

Dizi Fonksiyonları

  

Diziler ile ilgili işleminizi kolay ve hızlı yapabilmeniz için, Delphi' ye bir çok dizi fonksiyonu eklenmiştir. Aşagida bu fonksiyonlar sirasi ile incelenmekte olup, ardindan da örneklendirilmeleri yapilmiştir. Fonksiyonlarin kullanilabilmesi için uses satirina math kütüphanesini eklemeyi unutmayiniz.

 

Mean(Dizi);

 

 

 

Parametre olarak girilen dizi elemanlarinin aritmetik ortalamasini hesaplayan bir fonksiyondur. Dizi degişkeninin tipi ondalikli sayi tipinde olmalidir.

 

 

 

Procedure TForm1.Button1Click(Sender; Object);

 

const

 

    Dizi : Array[0..3] of Double=(10, 20, 30, 40); // Tip ondalikli olmali

 

var

 

    Sonuc : Extended;

 

begin

 

    Sonuc := Mean(Dizi);

 

    Caption:= FloatToStr(Sonuc);  // Elemanlarin aritmetik ortalamasini verir

 

end;

 

 

 

 

 

 

 

 

 

Sum(Dizi);

 

 

 

Parametre olarak diziye gönderilen elemanlarin toplamini hesaplayan bir fonksiyondur.

 

 

 

Procedure TForm1.Button1Click(Sender; Object);

 

const

 

    Dizi : Array[0..3] of Double=(10, 20, 30, 40); // Tip ondalikli olmali

 

var

 

    Sonuc : Extended;

 

begin

 

    Sonuc := Sum(Dizi);

 

    Caption:= FloatToStr(Sonuc);  // Elemanlarin toplamini verir

 

end;

 

SumInt(Dizi);

 

 

 

Parametre olarak girilen dizi elemanlarinin toplamini hesaplayan bir fonksiyondur. Burada dikkat edeceginiz husus, dizi elemanlarinin tam sayi tipli tanimlanmalari gerektigidir.

 

 

 

Procedure TForm1.Button1Click(Sender; Object);

 

const

 

    Dizi : Array[0..3] of Integer=(10, 20, 30, 40); // Tip tam sayi olmali

 

var

 

    Sonuc : Extended;

 

begin

 

    Sonuc := SumInt(Dizi);

 

    Caption:= FloatToStr(Sonuc);  // Elemanlarin toplamini verir

 

end;

 

 

 

Bir önceki fonksiyon zaten bu işlemi kolayca yapar demeyin. Çünkü tam sayili işlemler çok daha hizli bir şekilde sonuca ulaştirilirlar.

 

 

 

 

 

 

 

 

 

SumOfSquares(Dizi);

 

 

 

Parametre olarak girilen dizi elemanlarinin karelerinin toplamini hesaplayan bir fonksiyondur.

 

 

 

Procedure TForm1.Button1Click(Sender; Object);

 

const

 

    Dizi : Array[0..3] of Double=(10, 20, 30, 40);

 

var

 

    Sonuc : Extended;

 

begin

 

    Sonuc := SumOfSquares(Dizi);

 

    Caption:= FloatToStr(Sonuc);  // Elemanlarin karelerinin toplamini verir

 

end;

 

 

 

Fonksiyondan geriye dönen deger ondalikli sayi olacagi için, reel tip bir degişkene aktarilmalidir.

 

 

 

 

 

 

 

 

 

SumsAndSquares(Dizi , Toplam , Kare_Toplam);

 

 

 

Birinci parametre ile girilen dizi degişkeninin elemanlarinin toplamini ikinci parametreye, elemanlarinin karelerinin toplamini da üçüncü parametreye aktaran bir prosedürdür.

 

 

 

Procedure TForm1.Button1Click(Sender; Object);

 

const

 

    Dizi : Array[0..3] of Double=(10, 20, 30, 40);

 

var

 

    Toplam, Kare_Toplam : Extended;

 

begin

 

    SumOfSquares(Dizi , Toplam , Kare_Toplam);

 

    Caption:= 'Elemanların Toplamı : '+FloatToStr(Toplam)+'  Elemanların Karelerinin Toplamı : '+FloatToStr(Kare_Toplam);

 

end;

 

 

 

 

 

 

 

 

 

TotalVariance(Dizi);

 

 

 

Dizi elemanlarına ait toplam varyansı hesaplayan bir fonksiyondur.

 

 

 

Procedure TForm1.Button1Click(Sender; Object);

 

const

 

    Dizi : Array[0..3] of Double=(10, 20, 30, 40);

 

var

 

    Sonuc : Extended;

 

begin

 

    Sonuc := TotalVariance(Dizi);

 

    Caption:= FloatToStr(Sonuc);

 

end;

 

 

 

 

 

 

 

 

 

Variance(Dizi);

 

 

 

Dizi elemanlarına ait varyans değerini hesaplayan bir fonksiyondur.

 

 

 

Procedure TForm1.Button1Click(Sender; Object);

 

const

 

    Dizi : Array[0..3] of Double=(10, 20, 30, 40);

 

var

 

    Sonuc : Extended;

 

begin

 

    Sonuc := Variance(Dizi);

 

    Caption:= FloatToStr(Sonuc);

 

end;

 

 

 

 

 

 

 

 

 

EnsureRange(Küçük , Orta , Büyük);

 

 

 

Parametre olarak girilen elemanlar arasında ortanca değere sahip olanı döndüren bir fonksiyondur.

 

 

 

Procedure TForm1.Button1Click(Sender; Object);

 

var

 

    Sonuc : Extended;

 

begin

 

    Sonuc := EnsureRange(40 , 100 , 70); // Orta eleman

 

    Caption:= FloatToStr(Sonuc); // 70 yazar

 

end;

 

 

 

 

 

 

 

 

 

High(Dizi);

 

 

 

Parametre ile girilen dizinin en son elemanının index numarasını döndüren bir fonksiyondur.

 

 

 

Procedure TForm1.Button1Click(Sender; Object);

 

const

 

    Dizi : Array[0..3] of Double=(10, 20, 30, 40);

 

var

 

    Sonuc : Integer;

 

begin

 

    Sonuc := High(Dizi);

 

    Caption:= IntToStr(Sonuc); // 3 yazar

 

end;

 

 

 

Örneğe dikkat edecek olursanız tanımlamış olduğunuz dizi değişkenin en son elemanının index numarası 3 tür. Bu değeri öğrenmek için kullanabileceğiniz önemli bir fonksiyondur. (Bilhassa dinamik dizilerde kullanımı zorunlu gibidir)

 

 

 

 

 

 

 

 

 

Low(Dizi);

 

 

 

Parametre ile girilen dizinin ilk elemanının index numarasını döndüren bir fonksiyondur.

 

 

 

Procedure TForm1.Button1Click(Sender; Object);

 

const

 

    Dizi : Array[0..3] of Double=(10, 20, 30, 40);

 

var

 

    Sonuc : Integer;

 

begin

 

    Sonuc := Low(Dizi);

 

    Caption:= IntToStr(Sonuc); // 0 yazar

 

end;

 

 

 

Dizinin ilk elemanı ( dizi[0] ) 0 olduğu için, örneğimizde geriye dönecek olan değer  0 olacaktır.

 

 

 

Aşağıdaki gibi bir  (veya benzeri bir durumda ) durumda bu iki fonksiyon sizin için yararlı olacaktır. Sınıf mevcudunun bilinmediği (veya her sınıf  için farklı olduğu durumlarda) dizinin kaç eleman olacağı bilinmeyecek, aynı zamanda alt ve üst sınırları devamlı olarak farklı olacaktır. Sabit değerler yerine bu fonksiyonları kullanırsanız her zaman doğru sonuçlara ulaşmanız mümkün olacaktır.

 

 

 

Procedure TForm1.Button1Click(Sender; Object);

 

var

 

    Ogrenci : Array Of Integer;

 

    Mevcut, I : Integer;

 

begin

 

    Mevcut := StrToInt(Inputbox('Sınıf Mevcudunu Giriniz','Mevcut',''));

 

    SetLength(Ogrenci , Mevcut);

 

    For I:=Low(Ogrenci) To High(Ogrenci) Do // İlk ten son elemana kadar

 

    Ogrenci[i] := StrToInt(InputBox('Notu Giriniz','Not',''));

 

end;

 

 

 

 

 

 

 

 

 

Low(Dizi);

 

 

 

Parametre ile girilen dizinin ilk elemanının index numarasını döndüren bir fonksiyondur.

 

 

 

Procedure TForm1.Button1Click(Sender; Object);

 

const

 

    Dizi : Array[0..3] of Double=(10, 20, 30, 40);

 

var

 

    Sonuc : Integer;

 

begin

 

    Sonuc := Low(Dizi);

 

    Caption:= IntToStr(Sonuc); // 0 yazar

 

end;

 

 

 

Dizinin ilk elemanı ( dizi[0] ) 0 olduğu için, örneğimizde geriye dönecek olan değer  0 olacaktır.

 

 

 

Aşağıdaki gibi bir  (veya benzeri bir durumda ) durumda bu iki fonksiyon sizin için yararlı olacaktır. Sınıf mevcudunun bilinmediği (veya her sınıf  için farklı olduğu durumlarda) dizinin kaç eleman olacağı bilinmeyecek, aynı zamanda alt ve üst sınırları devamlı olarak farklı olacaktır. Sabit değerler yerine bu fonksiyonları kullanırsanız her zaman doğru sonuçlara ulaşmanız mümkün olacaktır.

 

 

 

Procedure TForm1.Button1Click(Sender; Object);

 

var

 

    Ogrenci : Array Of Integer;

 

    Mevcut, I : Integer;

 

begin

 

    Mevcut := StrToInt(Inputbox('Sınıf Mevcudunu Giriniz','Mevcut',''));

 

    SetLength(Ogrenci , Mevcut);

 

    For I:=Low(Ogrenci) To High(Ogrenci) Do // İlk ten son elemana kadar

 

    Ogrenci[i] := StrToInt(InputBox('Notu Giriniz','Not',''));

 

end;

 

 

 

 

 

 

 

 

 

MaxIntValue(Dizi);

 

 

 

Parametre olarak girilen dizi elemanları içerisinde maximum değeri bulabilen bir fonksiyondur. Dikkat edeceğiniz husus dizi değişkenin tam sayı tipli olması gerektiğidir.

 

 

 

Procedure TForm1.Button1Click(Sender; Object);

 

const

 

    Dizi : Array[0..3] of Integer=(10, 70, 30, 40);

 

var

 

    Sonuc : Integer;

 

begin

 

    Sonuc := MaxIntValue(Dizi); // En büyük değeri bul

 

    Caption:= IntToStr(Sonuc); // 70 yazar

 

end;

 

 

 

 

 

 

 

 

 

MaxValue(Dizi);

 

 

 

Yine parametre olarak girilen dizi elemanlarından en büyüğünün değerini döndürür. Üstünlüğü tam veya ondalıklı sayıların ikisi içinde kullanılabilmesidir.

 

 

 

Fonksiyondan geriye dönecek olan değer ondalıklı sayı içereceği için FloatToStr tip dönüştürme fonksiyonu sayesinde yazdırılabilir.

 

 

 

Procedure TForm1.Button1Click(Sender; Object);

 

const

 

    Dizi : Array[0..3] of Integer=(10, 20, 30, 40);

 

var

 

    Sonuc : Extended;

 

begin

 

    Sonuc := MaxValue(Dizi);

 

    Caption:= FloatToStr(Sonuc); // 40 yazar

 

end;

 

 

 

 

 

 

 

 

 

MinIntValue(Dizi);

 

 

 

Parametre olarak girilen dizi elemanları içerisinde minimum değeri bulabilen bir fonksiyondur. Dikkat edeceğiniz husus dizi değişkenin tam sayı tipli olması gerektiğidir.

 

 

 

Procedure TForm1.Button1Click(Sender; Object);

 

const

 

    Dizi : Array[0..3] of Integer=(10, 70, 30, 40);

 

var

 

    Sonuc : Integer;

 

begin

 

    Sonuc := MinIntValue(Dizi); // En büyük değeri bul

 

    Caption:= IntToStr(Sonuc); // 10 yazar

 

end;

 

 

 

 

 

 

 

 

 

MinValue(Dizi);

 

 

 

Yine parametre olarak girilen dizi elemanlarından en küçüğünün değerini döndürür. Üstünlüğü tam veya ondalıklı sayıların ikisi içinde kullanılabilmesidir.

 

 

 

Fonksiyondan geriye dönecek olan değer ondalıklı sayı içereceği için FloatToStr tip dönüştürme fonksiyonu sayesinde yazdırılabilir.

 

 

 

Procedure TForm1.Button1Click(Sender; Object);

 

const

 

    Dizi : Array[0..3] of Integer=(10, 20, 30, 40);

 

var

 

    Sonuc : Extended;

 

begin

 

    Sonuc := MinValue(Dizi);

 

    Caption:= FloatToStr(Sonuc); // 10 yazar

 

end;

 

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

 

Dosyayı programla ilişkilendirmek

Yaklaşık 15 aydır Neuron simulasyonu ile ilgili bir programla uğraşıyorum. Bu programda yazılan parametreleri

uzantısı nmp olan bir dosyaya kaydedebiliyor ve daha önce kaydedilmişleri açabiliyorsunuz.

 

Programı açmadan windows da dosyanın üzerine çift tıklayınca programla beraber nasıl açtırabilirim?

 

Yani dpr dosyasını çift tıkladığımda delphinin proje ile beraber açılması gibi.

 

 

 

Bir de Teechart ile grafikler oluşturuyorum. İterasyon arttıkça programın sistem Ram inde kapladığı

alan gittikçe artıyor. Bu bazen 200 MByte a kadar çıkabiliyor. Bunu nasıl önleyebilirim.

 

Saygılarımla,

Kenan Zengin

 

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

 

Dosyayı programla ilişkilendirmek

Yaklaşık 15 aydır Neuron simulasyonu ile ilgili bir programla uğraşıyorum. Bu programda yazılan parametreleri

uzantısı nmp olan bir dosyaya kaydedebiliyor ve daha önce kaydedilmişleri açabiliyorsunuz.

 

Programı açmadan windows da dosyanın üzerine çift tıklayınca programla beraber nasıl açtırabilirim?

 

Yani dpr dosyasını çift tıkladığımda delphinin proje ile beraber açılması gibi.

 

 

 

Bir de Teechart ile grafikler oluşturuyorum. İterasyon arttıkça programın sistem Ram inde kapladığı

alan gittikçe artıyor. Bu bazen 200 MByte a kadar çıkabiliyor. Bunu nasıl önleyebilirim.

 

Saygılarımla,

Kenan Zengin

 

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

 

Treeviewde  Itemları Kalın Gosterme

uses

  CommCtrl;

 

procedure SetNodeBoldState(Node: TTreeNode; Value: Boolean);

var

  TVItem: TTVItem;

begin

  if not Assigned(Node) then Exit;

  with TVItem do

  begin

    mask := TVIF_STATE or TVIF_HANDLE;

    hItem := Node.ItemId;

    stateMask := TVIS_BOLD;

    if Value then state := TVIS_BOLD

    else

      state := 0;

    TreeView_SetItem(Node.Handle, TVItem);

  end;

end;

 

// Örnek olarak ilk satırı kalın yapalım

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  SetNodeBoldState(TreeView1.Items[0], True);

end;

 

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

 

Treeviewde  Itemları Kalın Gosterme

uses

  CommCtrl;

 

procedure SetNodeBoldState(Node: TTreeNode; Value: Boolean);

var

  TVItem: TTVItem;

begin

  if not Assigned(Node) then Exit;

  with TVItem do

  begin

    mask := TVIF_STATE or TVIF_HANDLE;

    hItem := Node.ItemId;

    stateMask := TVIS_BOLD;

    if Value then state := TVIS_BOLD

    else

      state := 0;

    TreeView_SetItem(Node.Handle, TVItem);

  end;

end;

 

// Örnek olarak ilk satırı kalın yapalım

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  SetNodeBoldState(TreeView1.Items[0], True);

end;

 

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

 

yeter kardeşim (Dr. Kill haklısın)

'Kardeşim valla ben böyle işin ANASINI S.... bu nedir böyle

 

bende ilk geldiğimde bir kere yaptım özür dilerim(ki diledim)

 

bu kadar da olmaz be kardeşim.

 

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

 

yeter kardeşim (Dr. Kill haklısın)

'Kardeşim valla ben böyle işin ANASINI S.... bu nedir böyle

 

bende ilk geldiğimde bir kere yaptım özür dilerim(ki diledim)

 

bu kadar da olmaz be kardeşim.

 

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

 

DelphiForm Senin ............ KOYAYIM YETER LAN !!!!!!!!!

Lan kodbank ı kirlettin durdun sen şerefsizmisin he utanmıyormusun

 haysiyetsiz köpek şerefsiz insan...

 Sen ne sanıyon kendini senin gibilerden

 HAYVAN OLMAZ be!!! İnsan değilsin sen

 BÖCEK SİN anlıyormusun.... İnsanlar burda birşeyler

 öğreniyor sense hit kazanma çabasında iyiye kullanılan

 bir programı kötü yönler için kullanıyorsun..

 

 

 

 Sana Açık Açık söylüyorum senin ANANIN .......... KOYAYIM anlıyormusun.

 

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

 

DelphiForm Senin ............ KOYAYIM YETER LAN !!!!!!!!!

Lan kodbank ı kirlettin durdun sen şerefsizmisin he utanmıyormusun

 haysiyetsiz köpek şerefsiz insan...

 Sen ne sanıyon kendini senin gibilerden

 HAYVAN OLMAZ be!!! İnsan değilsin sen

 BÖCEK SİN anlıyormusun.... İnsanlar burda birşeyler

 öğreniyor sense hit kazanma çabasında iyiye kullanılan

 bir programı kötü yönler için kullanıyorsun..

 

 

 

 Sana Açık Açık söylüyorum senin ANANIN .......... KOYAYIM anlıyormusun.

 

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

 

Edit1 de yazdıgım metinleri listbox ta gösterebilme imkanım war mı?

Edit1 de yazdıgım metinleri listbox ta gösterebilme imkanım war mı?

             

              yani hatadan anladıgım kadarıyla bir dönüştürücü lasım

              'inttostr' gibi bu konuda yardımcı olursanız sevinirim .ve bu tür kodları nerden bulabilirm?

               bende delphi ye yeni başladım .pascal da başlamıstım. Okul müfredatında delphi olmadıgı için başlamamı söylediler.

               eger yardımlarınızı esirgemezseniz . teşşekürler:)

 

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

 

Edit1 de yazdıgım metinleri listbox ta gösterebilme imkanım war mı?

Edit1 de yazdıgım metinleri listbox ta gösterebilme imkanım war mı?

             

              yani hatadan anladıgım kadarıyla bir dönüştürücü lasım

              'inttostr' gibi bu konuda yardımcı olursanız sevinirim .ve bu tür kodları nerden bulabilirm?

               bende delphi ye yeni başladım .pascal da başlamıstım. Okul müfredatında delphi olmadıgı için başlamamı söylediler.

               eger yardımlarınızı esirgemezseniz . teşşekürler:)

 

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

 

yeter artık

(*

sende sıktın ama artık

bir şeyi 22 defa göndermenin ne anlamı var!!

kodbankı her güncellediğimde senin gönderilerini silmek zorundamıyım!!

anladık sitenin ismini buraya ekledikçe hit in artıyor ama

peşpeşe 9 kere göndermekte artık.....

*)

 

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

 

yeter artık

(*

sende sıktın ama artık

bir şeyi 22 defa göndermenin ne anlamı var!!

kodbankı her güncellediğimde senin gönderilerini silmek zorundamıyım!!

anladık sitenin ismini buraya ekledikçe hit in artıyor ama

peşpeşe 9 kere göndermekte artık.....

*)

 

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

 

SQL tırnak problemi

query1.sql.add(''''); // komutu tek tırnak girecektir. (')

query1.sql.add(''''''); // bu komut ise 2 tırnak işareti girecektir. ('')

query1.sql.add(#39); //komutu tek tırnak girer

 

örnek : query1.sql.add('Where Adi = ''Ali'' ');

         yada

        query1.sql.add('Where Adi ='+#39+'Ali'+#39);

       

        yazılan String i tırnak içine alan bi komut vardı onu hatırlamıyorum.

 

yani tek tırnak yazdırmak için iki tane tırnak işareti koymanız gerekiyor.

 

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

 

SQL tırnak problemi

query1.sql.add(''''); // komutu tek tırnak girecektir. (')

query1.sql.add(''''''); // bu komut ise 2 tırnak işareti girecektir. ('')

query1.sql.add(#39); //komutu tek tırnak girer

 

örnek : query1.sql.add('Where Adi = ''Ali'' ');

         yada

        query1.sql.add('Where Adi ='+#39+'Ali'+#39);

       

        yazılan String i tırnak içine alan bi komut vardı onu hatırlamıyorum.

 

yani tek tırnak yazdırmak için iki tane tırnak işareti koymanız gerekiyor.

 

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

 

tospaha reklamcı

ulan gezici git baska yerde yap suu reklamını bir tane neyiyine yetmiyor

7-8 tane aynı seyi reklam atmak neyi çözüyor ....

git google kayıt yap ibişş

sizin yazdıklarınız hep ayıklıyorum yaa yeter atık yaa

kodlar

 

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

 

tospaha reklamcı

ulan gezici git baska yerde yap suu reklamını bir tane neyiyine yetmiyor

7-8 tane aynı seyi reklam atmak neyi çözüyor ....

git google kayıt yap ibişş

sizin yazdıklarınız hep ayıklıyorum yaa yeter atık yaa

kodlar

 

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

 

HİZMETİNİZDEYİZ....www.delphiform.com

Delphi ile ilgili aradıklarınız bulamadıklarınız.....

 

 

 Advantage veri tabanı kesintisiz destek yardım merkezi...

 Advantage hakkında öğrenmek istedikleriniz...

 

 advanatege veri tabanı kaynakları ve dosyaları

 

 www.delphiform.com adresinde bulacaksınız

 

 e-mail:info@delphiform.com

 

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

 

HİZMETİNİZDEYİZ....www.delphiform.com

Delphi ile ilgili aradıklarınız bulamadıklarınız.....

 

 

 Advantage veri tabanı kesintisiz destek yardım merkezi...

 Advantage hakkında öğrenmek istedikleriniz...

 

 advanatege veri tabanı kaynakları ve dosyaları

 

 www.delphiform.com adresinde bulacaksınız

 

 e-mail:info@delphiform.com

 

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

 

HİZMETİNİZDEYİZ....www.delphiform.com

Delphi ile ilgili aradıklarınız bulamadıklarınız.....

 

 

 Advantage veri tabanı kesintisiz destek yardım merkezi...

 Advantage hakkında öğrenmek istedikleriniz...

 

 advanatege veri tabanı kaynakları ve dosyaları

 

 www.delphiform.com adresinde bulacaksınız

 

 e-mail:info@delphiform.com

 

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

 

HİZMETİNİZDEYİZ....www.delphiform.com

Delphi ile ilgili aradıklarınız bulamadıklarınız.....

 

 

 Advantage veri tabanı kesintisiz destek yardım merkezi...

 Advantage hakkında öğrenmek istedikleriniz...

 

 advanatege veri tabanı kaynakları ve dosyaları

 

 www.delphiform.com adresinde bulacaksınız

 

 e-mail:info@delphiform.com

 

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

 

SQL - Tekrarlanan Kayıtları Listeleme

Aynı kaydın birden fazla girildiği durumlarda,

bu kayıtların listelenmesini amaçlayan SQL kodudur...

____________________________________________________________

 

SELECT min(mukod), muad FROM musteri

WHERE (muad IN (SELECT muad

               FROM musteri

             GROUP BY muad

             HAVING COUNT(muad) > 1 )) GROUP BY muad

             

____________________________________________________________

 

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

 

SQL - Tekrarlanan Kayıtları Listeleme

Aynı kaydın birden fazla girildiği durumlarda,

bu kayıtların listelenmesini amaçlayan SQL kodudur...

____________________________________________________________

 

SELECT min(mukod), muad FROM musteri

WHERE (muad IN (SELECT muad

               FROM musteri

             GROUP BY muad

             HAVING COUNT(muad) > 1 )) GROUP BY muad

             

____________________________________________________________

 

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


Treeview in Combobox içinde gösterilmesi component

{

bu dosyayı dktreebox.pas olarak kaydedip component olarak ekleyebilirsiniz

}

 

unit dkTreeBox;

 

interface

uses Classes, Graphics, {Types,} ComCtrls,

Controls, Windows, SysUtils, Messages, Forms,ImgList;

type

  TdkTreeBox = class;

 

  TdkListView = class(TCustomTreeView)

  private

    FEdit: TdkTreeBox;

    procedure WMKillFocus(var Message: TMessage); message WM_KILLFOCUS;

  protected

    procedure MouseDown(Button: TMouseButton; Shift: TShiftState;

      X, Y: Integer); override;

    procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;

    procedure KeyPress(var Key: Char); override;

    procedure CreateParams(var Params: TCreateParams); override;

  public

    constructor Create(AOwner: TComponent); override;

  end;

 

  TdkTreeBox = class(TCustomControl)

  private

    FPopupList: TdkListView;

    FListVisible: Boolean;

    FText: string;

    FButtonWidth: Integer;

    FPressed: Boolean;

    FHasFocus: Boolean;

    FAlignment: TAlignment;

    FOnDropDown: TNotifyEvent;

    FOnCloseUp: TNotifyEvent;

    procedure SetAlignment(const Value: TAlignment);

    procedure WMSetFocus(var Message: TMessage); message WM_SETFOCUS;

    procedure WMKillFocus(var Message: TMessage); message WM_KILLFOCUS;

    procedure SetOnCloseUp(const Value: TNotifyEvent);

    procedure SetOnDropDown(const Value: TNotifyEvent);

    function GetItems: TTreeNodes;

    procedure SetItems(const Value: TTreeNodes);

    function GetImages: TCustomImageList;

    function GetStateImages: TCustomImageList;

    procedure SetImages(const Value: TCustomImageList);

    procedure SetStateImages(const Value: TCustomImageList);

    function GetListHeight: Integer;

    procedure SetListHeight(const Value: Integer);

  protected

    procedure KeyDown(var Key: Word; Shift: TShiftState); override;

    procedure KeyUP(var Key: Word; Shift: TShiftState); override;

    procedure KeyPress(var Key: Char); override;

    procedure MouseDown(Button: TMouseButton; Shift: TShiftState;

      X, Y: Integer); override;

    procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;

    procedure MouseUp(Button: TMouseButton; Shift: TShiftState;

      X, Y: Integer); override;

    procedure Paint; override;

    procedure CreateParams(var Params: TCreateParams); override;

    procedure DropDown; virtual;

    procedure CloseUp(Accept: Boolean); virtual;

  public

    constructor Create(AOwner: TComponent); override;

    property Text: string read FText;

  published

    property Alignment: TAlignment read FAlignment write SetAlignment;

    property OnDropDown: TNotifyEvent read FOnDropDown write SetOnDropDown;

    property OnCloseUp: TNotifyEvent read FOnCloseUp write SetOnCloseUp;

    property Items: TTreeNodes read GetItems write SetItems;

    property Images: TCustomImageList read GetImages write SetImages;

    property StateImages: TCustomImageList read GetStateImages write SetStateImages;

    property ListHeight:Integer read GetListHeight write SetListHeight;

    property Anchors;

    property BiDiMode;

    property Color;

    property Constraints;

    property Ctl3D;

    property DragCursor;

    property DragKind;

    property DragMode;

    property Enabled;

    property Font;

    property ImeMode;

    property ImeName;

    property ParentBiDiMode;

    property ParentColor;

    property ParentCtl3D;

    property ParentFont;

    property ParentShowHint;

    property PopupMenu;

    property ShowHint;

    property Visible;

    property OnClick;

    property OnContextPopup;

    property OnDragDrop;

    property OnDragOver;

    property OnEndDock;

    property OnEndDrag;

    property OnEnter;

    property OnExit;

    property OnKeyDown;

    property OnKeyPress;

    property OnKeyUp;

    property OnMouseDown;

    property OnMouseMove;

    property OnMouseUp;

    property OnStartDock;

    property OnStartDrag;

  end;

procedure Register;

implementation

 

{ TdkTreeBox }

procedure Register;

begin

RegisterComponents('Samples',[TdkTreeBox]);

end;

 

procedure TdkTreeBox.CloseUp(Accept: Boolean);

begin

  SetFocus;

  if Accept and Assigned(FPopupList.Selected) then

    FText := FPopupList.Selected.Text;

  SetWindowPos(FPopupList.Handle, 0, 0, 0, 0, 0, SWP_NOZORDER or

    SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE or SWP_HIDEWINDOW);

  FListVisible := False;

  if Assigned(FOnCloseUp) then FOnCloseUp(Self);

  Repaint;

end;

 

constructor TdkTreeBox.Create(AOwner: TComponent);

begin

  inherited;

  FButtonWidth := GetSystemMetrics(SM_CXVSCROLL);

  ControlStyle := ControlStyle + [csReplicatable];

  if NewStyleControls then

    ControlStyle := [csOpaque]

  else

    ControlStyle := [csOpaque, csFramed];

  ParentColor := False;

  TabStop := True;

  FPopupList := TdkListView.Create(Self);

  FListVisible := False;

  FPopupList.HideSelection := True;

  Height:=24;

end;

 

procedure TdkTreeBox.CreateParams(var Params: TCreateParams);

begin

  inherited CreateParams(Params);

  with Params do

    if NewStyleControls and Ctl3D then

      ExStyle := ExStyle or WS_EX_CLIENTEDGE

    else

      Style := Style or WS_BORDER;

end;

 

procedure TdkTreeBox.DropDown;

var

  P: TPoint;

  Y: Integer;

begin

  if Assigned(FOnDropDown) then FOnDropDown(Self);

  FPopupList.Color := Color;

  FPopupList.Font := Font;

  FPopupList.Width := Width;

  FListVisible := True;

  P := Parent.ClientToScreen(Point(Left, Top));

  Y := P.Y + Height;

  if Y + FPopupList.Height > Screen.Height then Y := P.Y - FPopupList.Height;

  SetWindowPos(FPopupList.Handle, HWND_TOP, P.X, Y, 0, 0,

    SWP_NOSIZE or SWP_SHOWWINDOW);

  FPopupList.Repaint;

end;

 

function TdkTreeBox.GetImages: TCustomImageList;

begin

Result:=FPopupList.Images;

end;

 

function TdkTreeBox.GetItems: TTreeNodes;

begin

  Result := FPopupList.Items;

end;

 

function TdkTreeBox.GetListHeight: Integer;

begin

Result:=FPopupList.Height;

end;

 

function TdkTreeBox.GetStateImages: TCustomImageList;

begin

Result:=FPopupList.StateImages;

end;

 

procedure TdkTreeBox.KeyDown(var Key: Word; Shift: TShiftState);

begin

  inherited;

  FPressed := True;

  Invalidate;

  if not FlistVisible then

    DropDown

  else

    CloseUp(False);

end;

 

procedure TdkTreeBox.KeyPress(var Key: Char);

begin

  inherited;

end;

 

 

procedure TdkTreeBox.KeyUP(var Key: Word; Shift: TShiftState);

begin

  inherited;

  Invalidate;

end;

 

procedure TdkTreeBox.MouseDown(Button: TMouseButton; Shift: TShiftState; X,

  Y: Integer);

begin

  inherited;

  FPressed := True;

  Invalidate;

  if not FlistVisible then

    DropDown

  else

    CloseUp(False);

end;

 

procedure TdkTreeBox.MouseMove(Shift: TShiftState; X, Y: Integer);

begin

  inherited;

 

 

end;

 

procedure TdkTreeBox.MouseUp(Button: TMouseButton; Shift: TShiftState; X,

  Y: Integer);

begin

  inherited;

  Invalidate;

end;

 

procedure TdkTreeBox.Paint;

var

  W, X, Flags: Integer;

  Selected: Boolean;

  R: TRect;

begin

  Canvas.Font := Font;

  Canvas.Brush.Color := Color;

  if Enabled then

    Canvas.Font.Color := Font.Color

  else

    Canvas.Font.Color := clGrayText;

  Selected := FHasFocus;

  if Selected then

  begin

    Canvas.Font.Color := clHighlightText;

    Canvas.Brush.Color := clHighlight;

  end;

  if (csDesigning in ComponentState) then

    FText := Name;

 

  if UseRightToLeftAlignment then ChangeBiDiModeAlignment(FAlignment);

  W := ClientWidth - FButtonWidth;

  X := 2;

  case Alignment of

    taRightJustify: X := W - Canvas.TextWidth(Text) - 3;

    taCenter: X := (W - Canvas.TextWidth(Text)) div 2;

  end;

  SetRect(R, 1, 1, W - 1, ClientHeight - 1);

  if (SysLocale.MiddleEast) and (BiDiMode = bdRightToLeft) then

  begin

    Inc(X, FButtonWidth);

    Inc(R.Left, FButtonWidth);

    R.Right := ClientWidth;

  end;

  if SysLocale.MiddleEast then TControlCanvas(Canvas).UpdateTextFlags;

  Canvas.TextRect(R, X, 2, Text);

  if Selected then Canvas.DrawFocusRect(R);

  SetRect(R, W, 0, ClientWidth, ClientHeight);

  if (SysLocale.MiddleEast) and (BiDiMode = bdRightToLeft) then

  begin

    R.Left := 0;

    R.Right := FButtonWidth;

  end;

  if not Enabled then

    Flags := DFCS_SCROLLCOMBOBOX or DFCS_INACTIVE

  else if FPressed then

    Flags := DFCS_SCROLLCOMBOBOX or DFCS_FLAT or DFCS_PUSHED

  else

    Flags := DFCS_SCROLLCOMBOBOX;

  DrawFrameControl(Canvas.Handle, R, DFC_SCROLL, Flags);

  FPressed := False;

end;

 

procedure TdkTreeBox.SetAlignment(const Value: TAlignment);

begin

  FAlignment := Value;

end;

 

procedure TdkTreeBox.SetImages(const Value: TCustomImageList);

begin

FPopupList.Images:=Value;

end;

 

procedure TdkTreeBox.SetItems(const Value: TTreeNodes);

begin

  FPopupList.Items.Assign(Value);

end;

 

procedure TdkTreeBox.SetListHeight(const Value: Integer);

begin

FPopupList.Height:=Value;

end;

 

procedure TdkTreeBox.SetOnCloseUp(const Value: TNotifyEvent);

begin

  FOnCloseUp := Value;

end;

 

procedure TdkTreeBox.SetOnDropDown(const Value: TNotifyEvent);

begin

  FOnDropDown := Value;

end;

 

procedure TdkTreeBox.SetStateImages(const Value: TCustomImageList);

begin

FPopupList.StateImages:=Value;

end;

 

procedure TdkTreeBox.WMKillFocus(var Message: TMessage);

begin

  FHasFocus := False;

  inherited;

  if not FPopupList.Focused then CloseUp(True);

end;

 

procedure TdkTreeBox.WMSetFocus(var Message: TMessage);

begin

  FHasFocus := True;

  inherited;

  Invalidate;

end;

 

{ TdkListView }

 

constructor TdkListView.Create(AOwner: TComponent);

begin

  inherited Create(AOwner);

  FEdit := TdkTreeBox(AOwner);

  Parent := FEdit;

  Visible := False;

  ControlStyle := ControlStyle + [csNoDesignVisible, csReplicatable];

end;

 

procedure TdkListView.CreateParams(var Params: TCreateParams);

begin

  inherited CreateParams(Params);

  with Params do

  begin

    Style := Style or WS_POPUP or WS_VSCROLL or WS_BORDER;

    ExStyle := WS_EX_TOOLWINDOW;

    AddBiDiModeExStyle(ExStyle);

    WindowClass.Style := CS_SAVEBITS;

  end;

 

end;

 

procedure TdkListView.KeyPress(var Key: Char);

begin

  inherited;

  if (Key = #13) or (Key = #32) then FEdit.CloseUp(True);

  if Key = #27 then FEdit.CloseUp(False);

end;

 

procedure TdkListView.MouseDown(Button: TMouseButton; Shift: TShiftState;

  X, Y: Integer);

var

  VNode: TTreeNode;

  VCanClose: Boolean;

  R: Trect;

begin

  inherited;

  VNode := GetNodeAt(x, y);

  if Assigned(VNode) then

  begin

    R := VNode.DisplayRect(True);

    VCanClose := (R.TopLeft.X < X) and

      (R.TopLeft.y < y);

       if VCanClose then

      FEdit.CloseUp(True);

  end;

end;

 

procedure TdkListView.MouseMove(Shift: TShiftState; X, Y: Integer);

begin

  inherited;

  Selected := GetNodeAt(x, y);

 

end;

 

procedure TdkListView.WMKillFocus(var Message: TMessage);

begin

  inherited;

  try

    FEdit.SetFocus;

  except

  end;

end;

 

 

 

end.

 

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

 

Outlook Klasörlerinin Listelenmesi

procedure TfrmMain.RetrieveOutlookFolders(tvFolders: TTreeView);

 

  procedure LoadFolder(ParentNode: TTreeNode; Folder: OleVariant);

  var

    i: Integer;

    node: TTreeNode;

  begin

    for i := 1 to Folder.Count do

    begin

      node := tvFolders.Items.AddChild(ParentNode, Folder.Item[i].Name;

 

      LoadFolder(node, Folder.Item[i].Folders);

    end;

  end;

 

var

  outlook, NameSpace: OLEVariant;

begin

  outlook := CreateOleObject('Outlook.Application');

  NameSpace := outlook.GetNameSpace('MAPI');

 

  LoadFolder(nil, NameSpace.Folders);

 

  outlook := UnAssigned;

end;

 

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

 

Outlook Klasörlerinin Listelenmesi

procedure TfrmMain.RetrieveOutlookFolders(tvFolders: TTreeView);

 

  procedure LoadFolder(ParentNode: TTreeNode; Folder: OleVariant);

  var

    i: Integer;

    node: TTreeNode;

  begin

    for i := 1 to Folder.Count do

    begin

      node := tvFolders.Items.AddChild(ParentNode, Folder.Item[i].Name;

 

      LoadFolder(node, Folder.Item[i].Folders);

    end;

  end;

 

var

  outlook, NameSpace: OLEVariant;

begin

  outlook := CreateOleObject('Outlook.Application');

  NameSpace := outlook.GetNameSpace('MAPI');

 

  LoadFolder(nil, NameSpace.Folders);

 

  outlook := UnAssigned;

end;

 

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

 

get the local DNS servers list?

unit iphlp;

 

interface

 

uses Windows, System;

 

const

  MAX_HOSTNAME_LEN    = 128;

  MAX_DOMAIN_NAME_LEN = 128;

  MAX_SCOPE_ID_LEN    = 256;

 

type

  //

  // TIPAddressString - store an IP address or mask as dotted decimal string

  //

  PIPAddressString = ^TIPAddressString;

  PIPMaskString    = ^TIPAddressString;

  TIPAddressString = record

    _String: array[0..(4 * 4) - 1] of Char;

  end;

  TIPMaskString = TIPAddressString;

 

  //

  // TIPAddrString - store an IP address with its corresponding subnet mask,

  // both as dotted decimal strings

  //

  PIPAddrString = ^TIPAddrString;

  TIPAddrString = packed record

    Next: PIPAddrString;

    IpAddress: TIPAddressString;

    IpMask: TIPMaskString;

    Context: DWORD;

  end;

 

  //

  // FIXED_INFO - the set of IP-related information which does not depend on DHCP

  //

  PFixedInfo = ^TFixedInfo;

  TFixedInfo = packed record

    HostName: array[0..MAX_HOSTNAME_LEN + 4 - 1] of Char;

    DomainName: array[0..MAX_DOMAIN_NAME_LEN + 4 - 1] of Char;

    CurrentDnsServer: PIPAddrString;

    DnsServerList: TIPAddrString;

    NodeType: UINT;

    ScopeId: array[0..MAX_SCOPE_ID_LEN + 4 - 1] of Char;

    EnableRouting,

    EnableProxy,

    EnableDns: UINT;

  end;

 

 

function GetNetworkParams(pFixedInfo: PFixedInfo; pOutBufLen: PULONG): DWORD; stdcall;

 

  // Get machine DNS Servers and return them in the provided StringList. This list should have been

  // already created by the calling program before performing this call

procedure GetDNSServers(AList: TStringList);

 

 

implementation

 

const

  {$IFDEF MSWINDOWS}

  iphlpapidll = 'iphlpapi.dll';

  {$ENDIF}

 

function GetNetworkParams; external iphlpapidll Name 'GetNetworkParams';

 

 

procedure GetDNSServers(AList: TStringList);

var

  pFI: PFixedInfo;

  pIPAddr: PIPAddrString;

  OutLen: Cardinal;

begin

  AList.Clear;

  OutLen := SizeOf(TFixedInfo);

  GetMem(pFI, SizeOf(TFixedInfo));

  try

    if GetNetworkParams(pFI, @OutLen) = ERROR_BUFFER_OVERFLOW then

    begin

      ReallocMem(pFI, OutLen);

      if GetNetworkParams(pFI, @OutLen) <> NO_ERROR then Exit;

    end;

    // If there is no network available there may be no DNS servers defined

    if pFI^.DnsServerList.IpAddress._String[0] = #0 then Exit;

    // Add first server

    AList.Add(pFI^.DnsServerList.IpAddress._String);

    // Add rest of servers

    pIPAddr := pFI^.DnsServerList.Next;

    while Assigned(pIPAddr) do

    begin

      AList.Add(pIPAddr^.IpAddress._String);

      pIPAddr := pIPAddr^.Next;

    end;

  finally

    FreeMem(pFI);

  end;

end;

 

end.

 

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

 

get the local DNS servers list?

unit iphlp;

 

interface

 

uses Windows, System;

 

const

  MAX_HOSTNAME_LEN    = 128;

  MAX_DOMAIN_NAME_LEN = 128;

  MAX_SCOPE_ID_LEN    = 256;

 

type

  //

  // TIPAddressString - store an IP address or mask as dotted decimal string

  //

  PIPAddressString = ^TIPAddressString;

  PIPMaskString    = ^TIPAddressString;

  TIPAddressString = record

    _String: array[0..(4 * 4) - 1] of Char;

  end;

  TIPMaskString = TIPAddressString;

 

  //

  // TIPAddrString - store an IP address with its corresponding subnet mask,

  // both as dotted decimal strings

  //

  PIPAddrString = ^TIPAddrString;

  TIPAddrString = packed record

    Next: PIPAddrString;

    IpAddress: TIPAddressString;

    IpMask: TIPMaskString;

    Context: DWORD;

  end;

 

  //

  // FIXED_INFO - the set of IP-related information which does not depend on DHCP

  //

  PFixedInfo = ^TFixedInfo;

  TFixedInfo = packed record

    HostName: array[0..MAX_HOSTNAME_LEN + 4 - 1] of Char;

    DomainName: array[0..MAX_DOMAIN_NAME_LEN + 4 - 1] of Char;

    CurrentDnsServer: PIPAddrString;

    DnsServerList: TIPAddrString;

    NodeType: UINT;

    ScopeId: array[0..MAX_SCOPE_ID_LEN + 4 - 1] of Char;

    EnableRouting,

    EnableProxy,

    EnableDns: UINT;

  end;

 

 

function GetNetworkParams(pFixedInfo: PFixedInfo; pOutBufLen: PULONG): DWORD; stdcall;

 

  // Get machine DNS Servers and return them in the provided StringList. This list should have been

  // already created by the calling program before performing this call

procedure GetDNSServers(AList: TStringList);

 

 

implementation

 

const

  {$IFDEF MSWINDOWS}

  iphlpapidll = 'iphlpapi.dll';

  {$ENDIF}

 

function GetNetworkParams; external iphlpapidll Name 'GetNetworkParams';

 

 

procedure GetDNSServers(AList: TStringList);

var

  pFI: PFixedInfo;

  pIPAddr: PIPAddrString;

  OutLen: Cardinal;

begin

  AList.Clear;

  OutLen := SizeOf(TFixedInfo);

  GetMem(pFI, SizeOf(TFixedInfo));

  try

    if GetNetworkParams(pFI, @OutLen) = ERROR_BUFFER_OVERFLOW then

    begin

      ReallocMem(pFI, OutLen);

      if GetNetworkParams(pFI, @OutLen) <> NO_ERROR then Exit;

    end;

    // If there is no network available there may be no DNS servers defined

    if pFI^.DnsServerList.IpAddress._String[0] = #0 then Exit;

    // Add first server

    AList.Add(pFI^.DnsServerList.IpAddress._String);

    // Add rest of servers

    pIPAddr := pFI^.DnsServerList.Next;

    while Assigned(pIPAddr) do

    begin

      AList.Add(pIPAddr^.IpAddress._String);

      pIPAddr := pIPAddr^.Next;

    end;

  finally

    FreeMem(pFI);

  end;

end;

 

end.

 

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

 

Programın/Dosyanın windows Default ikonunu bulup göstermek

{

orijinal kod

http://www.swissdelphicenter.ch/en/showcode.php?id=218

adresinden alınmıştır.

Fakat kod tam çalışmıyordu. Biraz değişiklik yaptım şuanda bütün dosyaların

ilişkili ikonlarını gösteriyor

}

 

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  ExtCtrls, StdCtrls, FileCtrl,variants;

 

type

  TForm1 = class(TForm)

    Button1: TButton;

    Image1: TImage;

    Image2: TImage;

    OpenDialog1: TOpenDialog;

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 type

  PHICON = ^HICON;

 

var

  Form1: TForm1;

  PLargeIcon, PSmallIcon: phicon;

 

implementation

 

uses shellapi, registry;

 

{$R *.dfm}

procedure GetAssociatedIcon(FileName: TFilename; PLargeIcon, PSmallIcon: PHICON);

var

  IconIndex: SmallInt;

  Icono: PHICON;

  FileExt, FileType: string;

  Reg: TRegistry;

  p: Integer;

  p1, p2: PChar;

  buffer: array [0..255] of Char;

 

Label

  noassoc, NoSHELL;

  IconIndex := 0;

  Icono := nil;

  // ;Get the extension of the file

  FileExt := UpperCase(ExtractFileExt(FileName));

  //Eğer uzantı EXE veya ICO ise dosyadan alabiliriz

  // aksi takdirde registry den almamız gerekiyor

 

  if ((FileExt<>'.EXE') and (FileExt<>'.ICO')) and FileExists(FileName) then

  begin

    Reg := nil;

    try

      Reg := TRegistry.Create;

      Reg.RootKey := HKEY_CLASSES_ROOT;

      if FileExt = '.EXE' then FileExt := '.COM';

      if Reg.OpenKeyReadOnly(FileExt) then

        try

          FileType := Reg.ReadString('');

        finally

          Reg.CloseKey;

        end;

      if (FileType <> '') and Reg.OpenKeyReadOnly(FileType + 'DefaultIcon') then

        try

          FileName := Reg.ReadString('');

        finally

          Reg.CloseKey;

        end

        else

        if (FileType <> '') and Reg.OpenKeyReadOnly(FileType + 'ShellOpencommand') then

        try

          // bu kısım benim tarafımdan eklendir

          // eğer default icon yok ise o dosyayı açan programın iconunu gösteriyor

           FileName := Reg.ReadString('');

           delete(filename,pos('"',filename),1);

           if pos('"',filename)>0 then filename:=copy(filename,1,pos('"',filename)-1);

           if pos('%1',filename)>0 then filename:=copy(filename,1,pos('%1',filename)-1);

        finally

             Reg.CloseKey;

        end;

 

    finally

      Reg.Free;

    end;

 

    if FileName = '' then goto noassoc;

    p1 := PChar(FileName);

    p2 := StrRScan(p1, ',');

    if p2<>nil then

    begin

      p         := p2 - p1 + 1; // Position de la coma

      IconIndex := StrToInt(Copy(FileName, p + 1, Length(FileName) - p));

      SetLength(FileName, p - 1);

    end;

  end;

 

  if ExtractIconEx(PChar(FileName), IconIndex, Icono^, PSmallIcon^, 1) <> 1 then

  begin

    noassoc:

 

    FileName := 'C:WindowsSystemSHELL32.DLL';

    if not FileExists(FileName) then

    begin

      GetWindowsDirectory(buffer, SizeOf(buffer));

      FileName := FileSearch('SHELL32.DLL', GetCurrentDir + ';' + buffer);

      if FileName = '' then

        goto NoSHELL;

    end;

 

 

    if (FileExt = '.DOC') then IconIndex := 1

    else if (FileExt = '.EXE') or (FileExt = '.COM') then IconIndex := 2

    else if (FileExt = '.HLP') then IconIndex := 23

    else if (FileExt = '.INI') or (FileExt = '.INF') then IconIndex := 63

    else if (FileExt = '.TXT') then IconIndex := 64

    else if (FileExt = '.BAT') then IconIndex := 65

    else if (FileExt = '.DLL') or (FileExt = '.SYS') or (FileExt = '.VBX') or

      (FileExt = '.OCX') or (FileExt = '.VXD') then IconIndex := 66

    else if (FileExt = '.FON') then IconIndex := 67

    else if (FileExt = '.TTF') then IconIndex := 68

    else if (FileExt = '.FOT') then IconIndex := 69

    else

      IconIndex := 0;

 

    if ExtractIconEx(PChar(FileName), IconIndex, Icono^, PSmallIcon^, 1) <> 1 then

    begin

      NoSHELL:

      if PLargeIcon=nil then PLargeIcon^ := 0;

      if PSmallIcon=nil then PSmallIcon^ := 0;

    end;

  end;

 

  if PSmallIcon^<>0 then

  begin

    PLargeIcon^ := ExtractIcon(Application.Handle, PChar(FileName), IconIndex);

    if PLargeIcon^=Null then

      PLargeIcon^ := 0;

  end;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

var

  SmallIcon, LargeIcon: HIcon;

  Icon: TIcon;

begin

  if not (OpenDialog1.Execute) then

    Exit;

  Icon := TIcon.Create;

  try

    GetAssociatedIcon(OpenDialog1.FileName, @LargeIcon, @SmallIcon);

    if LargeIcon <> 0 then

    begin

      Icon.Handle := LargeIcon;

      Image2.Picture.icon := Icon;

    end;

    if SmallIcon <> 0 then

    begin

      Icon.Handle := SmallIcon;

      Image1.Picture.icon := Icon;

    end;

  finally

    Icon.Destroy;

  end;

end;

 

end.

 

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

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