Hallo Servi,
Zitat von
Servi:
Hallo, ich habe das folgende Problem, dass ich es nicht hinbekomme eigene Replys an die Clients zu schreiben...
Zum Beispiel beim wechseln des Verzeichnisses, wenn ich in der "procedure TFTPServer.IdFTPServer1ChangeDirectory(ASender: TIdFTPServerContext; var VDirectory: string);" bin.
Also ich möchte dass neben dem "250 CWD Command successful." noch etwas anderes hinschreiben bzw dieses ersetzen. Ich habe versucht über die TIDReplys auf den Index 250 zuzugreifen, aber so läuft das ganze anscheinend nicht, und hoffe jemand hat schon mal damit Erfahrung gesammelt.
Ich sehe zwei Möglichkeiten:
1) Du kopierst die Datei IdResourceStringProtocols einfach in Dein Projektverzeichnis und passt die
Indy ResourceStrings an. In Deinem Fall z.B. RSFTPCmdSuccessful. Danach einmal Build und die neue
Unit wird genutzt.
2) Du nutzt, falls es um die Übersetzbarkeit geht, dxgettext / gnugettext oder ähnlich.
Man könnte auch die Klasse TIdFTPServer ableiten und die Methode CmdCommandSuccessful(...) überschreiben. Da diese aber nicht virtual deklariert ist, mußt Du unter Umständen etwas tricksen (Reintroduce), damit der Compiler nicht mit Hinweisen meckert.
Achtung: CmdCommandSuccessful wird für jedes positive Resultat genutzt, unabhängig vom Resultcode. Also nicht nur für CWD (250).
Gruß Assertor