Delphide Dosya Paylaşım Programı Hakkında Yardım İsteği

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
tayfundogdas
Üye
Mesajlar: 1
Kayıt: 23 Ağu 2004 06:21

Delphide Dosya Paylaşım Programı Hakkında Yardım İsteği

Mesaj gönderen tayfundogdas »

Herkase merhaba;
Delphide aşağıda kodu yazdım.Amacım bir dosya transfer programı yazabilmek ama programı çalıştıramıyorum lütfen yardım edin!

Kod: Tümünü seç

unit dosya_stream;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls, IdTCPServer,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient;

type
  TForm1 = class(TForm)
    client: TIdTCPClient;
    server: TIdTCPServer;
    OpenDialog1: TOpenDialog;
    adres: TLabeledEdit;
    dosya: TLabeledEdit;
    ProgressBar1: TProgressBar;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    procedure adresChange(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure serverExecute(AThread: TIdPeerThread);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  dosya_adi: String;

implementation

{$R *.dfm}

procedure TForm1.adresChange(Sender: TObject);
begin
  client.Host:=adres.Text;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  if opendialog1.Execute then
  begin
    dosya_adi:=opendialog1.FileName;
  end;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
var
  gonderilen_dosya:TFilestream;
  dosya_boyutu,tamamlanan,kalan,buffer:integer;
begin
  gonderilen_dosya:=TFileStream.Create(dosya_adi,fmopenread);
  dosya_boyutu:=gonderilen_dosya.Size;
  tamamlanan:=0;
  kalan:=gonderilen_dosya.Size;
  client.Connect();
  while kalan > 0 do
  begin
    gonderilen_dosya.Seek(1024,tamamlanan);
    gonderilen_dosya.ReadBuffer(buffer,1024);
    client.OpenWriteBuffer();
    if client.Connected then
      client.WriteBuffer(buffer,1024);
    client.CloseWriteBuffer;
    tamamlanan:=tamamlanan+1024;
    kalan:=kalan-tamamlanan;
  end;
end;

procedure TForm1.serverExecute(AThread: TIdPeerThread);
var
  alinan_dosya:TFilestream;
  buffer:integer;
begin
  alinan_dosya:=TFileStream.Create('c:\sss.pas',fmopenwrite);
  AThread.Connection.ReadBuffer(buffer,1024);
end;

end.
Düzeltme : Kodları CODE tagı içine alın... mege
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

selam başta foruma hoşgeldiniz. sizi şöyle bi kuralları okumaya davet edeyim :) orada bahsederki

1. kodları CODE tagı içine alın
2. Hata mesajı ve verdiği satırı açıkça belirtin

:)

kurallar sizin için sorun ne kadar çabuk anlaşılır siz okadar çabuk cevap bulursunuz.
.-.-.-.-.-.-.-. ^_^
Cevapla