![]() |
FTP-Statusmeldungen
Hallo,
ich möchte die Statusmeldungen einer TIdFTP Komponente ausgeben, also die Zahl XYZ und die dazugehörige Meldung. Wo kann ich das machen? Im OnStatus bekomm ich nur "Transfer gestartet" oder so.. Danke schonmal :angel: Edit: OK, es kommt "STarting FTP Transfer" und "Transfer Complete" aber ist trotzdem etwas "poplig" |
Re: FTP-Statusmeldungen
Also ich hab gesucht und gesucht.. als ich dann den Quellcode durchgegangen bin ist mir aufgefallen das die Messages die per SendCmd gesendet werden garnirgends mitgeschnitten werden.
Deswegen hab ich jetzt folgenden Ansatz: Ich füge manuell ein Ereignis in die IdFTP.SendCmd ein und übergebe einfach diesen ganzen Befehl. Das Problem: Wie kann ich die Indys jetzt neu kompilieren? Der verlangt immer ein Borland.Delphi Package un son Zeugs |
Re: FTP-Statusmeldungen
Du möchtest also jedes Kommando das an den Server gesendet wird, und jede Antwort mitloggen?
Dann habe ich da was für dich: ![]() Davon müsste ich auch noch eine ... erweiterte Version ... auf der Platte haben - mal nachschauen ;) Roter Kasten: Jupp, das macht meine Kompo indem sie TIdFTP ableitet ... |
Re: FTP-Statusmeldungen
klingt gut, aber der kennt das write nicht.. ich mach übrigens Indy 10..
|
Re: FTP-Statusmeldungen
ich finds nicht wo was ich da bei Indy 10 überschreiben muss.. write und readln gibts da nicht :wall:
die können das doch nicht machen das die einfach diese Messages die für einen Entwickler enorm wichtig sind weg lassen :evil: |
Re: FTP-Statusmeldungen
Ich hab da n bissle rumgewühlt ... IOHandler hat jetzt read und write methoden,also entweder kompo aufs formular, und mit den ereignissen soielen, oder selber ableiten. In beiden Fällen dann der ftp-Kompo den iohandler zuweisen ;)
|
Re: FTP-Statusmeldungen
den iohandler kann man garnicht zuweisen... ausserdem kommt da ein anderer rein wenn ich auf ssl wechsle..
Aber ich werds mir mal genauer anschauen :-D |
Re: FTP-Statusmeldungen
OK, also ich kann nicht einfach meinen eigenen IOHandler von TIdIOHandler ableiten und der Eigenschaft IOHandler zuweisen, da kommt dann sowas wie "IOHandler is of Wrong type", "Abstrakter Fehler"
|
Re: FTP-Statusmeldungen
OK, jetzt hab ichs:
Man muss nicht die IOHandler ableiten, sondern die TIdFTP.
Delphi-Quellcode:
Zu beachten ist, das die TIdFTP drei SendCmd Funktionen hat, von denen jedoch nur eine virtuell, also ableitbar ist.
function TMyIdFTP.SendCmd(AOut: string; const AResponse: array of SmallInt) : SmallInt;
var i : integer; begin Result:= inherited SendCmd(AOut,AResponse); if Assigned(FRichEdit)then//FRichEdit vom Typ TRichEdit begin //Befehl mitloggen, Farbe Blau FRichEdit.SelAttributes.Color:=clBlue; FRichEdit.SelStart:=Length(FRichEdit.Lines.Text); FRichEdit.Lines.Add('Befehl: '+aout); FRichEdit.SelLength:=Length('Befehl: '+aout); //Antworten mitloggen, Farben: Grün bei positive, Rot bei Negativer Antwort for i:= 0 to Pred(LastCmdResult.FormattedReply.Count)do begin if LastCmdResult.NumericCode div 100 < 4 then FRichEdit.SelAttributes.Color:=clGreen else FRichEdit.SelAttributes.Color:=clred; FRichEdit.SelStart:=Length(FRichEdit.Lines.Text); FRichEdit.Lines.Add('Antwort: '+LastCmdResult.FormattedReply.Strings[i]); FRichEdit.SelLength:=Length('Antwort: '+LastCmdResult.FormattedReply.Strings[i]); end; end; end; Ist sicher noch etwas unschön, aber es erfüllt den Zweck :) :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz