Synapse FTPSend

0

Jan za pomocą TFTPSend wysłać plik na serwer tak by można było śledzić postęp wysyłania ?

0

TFTPsend.DSock.OnStatus

0

Ok, ale jeżeli mam TFTPSend to tam nie ma funkcji typu "Put". Synapse ma funkcje FtpPutFile i mi właśnie chodzi o to jak przechwycić ten proces gdy wysała się plik przy pomocy tej funkcji

0

odrobina wysiłku naprawdę cie nie zabije ...

procedure TfrmMain.aaa;
var
  FTPSend: TFTPSend;
begin
  FTPSend := TFTPSend.Create;
  ProgressBar.Max := FileSize;
  ProgressBar.Value := 0;
  FTPSend.DSock.OnStatus := OnStatus;
  try
    FTPSend.UserName := 'User';
    FTPSend.Password := 'Pass';
    FTPSend.TargetHost := 'IP';
    FTPSend.TargetPort := 'Port';
    if not FTPSend.Login then
      Exit;
    FTPSend.DirectFileName := 'LocalFile';
    FTPSend.DirectFile:=True;
    FTPSend.StoreFile('FileName', False);
    FTPSend.Logout;
  finally
    FTPSend.Free;
  end;
end;

procedure TfrmMain.OnStatus(Sender: TObject; Reason: THookSocketReason;
  const Value: string);
begin
  if Reason = HR_WriteCount then
  begin
    ProgressBar.Value := ProgressBar.Value + StrToInt(Value);
  end;
end;
0

thx ;-)

0

Witam czy mógłbyś wysłać ten komponent na jakiegoś www.speedyshare.com

0

google + synapse - czy to sprawia komuś jakiś kłopot?

0

naprawdę nie mogę znaleźć a gdy już znajdę stronę probiernia link jest pusty .
proszę udostępnijcie komponent.

0

Linki do biblioteki synapse:
Stronka: http://synapse.ararat.cz/doku.php/download
Synapse: http://synapse.ararat.cz/files/synasnap.zip
Dema: http://synapse.ararat.cz/files/synademo.zip

Komponent (nie używałem, więc nie wiem na ile jest ciekawy):
http://visualsynapse.sourceforge.net/

0

dziękuje Madmike , teraz mam kolejny problem

otóż dodałem kod wysyłania do butona , a kod on status wkleiłem jako procedurę , teraz podcas kompilacji wyskakuje mi błąd "undeclared identifier: OnStatus" i teraz nie wiem muszę jeszcze coś dodatkowo zadeklarować w programie ? prosił bym o podpowiedz.

0

Plik wysyła się bardzo fajnie ale gdy dodam procedurę

onStatus

wyskakuje mi powyższy błąd kompilacji , co powinienem zrobić bo wszystko zaczęło działać ?

0

do kodu dodałem :

type

   THookSocketReason = (
    HR_ResolvingBegin,
    HR_ResolvingEnd,
    HR_SocketCreate,
    HR_SocketClose,
    HR_Bind,
    HR_Connect,
    HR_CanRead,
    HR_CanWrite,
    HR_Listen,
    HR_Accept,
    HR_ReadCount,
    HR_WriteCount,
    HR_Wait,
    HR_Error
    );

    THookOnStatus = procedure(Sender: TObject; Reason: THookSocketReason;
    const Value: string) of object;



  TForm1 = class(TForm)
 [...]

i

 procedure OnStatus(Sender: TObject; Reason: THookSocketReason; const Value: string) ;

oraz

procedure TForm1.OnStatus(Sender: TObject; Reason: THookSocketReason;
  const Value: string);
begin
  if Reason = HR_WriteCount then
  begin
    ProgressBar.Position := ProgressBar.Position + StrToInt(Value);
  end;
end;

na końcu

 var
  FTPSend: TFTPSend;
begin
  FTPSend := TFTPSend.Create;
  ProgressBar.Max := 159744;
  ProgressBar.Position := 0;
  FTPSend.DSock.OnStatus := OnStatus;

  caption:='wysyłam';


  try
    FTPSend.UserName := '***';
    FTPSend.Password := '***';
    FTPSend.TargetHost := '***';
    FTPSend.TargetPort := '21';
    if not FTPSend.Login then
      Exit;
    FTPSend.DirectFileName := '/testy.jpg';
    FTPSend.DirectFile:=True;
    FTPSend.StoreFile('C:\testy.jpg', False);
    FTPSend.Logout;
  finally
    FTPSend.Free;
  end;
end;

przy prubie kompilacji wyrzuca błąd którego nie rozumiem :

user image

Czy robię coś źle ? proszę o pomoc lub jakieś wskazówki.
Pozdrawiam

0

Masz napisane jak wół, że Twój typ THookSocketReason nie podoba się kompilatorowi, bo oczekuje typu o tej nazwie, ale pochodzącego z unitu blcksock. Zamiast zabawiać się w powielanie typów - dodaj tamtego unita do uses i pozamiatane.

1 użytkowników online, w tym zalogowanych: 0, gości: 1