AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Schleife anhalten

Ein Thema von FordPerfekt · begonnen am 16. Aug 2007 · letzter Beitrag vom 17. Aug 2007
Antwort Antwort
FordPerfekt

Registriert seit: 16. Nov 2006
20 Beiträge
 
#1

Schleife anhalten

  Alt 16. Aug 2007, 20:21
Hallo,

Ich arbeite gerade an einem Programm, welches Bilder auf einen Server per FTP(mit INDY-Komponenten) hochläd!

Leider schaffe ich es nicht, eine "Abbruch"-Funktion einzubauen, weil dann immer eine Fehlermeldung kommt!

Da das Programm egtl. nur ich selbst benutze, wollte ich es so lösen:

Immer 3 Bilder hochladen
Dann nach fragen ob weiter gemacht werden soll oder nicht
Dann weiter machen oder nicht

Hier der Code:
Delphi-Quellcode:
procedure upl;
var
i,co:integer;
begin
i:=0;
co:=0;
uploadfrage:=1; //UPLFR: 1=Ja 2=Nein(=Abort) 3=Immer Ja

for i:= 0 to Listbox1.Items.count - 1 do
  begin
    if co=3 then
      begin
        uploadfrage:=5; // uploadfrage <> 1 o. 3 => Stop!
        logform.Memo1.Lines.Add(timetostr(now)+': Performing abort request');
        groupbox1.Show;

        case uploadfrage of
         1: begin
              co:=0;
              uploadfrage:=1;
            end;
         2: idftp1.Disconnect();
         3: begin
              co:=4;
              uploadfrage:=3;
            end;
         4: idftp1.Disconnect();
     end;
//bilder werden nacheinander durchgegangen und dann hochgeladen... Logfile wird mit daten gefüttert
if (uploadfrage=1) or (uploadfrage=3) then
   begin
     status_lbl.Caption:='Uploading '+inttostr(i+1)+' of '+inttostr(listbox1.Items.Count); logform.Memo1.Lines.Add('Uploading '+extractfilename(listbox1.Items[i]));
     idftp1.Put(listbox1.Items[i],ExtractFileName(listbox1.Items[i]),false);
     urlform.Memo1.Lines.Add(remoteurl+ExtractFileName(listbox1.Items[i]));
     logform.Memo1.Lines.Add(timetostr(now)+': Added URL:'+ remoteurl+ExtractFileName(listbox1.Items[i]));
     inc(co);
     end;
  end;
end;
Es wird gefragt, ob der Upload fortgesetzt werden soll, dabei bedeutet 1=Ja 2=Nein 3=immer Ja(also alle einfach).
Nur wenn er mir die Frage stellt läd er einfach weiter hoch ohne zu stoppen!

Wo ist der Fehler?

mfg
Ford
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Schleife anhalten

  Alt 16. Aug 2007, 20:23
Ich würde die Schleife von der For in eine While-Schleife mit entsprechender Bedingung umbauen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Schleife anhalten

  Alt 16. Aug 2007, 20:25
ich würde es so machen:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
  private
    fCancel: Boolean;
[...]
procedure TForm1.BtnCancelClick(Sender: TObject);
begin
  fCancel := True;
end;

procedure TForm1.BtnUploadClick(Sender: TObject);
var
  lCount : Integer;
begin
  lCount := 0;
  fCancel := False;
  while (lCount < Listbox1.Items.Count) and not(fCancel) do
  begin
    Application.ProcessMessages();
    //Datei auf FTP hochladen
    Application.ProcessMessages();
    inc(lCount);
  end;
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
FordPerfekt

Registriert seit: 16. Nov 2006
20 Beiträge
 
#4

Re: Schleife anhalten

  Alt 17. Aug 2007, 13:31
Super Danke!
An die Möglichkeit habe ich noch gar nicht gedacht!

mfg
Ford!
  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 18:09 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