Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Gauge Position ändern bei dem Upload einer Datei ? (https://www.delphipraxis.net/131982-gauge-position-aendern-bei-dem-upload-einer-datei.html)

thomas2009 3. Apr 2009 17:34


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;

DeddyH 3. Apr 2009 17:40

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.

thomas2009 3. Apr 2009 18:01

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:
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;
Die Datei wird erfolgreich hochgeladen ausser eine Fehlermeldung am Ende :
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 !

DeddyH 3. Apr 2009 18:07

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.

thomas2009 3. Apr 2009 18:28

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 !

DeddyH 3. Apr 2009 18:32

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.

Daniel 3. Apr 2009 18:34

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.

thomas2009 4. Apr 2009 14:22

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;

Luckie 4. Apr 2009 16:41

Re: Gauge Position ändern bei dem Upload einer Datei ?
 
Dann setz doch einfach mal einen Breakpunkt in Zeile 6.

thomas2009 4. Apr 2009 17:03

Re: Gauge Position ändern bei dem Upload einer Datei ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Luckie
Dann setz doch einfach mal einen Breakpunkt in Zeile 6.

kein Unterschied
Das Gauge wird sofort mit 100% angezeigt


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:25 Uhr.
Seite 1 von 2  1 2      

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