![]() |
Gauge Position ändern bei dem Upload einer Datei ?
Hallo
wie könnte ich ein Gauge für mein Upload einer Datei verbinden, damit ich wissen, ob die Datei schon erfolgreich hochgeladten wurde oder noch nicht ?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var f: string; begin self.IdFTP1.Host := 'ftp.myweb.de'; self.IdFTP1.Username := 'user1'; self.IdFTP1.Password := 'passwort1'; Label1.Caption := 'Connecting...'; application.ProcessMessages; self.IdFTP1.Connect; f := 'C:\test.bmp'; if IdFTP1.Connected then begin application.ProcessMessages; self.IdFTP1.ChangeDir('/'); application.ProcessMessages; IdFTP1.Put(f, ExtractFileName(f)); application.ProcessMessages; end; end; |
Re: Gauge Position ändern bei dem Upload einer Datei ?
IdFTP.OnWorkBegin MaxValue des Gauges auf AWorkCountMax und IdFTP.OnWork Progress des Gauge auf AWorkCount setzen.
|
Re: Gauge Position ändern bei dem Upload einer Datei ?
die Streifen in geht ganz schnell obwohl ich eine grosse datei uploade
dann arbeitet das Programm in Hintergrund ohne ! bevor ich mit einem Gauge anfange, habe ich mit einem Progressbar getestet
Delphi-Quellcode:
Die Datei wird erfolgreich hochgeladen ausser eine Fehlermeldung am Ende :
procedure TForm1.IdFTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer); begin ProgressBar1.Max := AWorkCountMax; // ProgressBar1.Position := 0; end; procedure TForm1.IdFTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode); begin ProgressBar1.Position := 0; label1.Caption:='OK'; end; procedure TForm1.IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer); begin ProgressBar1.Position :=AWorkCount; end; Eigenschaft Progressbar außerhalb des gültigen Bereichs das 2. Problem label1.Caption:='OK'; nur wenn er fertig ist mit upload, das wird aber sofort angezeigt, wenn ich auf das Button anklicke ! |
Re: Gauge Position ändern bei dem Upload einer Datei ?
Und wenn Du die ProcessMessages-Aufrufe beim Button auskommentierst? IIRC benutzen die Indy-Komponenten Threads, daher wäre das ja doppelt gemoppelt.
|
Re: Gauge Position ändern bei dem Upload einer Datei ?
das grosse Problem, warum wird das Upload in Hintergrund gearbeitet aber das Formular friert sich!
Ich kann damit nicht machen, nur wenn das Programm mit dem Upload fertig ist ! |
Re: Gauge Position ändern bei dem Upload einer Datei ?
Dann pack mal eine IdAntiFreeze-Komponente dazu. Weiter kann ich Dir aber nicht helfen, da ich äußerst selten was mit Indy mache.
|
Re: Gauge Position ändern bei dem Upload einer Datei ?
@thomas: Oberste Regel: Ruhig bleiben. ;-) Du hast bereits mehrfach bewiesen, dass Du in der Lage bist, Deine Beiträge aussagekräftiger zu formulieren, wenn Du Dir ein wenig Mühe gibst.
|
Re: Gauge Position ändern bei dem Upload einer Datei ?
Liste der Anhänge anzeigen (Anzahl: 1)
Mit dem Komponent "IdAntifreeze" wird nun tatsächlich das Formular nicht gefroren
Das Problem nun ist das gauge geht sofort nach dem Klick auf 100% obwohl die Datei noch bei dem Hochladen sich befindet ! Woran liegt das vielleicht ?
Delphi-Quellcode:
procedure TForm1.IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer); begin //Gauge1.MaxValue := Response.ContentLength; Gauge1.Progress := AWorkCount; Gauge1.Update; Application.ProcessMessages; end; procedure TForm1.IdFTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer); begin Gauge1.MaxValue:=AWorkCountMax; end; procedure TForm1.BitBtn2Click(Sender: TObject); begin Gauge1.Visible:=true; IdFTP1.Host := 'ftp.xxxx.de'; IdFTP1.Username := 'xxxx'; IdFTP1.Password := 'xxxx'; IdFTP1.Connect; // IdFTP1.ChangeDir('/'); IdFTP1.put('C:\test.bmp','test.bmp',true); //IdFTP1.Quit; IdFTP1.Disconnect; end; |
Re: Gauge Position ändern bei dem Upload einer Datei ?
Dann setz doch einfach mal einen Breakpunkt in Zeile 6.
|
Re: Gauge Position ändern bei dem Upload einer Datei ?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Das Gauge wird sofort mit 100% angezeigt |
Re: Gauge Position ändern bei dem Upload einer Datei ?
Was heißt kein Unterschied? Hält er denn da an und was hat dann AWorkCount für einen Wert?
|
Re: Gauge Position ändern bei dem Upload einer Datei ?
Zitat:
|
Re: Gauge Position ändern bei dem Upload einer Datei ?
Also in Zeile sechs steht bei mir:
Delphi-Quellcode:
Gauge1.Progress := AWorkCount;
|
Re: Gauge Position ändern bei dem Upload einer Datei ?
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn ich das Programm an diesem Punkt anhalte
Gauge1.Progress := AWorkCount; und dann mit F8 stück für Stück laufen lasse dann sehe ich was in Progessbar und in Gauge Mit F8 wiederholt sich der Code in OnWork und die Brogressbar.Position geht auch stück für Stück vorwehrtes ! |
Re: Gauge Position ändern bei dem Upload einer Datei ?
Wie groß ist denn die Datei?
|
Re: Gauge Position ändern bei dem Upload einer Datei ?
Das Bild ist etwa 700 kb groß
das Programm benötigt etwa 20 Sekunden oder mehr um die Datei auf Server zu kopieren Aber in Progressbar geht um eine Bruch Sekunde ! |
Re: Gauge Position ändern bei dem Upload einer Datei ?
Hi,
mach mal ein TIdAntiFreeze auf Dein Formular und wirf aus der Methode IdFTP1Work das Gauge1.Update und das Application.ProcessMessages heraus. |
Re: Gauge Position ändern bei dem Upload einer Datei ?
Zitat:
TIdAntiFreeze ist auch auf dem Formular |
Re: Gauge Position ändern bei dem Upload einer Datei ?
Bitte lies dir doch deinen Post vor dem abschicken nochmal durch.
Fünf Fehler in zwölf Worten da muss man schon mehr raten als lesen. :wink: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:06 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