Einzelnen Beitrag anzeigen

IngoD7

Registriert seit: 16. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: [FTP] Daten austausch Programm mit macken.

  Alt 4. Mär 2007, 10:32
Okay, ich habe mal geschaut. Aber so werde ich dir nicht helfen können. Ich sage dir mal warum und was du grundsätzlich meiner Meinung nach bedenken solltest.

1.) Folgende Units kenne ich nicht und musste sie aus Uses herausnehmen:
LMDDirDlg, StartMark, LMDCustomComponent, LMDContainerComponent, LMDBaseDialog

2.) Folgende Objekte kann ich somit nicht erzeugen und musste sie aus TForm1 herausnehmen:
LMDDirDlg1: TLMDDirDlg;
StartMark1: TStartMark;

==> Was danach übrig bleibt, läuft ganz einfach überhaupt nicht. Und somit sind erstmal die Karten hier gelegt.

3.) Die Behandlungsroutine für dein Upload besitzt überhaupt keine Serverdaten (Host, Username).
Entweder die werden irgendwo in den bei mir nicht vorhandenen Units definiert (siehe 1. + 2.), oder sie müssen im Objektinspektor eingetragen werden. Ich kann das nicht wissen.

4.) Welche Indys benutzt du?
In der Routine deines LOS-Buttons zum Downloaden erscheint idftp1.User:=edit2.Text.
TIdFTP.User kennt meine TidFTP-Komponente nicht. Die kennt TidFTP.Username.

5.) Vor jedem Connect machst du erstmal pauschal ein idftp1.Disconnect;
Was soll das?
Programmiere deine Anwendung so, dass sie (und du als Programmierer) jederzeit weiß, wann eine Verbindung besteht und wann nicht.
Implementiere die Ereignisse TidFTP.OnConnected und TidFTP.OnDisconnected, um jederzeit die Übersicht zu behalten, wann die Verbindung auf- und abgebaut wurde, anstatt überall "sicherheitshalber" ein Disconnect-Befehl einzubringen.

6.) Gebe deinen Buttons im Programm nicht nur aussagekräftige Beschriftungen, sondern auch Namen (ebenso den Edits). Man findet sich dann viel besser im Quelltext zurecht.

Grundsätzlich:
Vielleicht konntest du nicht ahnen, dass dir dein FTP soviel Schwierigkeiten bereiten würde und du fremde Hilfe benötigst, aber nun weißt du es. Ich würde dir daher vorschlagen, du baust dir ein Programm erstmal nur mit den FTP-Funktionalitäten.
Also: Gezielter Auf- und Abbau der Verbindung. Dazwischen Upload und/oder Download.
Das sind quasi 4 Buttons, eine idFTP-Komponente und wenn du willst ein Memo zur Anzeige von selbsterstellten Statusmeldungen. Natürlich kann auch der Dialog zur Dateiauswahl schon rein oder noch ein Button, um mit der Methode TidFTP.List den gerade aktuellen Inhalt vom Server zu holen, oder, oder ... Aber eben so schlank wie möglich - nur um die FTP-Funktionalitäten zu ergründen.
Ein Beispiel, was ich mit dem Memo meine. So sagt die Kiste dir beispielsweise, wenn die Verbindung wirklich steht:
Delphi-Quellcode:
procedure TForm1.IdFTP1Connected(Sender: TObject);
begin
   Memo1.Lines.Add('Verbindung steht.');
   ...
end;
So mache ich es immer. Damit erhält man ein Verständins für die idFTP-Komponente und ihre Auswirkungen.
Solltest du damit trotzdem nicht klarkommen, kannst du mit den kleinen, eindeutig zweckgebundenen Code-Schnipseln deines Programms Andere um Hilfe bitten (mich z.B. ).

Wenn dann irgendwann dein "FTP-4-Button-Programm" läuft, kannst du die Funktionen in dein eigentliches Projekt einbauen.
  Mit Zitat antworten Zitat