Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Prozess anhalten (Prozedure unterbrechen) (https://www.delphipraxis.net/60994-prozess-anhalten-prozedure-unterbrechen.html)

nowmaxx 15. Jan 2006 15:37


Prozess anhalten (Prozedure unterbrechen)
 
Hi!
Ich habe in einer Prozedur eine if_Schleife. Verschieden Anweisungen werden ausgeführt, wenn eine bestimmte Bedingung erfüllt ist. Fortlaufend habe ich einen Befehl drin, der das Formular schließt, falls eine bestimmte, andere Bedingung erfüllt ist. Nun kann es passieren, dass das Formular geschlossen wird, obwohl noch nicht alle Anweisungen der if-Schleife erfüllt worden sind. Wenn ich nun (immer noch im Programm) das Formular erneut öffne, werden erst die alten, noch offenen Anweisungen ausgeführt. Das möchte ich vermeiden. Gibt es einen Befehl, der die if-Schleife zum Erliegen bringt?

SirThornberry 15. Jan 2006 15:55

Re: Prozess anhalten (Prozedure unterbrechen)
 
arbeitest du mit Threads oder wie kann es sein das während befehle abgearbeitet werden von anderer Seite auch Befehle kommen. Und was meinst du mit if-Schleife, was ist das?

ManuMF 15. Jan 2006 16:21

Re: Prozess anhalten (Prozedure unterbrechen)
 
Hallo,

vewendest du eine IF-Abfrage oder wirklich eine Schleife?
In einer Scheife sollte dir Delphi-Referenz durchsuchenbreak bzw. für eine ganze Prozedur Delphi-Referenz durchsuchenexit helfen.

Gruß,
ManuMF

nowmaxx 15. Jan 2006 16:30

Re: Prozess anhalten (Prozedure unterbrechen)
 
Zitat:

Und was meinst du mit if-Schleife, was ist das?
Zitat:

Verschieden Anweisungen werden ausgeführt, wenn eine bestimmte Bedingung erfüllt ist.
Eine If-Anweisung eben.
Nein ich arbeite nicht mit Threads.
Man muss sich das ganze so vorstellen:
Zwei Kreaturen haben einen bestimmten Integerwert als Lebenspunkte. Wenn diese leer sind, ist das Monster tot und es wird das Hauptformular angezeigt. Um diese Lebenspunkte zu verringern, kann die jeweils gegnerische Kreatur Attacken wählen, mit der Schaden zugefügt (Lebenspunkte abgezogen) werden. Um das ganze dem Spieler verständlich zu machen, schreibt das Programm die Attacken in ein Panel. Damit das gut lesbar ist, pausiert die Prozedur, um dem Spieler das Lesen überhaupt zu ermöglichen. Wenn der Spieler eine Attacke ausführt, wird als Antwort darauf gleich eine Attacke des Gegners gestartet, um den Kampf auch gerecht von Statten gehen zu lassen. Genau zwischen den Attacken pausiert die Prozedur. Nun kann es passieren, dass der Gegner tot ist, bevor er seine Attacke ausführen konnte. Wenn ich dann zurück in das Kampfformular wechsle (zum nächsten Kampf), führt er diese dann trotzdem aus. Das ist natürlich nicht logisch und muss unterbunden werden. Nun meine Frage: mit welchem Befehl geht das?

Der Quelltext eignet sich nicht gerade, um hier rein zu posten. Falls es dennoch jemanden interessiert, kann man ihn sich hier downloaden.

nowmaxx 15. Jan 2006 16:36

Re: Prozess anhalten (Prozedure unterbrechen)
 
Zitat:

für eine ganze Prozedur exit helfen.
Vielen Dank! Exit ist genau das Richtige! :dancer:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:03 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