Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi FTP-Statusmeldungen (https://www.delphipraxis.net/97780-ftp-statusmeldungen.html)

Angel4585 16. Aug 2007 08:37


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"

Angel4585 16. Aug 2007 11:01

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

jfheins 16. Aug 2007 11:10

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: http://www.delphipraxis.net/internal...=382815#382815 ;)

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 ...

Angel4585 16. Aug 2007 11:26

Re: FTP-Statusmeldungen
 
klingt gut, aber der kennt das write nicht.. ich mach übrigens Indy 10..

Angel4585 16. Aug 2007 14:33

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:

jfheins 16. Aug 2007 15:30

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 ;)

Angel4585 17. Aug 2007 05:44

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

Angel4585 17. Aug 2007 07:24

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"

Angel4585 17. Aug 2007 09:09

Re: FTP-Statusmeldungen
 
OK, jetzt hab ichs:

Man muss nicht die IOHandler ableiten, sondern die TIdFTP.

Delphi-Quellcode:
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;
Zu beachten ist, das die TIdFTP drei SendCmd Funktionen hat, von denen jedoch nur eine virtuell, also ableitbar ist.

Ist sicher noch etwas unschön, aber es erfüllt den Zweck :) :dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz