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

bu kodla oturum açtığımız bilgisayarda kullanıcı adımız kaydedilir ve sonra tuş il hatırlanır.

procedure TForm1.Edit1Change(Sender: TObject);

begin

if edit1.Text='' then begin

listbox1.Items.Clear;

end;

listbox1.Items.Clear;

uzun:=length(edit1.Text);

table1.First;

while not table1.Eof do begin

ad:=copy(edit1.Text,1,uzun);

ad1:=copy(Table1Ad.Text,1,uzun);

if(ad=ad1)then begin

listbox1.Left:=240;

listbox1.Top:=60;

edit4.Visible:=false;

checkbox1.Visible:=false;

listbox1.Visible:=true;

listbox1.Items.Add(Table1Ad.Text);

end;

table1.Next;

end;

end;

 

 

neoturk: Forum - "acil komponent lazım"

"

ACİL COMPANENT LAZIM Bugün 16:00

Öncelikle Merhaba Tekrar ben bir şirkette çalışıyorum ve burda yazmış

olduğumuz bi program var program dışarıdan görüntü alıp bilgisayara kaydediyor

ve istenilen görüntüyü kaydet butonu ile capture(resimliyor) şimdi benim

ihtiyacım program görüntüyü gösterirken kullanılan componentten dolayı

görüntü kötü gösteriyor... şimdi bana gerekli olan güzel görüntüyü sağlayacak

bi companent ne olur crakli falan veya bedava güzel görüntü sağlayan bi

companent olsun çok acil lazım tek o kısım kaldı...

ne olur yardım edin bu sorun saç baş yolduruyor.... YARDDIIIIIIMMMMMMMM..........

 

LeWo

"

 

cevap:

 

resmin kalitesi varsayılan olarak %100 dür capture işlemlerinde.

 

bunun quality(kalite)'sini kod ile belirleyebilirsin.

 

%100 netlikte bir ekran görüntüsünü alan ve olağan kod aşağıdadır:

 

procedure ScreenShot(Bild: TBitMap);

var

  c: TCanvas;

  r: TRect;

begin

  c := TCanvas.Create;

  c.Handle := GetWindowDC(GetDesktopWindow);

  try

    r := Rect(0, 0, Screen.Width, Screen.Height);

    Bild.Width := Screen.Width;

    Bild.Height := Screen.Height;

    Bild.Canvas.CopyRect(r, c, r);

  finally

    ReleaseDC(0, c.Handle);

    c.Free;

  end;

end;

 

 

kullanımı:

 

//button1 on click olayına yazabilirsin,

screenshot(image1.Picture.bitmap);

 

forma 1 adet scrollbox yerleştir, içine image nesnesi yerleştir.

image nesnesinin autosize:=true değerini ata.

 

button yerleştir ve kodu yazıp çalıştır.

 

extra bir komponente ihtiyacın kalır mı bilmiyorum...

 

kolay gelsin..

 

 

saygılarımla_

 

neoturk [ xxnt03@lycos.co.uk ]

 

 

.net ile delphi arasındaki ilişki nedir?

HER ŞEY TEMİZ BİR KOD BANKASI İÇİN

////////////////////////////////////////////////////////////////////////////

Lütfen tekrar kayıtlardan ve sorulardan mümkün olduğunca kaçalım.

////////////////////////////////////////////////////////////////////////////

(*bir örnek -> Bu örnekte uygulama içinde bir formu göstermek istiyoruz ama

oluşup oluşmadığını bilmiyorsak o formun unit'i içine böyle bir fonksiyon yazarsak

sorunsuz olarak form çalışacaktır.*)

procedure KayitGir(const BaskaOlustur:Boolean=False);//interface bloğunada tanımı eklenmeli

{eğer başka oluştur True ise o formdan tekrar tekrar oluşturur ki böyle olduğu zaman

verimli sistem kaynağı için formun onClose olayında Action:=caFree; kodu olmalıdır.}

var i:Integer; Form:TFormKayit;

begin

  if BaskaOlustur then Form:=TFormKayit.Create(Application)

  else begin

    Form:=nil;

    for i:=0 to Application.ComponentCount-1 do  //uygulamada o formda oluşturulmu mu?

     if Application.Components[i] is TFormKayit then

      Form:=TFormKayit(Application.Components[i]);

    if not Assigned(Form) then Form:=TFormKayit.Create(Application); //yoksa oluştur

  end;

  Form.Show; //göster

end;

////////////////////////////////////////////////////////////////////////////

.net ile delphi arasındaki ilişki nedir?

//delphi bitti diyenin alnı 1 karış, okumasını hiç mi hiç tavsiye etmem.

 

Sene 2000 ya da 2001 microsoft borland da çalışan delphinin babası diye tabir

edilen yazılımcıyı transfer etti (ismi şu anda aklımda değil). Çok kısa bir

süre sonra da .net framework teknolojisini çıkardı. .net'i inceleme fırsatım

o zamanlar yoktu ama şimdi kucağındayım. .net nesneleri ile delphinin sunduğu

nesne kütüphanelerinde ki nesneler neredeyse aynı. Özellikle geçenlerde uğradığım

bir .net forum sitesinde .netin List nesnesinden (delphi->TList) hayretle ve

hayranlıkla anlatmış. .net nesnelerinin bir çoğu (fazlasıyla) delphinin kütüphanesinde

zaten var ve dolayısıyla .net'e en kolay geçişi delphi projeleri sağlamaktadır.

(zaten C#'tan sonra .net'te proje yailabilen ilk dil delphidir.)

Yapmaları gereken göstericiler, bazı özel windows apileri varsa bunların .net için

geçiş ayarlarını yaptıktan sonra (ki bunlarla kimse kolay kolay çalışmaz,

çalışsa da çok özel sebepleri vardır.) projenin .net versiyonu hazır hale gelir.

 

.net ile en rahat çalışacak programlama dilinin delphi olduğunu fark ettim.

(C# zaten .net'i kullandığı için çevirme derdi yok . C++ ise bol bol API'lere

ve göstericilere yüklenen programcılarının başını biraz ağrıtacak. Visual Basic'e ise

zaten programlama dili değil paket program gözüyle bakıyorum, programcının

arkasından çevirdiği dolaplardan hiç kimsenin haberi yok.).

 

COM uygulamalarının Register'a geçirilmesi gerekiyordu fakat .net te her uygulama

parçası (.exe,.dll) bu bilgileri kendi içinde barındırıyor. Yani bir çeşit

interface bloğu. Mantık tamamen interface ile aynı. Bu blokta paylaşılan nesneler,

fonksiyonlar ve değişkenler belirtilir ve bu bölümü kullanacak diğer bölümler

paylaşılan özellikleri bu bloktan alır. .net ise bunu (.exe,.dll) içinde

gerçekleitirir (COM ve üstü teknolojilerdeki gibi register kaydı gerektirmez).

 

Üstelik eğer uygun kod yapısı varsa projeleri Kylix'te derlenirse proje Linux'ta da

kullanılabilir.

 

Borland işi en iyi seviyeye getirmiş olduğu halde delphi'nin işi nasıl bitti denilebir

çok şaşırıyorum. Zaten son yıllarda Borland ile Microsoft'un rekabet içinde olmadığına

kanaat getirdim, çünkü Microsoft'un geliştirdiği teknolojileri Borland hep en rahat

şekilde kullanılabilir hale getiriyor.

 

 

neoturk: INI dosya formatı kullanımı

"uses" bölümüne "INIfiles" kütüphanesini eklemeyi unutmayın.

 

aşağıdaki kod yapısını incelerseniz daha iyi anlayacaksınız.

 

{

  An INI file stores information in logical groupings, called “sections.”

  Within each section, actual data values are stored in named keys.

 

  [Section_Name]

  Key_Name1=Value1

  Key_Name2=Value2

 

}

 

uses

  IniFiles;

 

// Write values to a INI file

 

procedure TForm1.Button1Click(Sender: TObject);

var

  ini: TIniFile;

begin

  // Create INI Object and open or create file test.ini

  ini := TIniFile.Create('c:MyIni.ini');

  try

    // Write a string value to the INI file.

    ini.WriteString('Section_Name', 'Key_Name', 'String Value');

    // Write a integer value to the INI file.

    ini.WriteInteger('Section_Name', 'Key_Name', 2002);

    // Write a boolean value to the INI file.

    ini.WriteBool('Section_Name', 'Key_Name', True);

  finally

    ini.Free;

  end;

end;

 

 

// Read values from an INI file

 

procedure TForm1.Button2Click(Sender: TObject);

var

  ini: TIniFile;

  res: string;

begin

  // Create INI Object and open or create file test.ini

  ini := TIniFile.Create('c:MyIni.ini');

  try

    res := ini.ReadString('Section_Name', 'Key_Name', 'default value');

    MessageDlg('Value of Section:  ' + res, mtInformation, [mbOK], 0);

  finally

    ini.Free;

  end;

end;

 

// Read all sections

 

procedure TForm1.Button3Click(Sender: TObject);

var

  ini: TIniFile;

begin

  ListBox1.Clear;

  ini := TIniFile.Create('MyIni.ini');

  try

    ini.ReadSections(listBox1.Items);

  finally

    ini.Free;

  end;

end;

 

ok.

 

 

saygılarımla_

 

neoturk [ xxnt03@lycos.co.uk ]

 

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

 

neoturk: INI dosya formatı kullanımı

"uses" bölümüne "INIfiles" kütüphanesini eklemeyi unutmayın.

 

aşağıdaki kod yapısını incelerseniz daha iyi anlayacaksınız.

 

{

  An INI file stores information in logical groupings, called “sections.”

  Within each section, actual data values are stored in named keys.

 

  [Section_Name]

  Key_Name1=Value1

  Key_Name2=Value2

 

}

 

uses

  IniFiles;

 

// Write values to a INI file

 

procedure TForm1.Button1Click(Sender: TObject);

var

  ini: TIniFile;

begin

  // Create INI Object and open or create file test.ini

  ini := TIniFile.Create('c:MyIni.ini');

  try

    // Write a string value to the INI file.

    ini.WriteString('Section_Name', 'Key_Name', 'String Value');

    // Write a integer value to the INI file.

    ini.WriteInteger('Section_Name', 'Key_Name', 2002);

    // Write a boolean value to the INI file.

    ini.WriteBool('Section_Name', 'Key_Name', True);

  finally

    ini.Free;

  end;

end;

 

 

// Read values from an INI file

 

procedure TForm1.Button2Click(Sender: TObject);

var

  ini: TIniFile;

  res: string;

begin

  // Create INI Object and open or create file test.ini

  ini := TIniFile.Create('c:MyIni.ini');

  try

    res := ini.ReadString('Section_Name', 'Key_Name', 'default value');

    MessageDlg('Value of Section:  ' + res, mtInformation, [mbOK], 0);

  finally

    ini.Free;

  end;

end;

 

// Read all sections

 

procedure TForm1.Button3Click(Sender: TObject);

var

  ini: TIniFile;

begin

  ListBox1.Clear;

  ini := TIniFile.Create('MyIni.ini');

  try

    ini.ReadSections(listBox1.Items);

  finally

    ini.Free;

  end;

end;

 

ok.

 

 

saygılarımla_

 

neoturk [ xxnt03@lycos.co.uk ]

 

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

 

neoturk: Forum - "Ayarlar menüsü hakkında"

"

ayarlar menüsü yapma hakkında... Bugün 14:06

 

arkadaşlar ben bir programın ayarlar menüsünü yapmak istiyorum.

fakat ayarlar programın her açılışında yeniden sıfırlanıyor.

yapılan ayarları bir dosyada kaydetmem mi gerewkiyor acaba ?

ya da ne tür bir dosyada saklayabilirim ?

saklanan ayarları programın açılışında nasıl alabilirim ?

 

bana örnek bir program ( Source' ile birlikte ) gönderirseniz sevinirim...

 

teşekkürler...

 

EbrarTemizsoy

"

 

cevap:

 

ayarların saklanıp tekrar geri okutulması için en etkin yöntem,

INI dosya formatını kullanmaktır.

 

INI dosyasına ayarlar kaydedilir ve gerektiğinde okutulur.

 

Oluşturulan bu INI dosyası, exe program ile aynı klasöre konabilir,

veya windows klasörü altına da atılabilir. İlgili path ayarını program

içersinden belirtebilirsiniz.

 

Diğer bir yöntem ise Registry yapısını kullanmaktır.

( Bu yöntem biraz daha lüks, ve pc değiştirildiğinde veriler eski

pc nin registrinde kalabileceği için, INI dosyası program ile birlikte

taşınırsa daha makbuldur )

 

 

INI dosyasından parametre okutmak için:

 

//form create edilirken

procedure TForm1.FormCreate(Sender: TObject);

var x:string;ini:Tinifile;

begin

apppath:=extractfilepath(application.exename)+'';

x:=apppath+'ftp.ini';

ini:=Tinifile.Create(x);

try

x:=ini.ReadString('main','1','ftp.tripod.com');edit1.text:=x;

x:=ini.ReadString('main','2','sabriye');edit2.text:=x;

x:=ini.ReadString('main','3','');edit3.text:=x;

 

finally

ini.Free;

end;

end;

 

INI dosyasına edit içeriklerini yazmak için

 

//form kapatılırken

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

var x:string;ini:Tinifile;

begin

x:=apppath+'ftp.ini';

ini:=Tinifile.Create(x);

try

ini.writeString('main','1',edit1.text);

ini.writeString('main','2',edit2.text);

ini.writeString('main','3',edit3.text);

finally

ini.Free;

end;

end;

 

Kodu iyi incele, anlayacaksın...

 

not: kendi yazdığım bir programdan keserek aldım.

"appath" adlı string değişkeni VAR kısmında tanıtmalısın....

 

kolay gelsin....

 

saygılarımla_

 

neoturk [ xxnt03@lycos.co.uk ]

 

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

 

neoturk: Forum - "Ayarlar menüsü hakkında"

"

ayarlar menüsü yapma hakkında... Bugün 14:06

 

arkadaşlar ben bir programın ayarlar menüsünü yapmak istiyorum.

fakat ayarlar programın her açılışında yeniden sıfırlanıyor.

yapılan ayarları bir dosyada kaydetmem mi gerewkiyor acaba ?

ya da ne tür bir dosyada saklayabilirim ?

saklanan ayarları programın açılışında nasıl alabilirim ?

 

bana örnek bir program ( Source' ile birlikte ) gönderirseniz sevinirim...

 

teşekkürler...

 

EbrarTemizsoy

"

 

cevap:

 

ayarların saklanıp tekrar geri okutulması için en etkin yöntem,

INI dosya formatını kullanmaktır.

 

INI dosyasına ayarlar kaydedilir ve gerektiğinde okutulur.

 

Oluşturulan bu INI dosyası, exe program ile aynı klasöre konabilir,

veya windows klasörü altına da atılabilir. İlgili path ayarını program

içersinden belirtebilirsiniz.

 

Diğer bir yöntem ise Registry yapısını kullanmaktır.

( Bu yöntem biraz daha lüks, ve pc değiştirildiğinde veriler eski

pc nin registrinde kalabileceği için, INI dosyası program ile birlikte

taşınırsa daha makbuldur )

 

 

INI dosyasından parametre okutmak için:

 

//form create edilirken

procedure TForm1.FormCreate(Sender: TObject);

var x:string;ini:Tinifile;

begin

apppath:=extractfilepath(application.exename)+'';

x:=apppath+'ftp.ini';

ini:=Tinifile.Create(x);

try

x:=ini.ReadString('main','1','ftp.tripod.com');edit1.text:=x;

x:=ini.ReadString('main','2','sabriye');edit2.text:=x;

x:=ini.ReadString('main','3','');edit3.text:=x;

 

finally

ini.Free;

end;

end;

 

INI dosyasına edit içeriklerini yazmak için

 

//form kapatılırken

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

var x:string;ini:Tinifile;

begin

x:=apppath+'ftp.ini';

ini:=Tinifile.Create(x);

try

ini.writeString('main','1',edit1.text);

ini.writeString('main','2',edit2.text);

ini.writeString('main','3',edit3.text);

finally

ini.Free;

end;

end;

 

Kodu iyi incele, anlayacaksın...

 

not: kendi yazdığım bir programdan keserek aldım.

"appath" adlı string değişkeni VAR kısmında tanıtmalısın....

 

kolay gelsin....

 

saygılarımla_

 

neoturk [ xxnt03@lycos.co.uk ]

 

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

 

neoturk: Forum-" NMFTP1 Nesnesi"

"

NMFTP1 nesnesi 20 Kasım 2005 15:15

 

Arkadaşlar delphi 7.0 için bu nesneyi bulamıyorum bir ftp uploader yapmam

gerekiyor ama bu nesneden başka birşeyde username ve userid

tanımlayamıyorum. Yardımcı olursanız sevinirim. Şimdiden Tşkler

 

sacrifice

"

 

cevap:

 

 

Delphi 7.0 da bu nesne ve grup olarak diğer nesneler yok.

 

zaten Netmasters nesneleri winXP çıktıktan sonra çuvalladılar...

 

ayrıca,

userid'ye gerek yok artık. Bu parametre çok da işe yaramıyordu zaten.

 

Onların yerine yeni bir akım olarak INDY nesneleri geldi.

 

kendi yazdığım kod örneğini gönderiyorum, kodlara bakarak kendine göre

form dizaynını yaparsın artık:

 

 

*********************************

*** author: neoturk           ***

*** subject: ftp upload INDY  ***

*** date: 2003                ***

*********************************

 

unit Unit1;

 

interface

 

uses

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

  Dialogs, IdAntiFreezeBase, IdAntiFreeze, IdBaseComponent, IdComponent,

  IdTCPConnection, IdTCPClient, IdFTP, psvBasiclbl, psvBorderLabel, Gauges,

  ComCtrls, StdCtrls,inifiles;

 

type

  TForm1 = class(TForm)

    Button6: TButton;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Edit1: TEdit;

    Edit2: TEdit;

    Edit3: TEdit;

    Button7: TButton;

    Memo1: TMemo;

    Gauge1: TGauge;

    psvBorderLabel1: TpsvBorderLabel;

    IdFTP1: TIdFTP;

    IdAntiFreeze1: TIdAntiFreeze;

    ListBox1: TListBox;

    UploadOpenDialog1: TOpenDialog;

    SaveDialog1: TSaveDialog;

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    Button4: TButton;

    Button5: TButton;

    Button8: TButton;

    Label4: TLabel;

    Button9: TButton;

    procedure IdFTP1Disconnected(Sender: TObject);

    procedure IdFTP1Status(axSender: TObject; const axStatus: TIdStatus;

      const asStatusText: String);

    procedure IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode;

      const AWorkCount: Integer);

    procedure Button6Click(Sender: TObject);

    procedure Button7Click(Sender: TObject);

    procedure Button8Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

    procedure Button5Click(Sender: TObject);

    procedure Button9Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure ListBox1DblClick(Sender: TObject);

    procedure IdFTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;

      const AWorkCountMax: Integer);

    procedure IdFTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);

    procedure Edit3KeyPress(Sender: TObject; var Key: Char);

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

  private

    { Private declarations }

  { Private declarations }

  AbortTransfer: Boolean;

  TransferrignData: Boolean;

  BytesToTransfer: LongWord;

  STime: TDateTime;

  procedure ChageDir(DirName: String);

 

  public

    { Public declarations }

  end;

//written by neoturk - 2003

const notconnected='not connected...';

 

var

  Form1: TForm1;

  AverageSpeed: Double = 0;

  apppath:string;

 

 

implementation

 

{$R *.dfm}

 

procedure Tform1.ChageDir(DirName: String);

begin

  try

  IdFTP1.ChangeDir(DirName);

  IdFTP1.TransferType := ftASCII;

  memo1.lines.add('Current Dir:'+IdFTP1.RetrieveCurrentDir);

  listbox1.Items.Clear;

  IdFTP1.List(listbox1.Items);

  finally

  end;

end;

 

 

procedure TForm1.IdFTP1Disconnected(Sender: TObject);

begin

memo1.lines.add('Disconnected.');

end;

 

procedure TForm1.IdFTP1Status(axSender: TObject; const axStatus: TIdStatus;

  const asStatusText: String);

begin

memo1.lines.add(asStatusText);

end;

 

procedure TForm1.IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode;

  const AWorkCount: Integer);

Var

  S: String;

  TotalTime: TDateTime;

  H, M, Sec, MS: Word;

  DLTime: Double;

begin

  TotalTime :=  Now - STime;

  DecodeTime(TotalTime, H, M, Sec, MS);

  Sec := Sec + M * 60 + H * 3600;

  DLTime := Sec + MS / 1000;

  if DLTime > 0 then

  AverageSpeed := {(AverageSpeed + }(AWorkCount / 1024) / DLTime{) / 2};

 

  S := FormatFloat('0.00 KB/s', AverageSpeed);

  case AWorkMode of

  wmRead: label4.caption:='Download speed ' + S;

  wmWrite: label4.caption:='Upload speed ' + S;

  end;

 

  if AbortTransfer then IdFTP1.Abort;

 

  gauge1.Progress:=AWorkCount;

  AbortTransfer := false;

end;

 

procedure TForm1.Button6Click(Sender: TObject);

begin

  if IdFTP1.Connected then try

  if TransferrignData then IdFTP1.Abort;

  IdFTP1.Quit;

  finally

  listbox1.Items.Clear;

  end

  else with IdFTP1 do try

  User := trim(edit2.text);

  Password := edit3.text;

  Host := edit1.text;

  Connect;

  Self.ChageDir('/');

  finally

  end;

end;

 

procedure TForm1.Button7Click(Sender: TObject);

begin

idftp1.Disconnect;

end;

 

procedure TForm1.Button8Click(Sender: TObject);

Var

  S: String;

begin

  if not IdFTP1.Connected then begin memo1.lines.add(notconnected);exit;end;

  S := InputBox('Make new directory', 'Name', '');

  if S <> '' then

  try

  IdFTP1.MakeDir(S);

  finally

  end;

end;

 

function GetNameFromDirLine(Line: String; Var IsDirectory: Boolean): String;

Var

  i: Integer;

  DosListing: Boolean;

begin

  IsDirectory := Line[1] = 'd';

  DosListing := false;

  for i := 0 to 7 do begin

  if (i = 2) and not IsDirectory then begin

  IsDirectory := Copy(Line, 1, Pos(' ', Line) - 1) = '<DIR>';

  if not IsDirectory then

  DosListing := Line[1] in ['0'..'9']

  else DosListing := true;

  end;

  Delete(Line, 1, Pos(' ', Line));

  While Line[1] = ' ' do Delete(Line, 1, 1);

  if DosListing and (i = 2) then break;

  end;

  Result := Line;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

Var

  Name, Line: String;

  IsDirectory: Boolean;

begin

  if not IdFTP1.Connected then begin memo1.lines.add(notconnected);exit;end;

  Line := listbox1.Items[listbox1.ItemIndex];

  Name := GetNameFromDirLine(Line, IsDirectory);

  if IsDirectory then begin

  // Change directory

  ChageDir(Name);

  end

  else begin

  try

  SaveDialog1.FileName := Name;

  if SaveDialog1.Execute then begin

  IdFTP1.TransferType := ftBinary;

  BytesToTransfer := IdFTP1.Size(Name);

  IdFTP1.Get(Name, SaveDialog1.FileName, true);

  end;

  finally

  end;

  end;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

  if not IdFTP1.Connected then begin memo1.lines.add(notconnected);exit;end;

 

  if IdFTP1.Connected then begin

  if UploadOpenDialog1.Execute then try

  IdFTP1.TransferType := ftBinary;

  IdFTP1.Put(UploadOpenDialog1.FileName, ExtractFileName(UploadOpenDialog1.FileName));

  ChageDir(idftp1.RetrieveCurrentDir);

  finally

  end;

  end;

 

 

end;

 

procedure TForm1.Button3Click(Sender: TObject);

Var

  Name, Line: String;

  IsDirectory: Boolean;

 

 

begin

  if not IdFTP1.Connected then begin memo1.lines.add(notconnected);exit;end;

 

  Line := listbox1.Items[listbox1.ItemIndex];

  Name := GetNameFromDirLine(Line, IsDirectory);

  if IsDirectory then try

  idftp1.RemoveDir(Name);

  ChageDir(idftp1.RetrieveCurrentDir);

  finally

  end

  else

  try

  idftp1.Delete(Name);

  finally

  ChageDir(idftp1.RetrieveCurrentDir);

  end;

 

end;

 

procedure TForm1.Button4Click(Sender: TObject);

begin

  if not IdFTP1.Connected then begin memo1.lines.add(notconnected);exit;end;

  try

  ChageDir('..');

  finally end;

 

end;

 

procedure TForm1.Button5Click(Sender: TObject);

begin

  if not IdFTP1.Connected then begin memo1.lines.add(notconnected);exit;end;

AbortTransfer := true;

end;

 

procedure TForm1.Button9Click(Sender: TObject);

var x:string;

begin

x:=apppath+'ftp_file_list.txt';

listbox1.Items.SaveToFile(x);

memo1.lines.add('saved:'+x);

end;

 

procedure TForm1.FormCreate(Sender: TObject);

var x:string;ini:Tinifile;

begin

apppath:=extractfilepath(application.exename)+'';

x:=apppath+'ftp.ini';

ini:=Tinifile.Create(x);

try

x:=ini.ReadString('main','1','ftp.tripod.com');edit1.text:=x;

x:=ini.ReadString('main','2','sabriye');edit2.text:=x;

x:=ini.ReadString('main','3','');edit3.text:=x;

 

finally

ini.Free;

end;

end;

 

procedure TForm1.ListBox1DblClick(Sender: TObject);

Var

  Name, Line: String;

  IsDirectory: Boolean;

begin

  if not IdFTP1.Connected then exit;

  Line := listbox1.Items[listbox1.ItemIndex];

  Name := GetNameFromDirLine(Line, IsDirectory);

  if IsDirectory then begin

  // Change directory

  ChageDir(Name);

  end

  else begin

  try

  SaveDialog1.FileName := Name;

  if SaveDialog1.Execute then begin

  IdFTP1.TransferType := ftBinary;

  BytesToTransfer := IdFTP1.Size(Name);

  IdFTP1.Get(Name, SaveDialog1.FileName, true);

  end;

  finally

  end;

  end;

end;

 

procedure TForm1.IdFTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;

  const AWorkCountMax: Integer);

begin

  TransferrignData := true;

  AbortTransfer := false;

  STime := Now;

  if AWorkCountMax > 0 then gauge1.Maxvalue := AWorkCountMax

  else gauge1.maxvalue:= BytesToTransfer;

  AverageSpeed := 0;

end;

 

procedure TForm1.IdFTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);

begin

  memo1.lines.add('Transfer complete.');

  BytesToTransfer := 0;

  TransferrignData := false;

  gauge1.Progress := 0;

  AverageSpeed := 0;

end;

 

procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);

begin

if ord(key)=13 then

        begin

        key:=chr(0);

        button6.onclick(sender);

        end;

end;

 

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

var x:string;ini:Tinifile;

begin

x:=apppath+'ftp.ini';

ini:=Tinifile.Create(x);

try

ini.writeString('main','1',edit1.text);

ini.writeString('main','2',edit2.text);

ini.writeString('main','3',edit3.text);

finally

ini.Free;

end;

 

end;

 

end.

//written by neoturk

 

saygılarımla_

 

neoturk [ xxnt03@lycos.co.uk ]

 

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

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