AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Problem mit Indy-FTP (Verzögerung)
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Indy-FTP (Verzögerung)

Ein Thema von Christian.Ossi · begonnen am 22. Mai 2006 · letzter Beitrag vom 22. Mai 2006
Antwort Antwort
Christian.Ossi

Registriert seit: 23. Mai 2004
Ort: Greußen
91 Beiträge
 
Delphi 2006 Architect
 
#1

Problem mit Indy-FTP (Verzögerung)

  Alt 22. Mai 2006, 01:13
Wenn ich mit der idFTP-Komponente von Indy eine Datei ins Internet hochlade, wird der Programmablauf angehalten bis die Datei fertig hochgeladen ist.

Die Datei ist zwar nur paar hundert kilobyte groß, doch "stockt" das Programm - man kann keine Buttons mehr bedienen etc.

Kann man diesen Transfer irgendwie "abkoppeln" oder so gestalten, dass das Programm nicht hängt?!


Danke schonmal!
Christian Rose
© Christian.Ossi
  Mit Zitat antworten Zitat
Benutzerbild von tn249
tn249

Registriert seit: 18. Jan 2004
Ort: München
164 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Problem mit Indy-FTP (Verzögerung)

  Alt 22. Mai 2006, 01:34
Das beste ist du lagerst das in einen Thread aus.

Such mal nach TThread hier im Forum, bzw. in der Delphi-Hilfe.
Es gibt auch noch ein Tutorial auf Luckie seiner Seite (Link is in seiner Signatur zu finden).

Gruß
Thomas
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Benutzerbild von TKC
TKC

Registriert seit: 21. Apr 2004
Ort: Tuningen
367 Beiträge
 
Delphi XE2 Enterprise
 
#3

Re: Problem mit Indy-FTP (Verzögerung)

  Alt 22. Mai 2006, 04:02
Hi,
hast du schon mal die IdAntifreeze Komponente auf deine Form gezogen ?
  Mit Zitat antworten Zitat
Christian.Ossi

Registriert seit: 23. Mai 2004
Ort: Greußen
91 Beiträge
 
Delphi 2006 Architect
 
#4

Re: Problem mit Indy-FTP (Verzögerung)

  Alt 22. Mai 2006, 07:36
Ich hab jetzt die Komponente hinzugefügt. Muss ich da noch was einstellen oder reicht das, wenn sie einfach da ist?!
Kann ich da trotzdem die Datei "mit einmal" also ohne zerstückeln hochladen?
Das sieht nämlich nur so aus:

Delphi-Quellcode:
idFTP.Username:=List.Strings[0];
idFTP.Password:=List.Strings[1];
idFTP.Host:=List.Strings[2];
idFTP.Connect;
Try
idFTP.Put(Datei,OnlineDatei,False);
Finally
idFTP.Disconnect;
End;

Oder muss ich es anders programmieren, denn geholfen hat der Tipp bei mir leider nicht....
Christian Rose
© Christian.Ossi
  Mit Zitat antworten Zitat
Benutzerbild von jakobwenzel
jakobwenzel

Registriert seit: 31. Aug 2005
Ort: Ingelheim am Rhein
141 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Problem mit Indy-FTP (Verzögerung)

  Alt 22. Mai 2006, 07:54
Es geht ohne Hänger, indem man in dem Ereignis OnWork der idFTP ein
Application.ProcessMessages; schreibt.
Jakob Wenzel
"My store now sells Ninja Weapons!"
Comicverkäufer bei den Simpsons
  Mit Zitat antworten Zitat
Christian.Ossi

Registriert seit: 23. Mai 2004
Ort: Greußen
91 Beiträge
 
Delphi 2006 Architect
 
#6

Re: Problem mit Indy-FTP (Verzögerung)

  Alt 22. Mai 2006, 08:13
Das mit dem ProcessMessages im OnWork klappt schonmal.
Es hängt jetzt zumindest nicht mehr so wie vorher, dass man in der Zeit des Upload gar nichts mehr mit dem Programm anfangen kann.

Aber man merkt noch deutlich, dass er beschäftigt ist....soll heißen ich hab auf dem Form z.B. auch ne Uhr-Anzeige die von einem Timer aktualisiert wird--und enstsprechend "überspringt" die Uhr dann 2-3 Sekunden und der Programmablauf ist relativ langsam.

Gänzlich weg bekommen kann man das also nicht?
Christian Rose
© Christian.Ossi
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Problem mit Indy-FTP (Verzögerung)

  Alt 22. Mai 2006, 08:18
ganz weg bekommst Du es mit Threads, wenn Du pro Upload/Downloadvorgang
einen separaten Thread startest. Wurde aber schon in einem Beitrag vorher
angemerkt.

Kleinere Aussetzer bekommst Du wenn Du dem idftp sagst, das er kleinere "Häppchen"
übertragen soll. Soweit ich das weiß geht das über den Buffer.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Christian.Ossi

Registriert seit: 23. Mai 2004
Ort: Greußen
91 Beiträge
 
Delphi 2006 Architect
 
#8

Re: Problem mit Indy-FTP (Verzögerung)

  Alt 22. Mai 2006, 10:53
Habe es jetzt in einen Thread gepackt
Jedoch macht er nicht was im Thread steht?!?!

Deklarition
Delphi-Quellcode:
FTPUpload = Class(TThread)
Protected
Procedure Execute; Override;
Private
    { Private-Deklarationen }
    Target: ShortString;
    Remote: ShortString;
Public
    { Public-Deklarationen }
End;
Aufruf
Delphi-Quellcode:
FTPThread:=FTPUpload.Create(False);
FTPThread.Target:='Datei.txt';
FTPThread.Remote:='Datei1.txt';
Thread
Delphi-Quellcode:
Procedure FTPUpload.Execute;
Begin
Sleep(44);
If FTPACCESS.Text <> 'then
Begin
HF.FTPSocket.Username:=FTPACCESS.Strings[0]; //FTPACCESS enthält die Zugangsdaten
HF.FTPSocket.Password:=FTPACCESS.Strings[1];
HF.FTPSocket.Host:=FTPACCESS.Strings[2];
HF.FTPSocket.Connect;
Try
HF.FTPSocket.Put(Target,Remote,False);
Finally
HF.FTPSocket.Disconnect;
End;
End;
DeleteFile(Target);
End;
EDIT: HF ist mein Hauptfenster (also das Stamm-Formular) --> da hab ich ja die Indy-Objekte liegen
Christian Rose
© Christian.Ossi
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Problem mit Indy-FTP (Verzögerung)

  Alt 22. Mai 2006, 11:02
Was für'n Fehler bekommst Du denn?

Kannst Du den Client nicht zur Laufzeit erzeugen?
Hier ein Beispiel dazu: http://groups.google.de/group/comp.l...d196a2ca793151

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Christian.Ossi

Registriert seit: 23. Mai 2004
Ort: Greußen
91 Beiträge
 
Delphi 2006 Architect
 
#10

Re: Problem mit Indy-FTP (Verzögerung)

  Alt 22. Mai 2006, 11:31
Danke nochmal an alle! Es funktioniert jetzt einwandfrei und ohne den kleinsten Ruckler - aber am Upload erkennt man ja, dass er hochlädt....

Es war noch ein kleiner Fehler im TStringList - da stand das Create an der falschen Stelle und somit wurden nie die Zugangsdaten im FTPACCESS übergeben!

Ein Hoch auf den Thread *lol*
Christian Rose
© Christian.Ossi
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:43 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