Hallo, ich habe nun ein neues Problem mit Synapse. Und zwar möchte ich beim FTP-Download den Fortschritt anzeigen lassen. Nach intensiver Suche bin ich auf folgenden Linkt gestoßen:
...Error: Incompatible types: got "untyped" expected "<procedure variable type of procedure(TObject,THookSocketReason,const AnsiString) of object;Register>"
...Error: Incompatible types: got "<address of procedure(TObject,THookSocketReason,const AnsiString);Register>" expected "<procedure variable type of procedure(TObject,THookSocketReason,const AnsiString) of object;Register>"
ja, das wars wohl, nun wird durchkompiliert und das Programm läuft, allerdings wird nur genau einmal in die Routine gesprungen, und zwar wenn der Download beendet ist (HR_SocketClose); die Progressbar wird nicht aktualisiert und es kommen auch keine Daten (übertragene Bits, Bytes oder was auch immer) durch....
case Reason of HR_Connect:// Reset lCurrentBytes :=0; HR_ReadCount:// Value contains number of bytes; BEGIN inc(lCurrentBytes, StrToIntDef(Value,0)); // Increment uploaded bytes Progressbar.Position:= Round(1000*(lCurrentBytes / lTotalBytes)); Application.Processmessages; END;
PROCEDURE TfrmPicPreView.SockGetCallBack(Sender: TObject; Reason: THookSocketReason; const Value:string); BEGIN case Reason of HR_ReadCount:// Value contains number of bytes; BEGIN inc(lCurrentBytes, StrToIntDef(Value,0)); // Increment uploaded bytes pbPicPreView.Position:= Round(1000*(lCurrentBytes / lTotalBytes)); Application.Processmessages; END; END; END;
Du verwendest die Convenience Funktion "FtpGetFile". Diese created ihr eigenes Objekt intern und hat mit deinem FtpInstanceHomeServer nichts zu tun. Du musst den FtpGetFile Quellcode rauskopieren und mit FtpInstanceHomeServer kombinieren.