AGB  ·  Datenschutz  ·  Impressum  







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

Funktion abbrechen

Ein Thema von thepaul · begonnen am 30. Jan 2005 · letzter Beitrag vom 30. Jan 2005
Antwort Antwort
Benutzerbild von thepaul
thepaul

Registriert seit: 7. Nov 2004
Ort: Jena
63 Beiträge
 
Delphi 7 Personal
 
#1

Funktion abbrechen

  Alt 30. Jan 2005, 20:02
Hi,

wie kann ich eine laufende Funktion abbrechen?

mfg Paul
Paul
Mosaic.net - Open Source Mosaik Creator in C#
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Funktion abbrechen

  Alt 30. Jan 2005, 20:04
Mit break; geht das
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von edosoft
edosoft

Registriert seit: 27. Okt 2003
Ort: Wehingen
258 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Funktion abbrechen

  Alt 30. Jan 2005, 20:10
oder mit
Exit; ?


mit
Abort; wird auch die "übergeordnete" funktion abgebrochen.
beim OnClose-event vonner tform kannst abort hinschreiben dann wirds fenster nicht geschlossen
Dominik Weber
www.edo-soft.com
  Mit Zitat antworten Zitat
Benutzerbild von thepaul
thepaul

Registriert seit: 7. Nov 2004
Ort: Jena
63 Beiträge
 
Delphi 7 Personal
 
#4

Re: Funktion abbrechen

  Alt 30. Jan 2005, 20:14
also wenn ich das hier schreibe
Delphi-Quellcode:
procedure Button1click...
begin
  break;
end;
werden alle Funktionen abgebrochen.

Was mach ich wenn ich nur eine bestimmte abrechen will?
Paul
Mosaic.net - Open Source Mosaik Creator in C#
  Mit Zitat antworten Zitat
Benutzerbild von edosoft
edosoft

Registriert seit: 27. Okt 2003
Ort: Wehingen
258 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Funktion abbrechen

  Alt 30. Jan 2005, 20:21
Delphi-Quellcode:
procedure machwas();
begin
if(1 = 1) then Exit;
machwas2;
end;

die funktion machwas2 wird nur ausgeführt wenn 1 ungleich 1 ist (also äh nie...)
Dominik Weber
www.edo-soft.com
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#6

Re: Funktion abbrechen

  Alt 30. Jan 2005, 20:24
Ein paar Bsp.:
Delphi-Quellcode:
Begin
  exit;
  Showmessage('Ich komme nie dran');
end;

begin
  Showmessage('Ich schon');
  exit;
  Showmessage('Ich komme nie dran');
end;

begin
  if Fehler = true then exit;
  Showmessage('Ich komm nur dran wenn kein Fehler');
end;

begin
  for I := 0 to 5 do
  begin
    if Fehler = true then
    begin
      Break;
    end;
    Showmessage('ich komme 5 mal dran außer es passiert ein Fehler dann nicht');
  end;
end;

begin
  try
    Showmessage('Ich komm dran');
  except
    Showmessage('Normaler weiße ich nicht');
  end;
end;

begin
  try
    Break;
    Showmessage('Ich nicht mehr');
  except
    Showmessage('Dafür jetzt ich');
  end;
end;
So damit müsste jetzt alles klar sein
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Benutzerbild von thepaul
thepaul

Registriert seit: 7. Nov 2004
Ort: Jena
63 Beiträge
 
Delphi 7 Personal
 
#7

Re: Funktion abbrechen

  Alt 30. Jan 2005, 21:16
ich glaub ihr habt mich flasch verstanden.

auf knofdruck wird Funktion 1 aufgerufen. die ist sehr Zeit und rechenintensiv. Jetzt soll sich der Button zum Abbruch-Button verändern. wenn die Function also schon läuft soll bei einem Klick auf den Button die Funktion abgebrochen werden.
Paul
Mosaic.net - Open Source Mosaik Creator in C#
  Mit Zitat antworten Zitat
Benutzerbild von edosoft
edosoft

Registriert seit: 27. Okt 2003
Ort: Wehingen
258 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Funktion abbrechen

  Alt 30. Jan 2005, 21:20
ahso... lol

das machst du z.b. so:
du definierst ne globale variable namens "bAbort" mit typ boolean.

dann schreibst du:
Delphi-Quellcode:
procedure rechne();
var
I: Integer;
begin
bAbort := false;
I := 0; //I ist nur zur demonstration da, wird nicht benötigt

while 1 = 1 do //endlosschlaufe
begin
//machwas
Application.ProcessMessages; //wichtig, sonst hängt sich das GUI total auf, d.h. man kann auch nirgendwo draufklicken.
if bAbort then Break;
Inc(I);
end;
showmessage('Sie haben '+inttostr(i)+' durchgänge gewartet bis Sie auf abbrechen geklickt haben.');
end;

/edit: in dem speziellen fall gehts natürlich auch so:
Delphi-Quellcode:
while not bAbort do
[..]
dann kannst du das if bAbort then Break; weglassen.
Dominik Weber
www.edo-soft.com
  Mit Zitat antworten Zitat
Benutzerbild von Chegga
Chegga

Registriert seit: 5. Nov 2004
Ort: Kirchheim
453 Beiträge
 
Delphi 7 Architect
 
#9

Re: Funktion abbrechen

  Alt 30. Jan 2005, 21:51
Hi,

Delphi-Quellcode:
const Max = 1;
var Abbruch: Integer;
.
.
.
procedure TForm1.Button1Click(Sender: TObject);
var Knopf: Integer;
begin
  // bla bla bla...
  inc (Abbruch);
  If Abbruch > Max then
  begin
   Button1.Caption := 'Abbrechen';
   Knopf := Application.Messagebox('Soll der Vorgang abgebrochen werden?', 'Meldung',1+16);
   if Knopf = IDYes then Abort;
  end;
   if Knopf = IDCancel then machwas;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Abbruch := 1;
end;
MfG Marc

P.S.: Code nicht getestet...
Marc P.
Grüße aus Kirchheim Teck
  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 22:41 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