AGB  ·  Datenschutz  ·  Impressum  







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

Abbrechen und auf Abbruch warten?

Ein Thema von Mattze · begonnen am 28. Nov 2006 · letzter Beitrag vom 30. Nov 2006
 
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#1

Abbrechen und auf Abbruch warten?

  Alt 28. Nov 2006, 10:43
Hallo,

ich schaffe es nicht, eine Schleife extern abzubrechen und auf den erledigten Abbruch zu warten.
Bisher habe ich das so gemacht (nur das Nötige):
Formular mit zwei Schaltern.
Der eine läßte die Schleife los, der andere hält sie an.
Der Implementations-Teil:

Delphi-Quellcode:
var Abbruch: Boolean = False;
    abgebrochen: Boolean = false;

procedure TForm1.Button1Click(Sender: TObject);
begin
    abbruch:=false;
    while true do begin
      application.processmessages;
      if Abbruch then begin
        abgebrochen:=true;
        break;
      end;
    end;
    If abbruch then begin
      showmessage(inttostr(integer(abgebrochen))+'Abbruch');
   end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var i: LongInt;
begin
  abgebrochen:=false;
  abbruch:=true;
  application.ProcessMessages;
{Wird ordentlich abgebrochen. Das "showmessage in Button1Click ist nur zum Gucken. Muss nicht sein!
Nun will ich auf den Abbruch warten und das geht nicht. Abgebrochen bleibt false und es wird auch keine Meldung im ersten //Schalter generiert. Nehme ich diese Schleife weg, geht es ordentlich. Hintergrund: Ich benutze
rekursive Funktionen und er soll erst weitermachen, wenn auch wirklich alles beendet wurde.
Man kann übrigens nicht mal mit Systemmenü oder oben rechts das Programm beenden!!!
Es sieht fast so aus, als wenn er Abbruch:=true erst an das restliche Programm sendet, wenn die
zweite Ereignisprocedure verlassen wird! Aber das ist doch Quatsch, oder?
Button2click geht so weiter:}

Delphi-Quellcode:
  while not abgebrochen do begin
    label1.caption:=inttostr(i);
    inc(i);
    application.ProcessMessages;
  end;
end;
Wo mache ich meinen Denklfehler und wie geht es? Hat jemand einen Tipp?

Gruß
Matthias
  Mit Zitat antworten Zitat
 


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 15:25 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