Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Schleifen Unterbrechung (https://www.delphipraxis.net/85300-schleifen-unterbrechung.html)

Jacer 28. Jan 2007 22:54


Schleifen Unterbrechung
 
Hallo erstmal allgemein an die ganze Community! :hi:
Bin noch ganz frisch hier im Forum war ansonsten immer nur interessierter Gast-Leser :)

Also ich suche seid Stunden danach aber finde einfach keine Lösung. :gruebel:
Ich möchte eine Art "Quiz" erstellen und benutze das RadioGroups mit entsprechenden RadioButtons. Nichts schweres soweit.
Sobald ein Button geklickt wird,startet eine For-Schleife. Eine case-Anweisung liest den gewählten RadioButton aus und übergibt ihn an eine Variable. Anschließend wird der aktuelle Wert der Zähl-Variable mit einer normalen If-Bedingung geprüft und je nachdem die Frage und möglichen Antworten geändert. Alles soweit noch kein Problem.
Nun muss die Schleife ja aber einen Stop einlegen zwischen den Durchgängen damit der Benutzer die neue Frage überhaupt lesen bzw beantworten kann. Ansonsten würde die case Anweisung ja einfach den Standard aktivierten RadioButton direkt wieder übergeben und man würde nach der 1. nur noch die letzte Frage zu lesen bekommen.
Meine Frage ist jetzt ob es möglich ist eine NICHT zeitbedingte Pause in die For-Schleife einzufügen die darauf wartet, dass der Button nocheinmal gedrückt wird!?
Tut mir leid wenn die Frage völlig hohl ist aber ich finde einfach keine Lösung! :cry:

Wäre echt super wenn ihr mir helfen könntet

richie 28. Jan 2007 23:03

Re: Schleifen Unterbrechung
 
Such mal im Forum nach Delay, allerdings ist diese Funktion zeitbedingt. Evtl. kannst du sie selbst erweitern? Mit Break kannst du eine Schleife abbrechen, was für dich ja aber anscheinend auch nicht das Wahre ist. Vielleicht in einen Thread auslagern und mit Sleep arbeiten? Aber da kannst du ja auch Delay nehmen.

Du könntest in der Schleife eine Funktion aufrufen, die wartet, bis ein Flag gesetzt wird und dann zurückkehrt.

alanblack 28. Jan 2007 23:07

Re: Schleifen Unterbrechung
 
Hallo,

ich weiß jetzt zwar nicht ob das das richtige für dich ist aber du könntest ja mal hier schauen: Klick

Mfg Tobi

g1o2k4 28. Jan 2007 23:10

Re: Schleifen Unterbrechung
 
so ganz versteh ich den ablauf nicht...

eine for schleife hält man zum beispiel mit break; an, dann wird die schleife übersprungen und das folgende ausgeführt.
aber wozu ist da überhaupt eine for schleife ? nur damit eine variable hochgezählt wird ? das geht auch mit inc(zählvariable); vielleicht postest du mal deinen code.

C.Schoch 28. Jan 2007 23:11

Re: Schleifen Unterbrechung
 
Hi,
Warum so umständlich?
Nimm einfach eine Zählvariable die du nach jedem Klick des, ich vermute mal "Abschicken"-Buttons um eins erhöst.
Natürlich musst du vorher noch die Antworten auswerten das sollte aber alles im OnClick Ereignis des "Abschicken"-Buttons erledigbar sein.
Nachdem die zählvriable erhöht wurde einfach die neue Frage stellen oder auf das Ende hinweisen und fertig.

Edit: REDBOX da war einer schneller

Jacer 28. Jan 2007 23:12

Re: Schleifen Unterbrechung
 
Zitat:

Zitat von alanblack
Hallo,

ich weiß jetzt zwar nicht ob das das richtige für dich ist aber du könntest ja mal hier schauen: Klick

Mfg Tobi

Der Ansatz davon ist ja schon nicht schlecht.
Allerdings soll ja eine generelle Pause eingefügt werden BIS der Benutzer wieder den Button betätigt. Und dann soll die Schleife ja aber auch fortgesetzt werden und mit Break wird sie ja abgebrochen!

Zitat:

Zitat von C.Schoch
Hi,
Warum so umständlich?
Nimm einfach eine Zählvariable die du nach jedem Klick des, ich vermute mal "Abschicken"-Buttons um eins erhöst.
Natürlich musst du vorher noch die Antworten auswerten das sollte aber alles im OnClick Ereignis des "Abschicken"-Buttons erledigbar sein.
Nachdem die zählvriable erhöht wurde einfach die neue Frage stellen oder auf das Ende hinweisen und fertig.

Edit: REDBOX da war einer schneller

Ja ich wollte möglichst wenig Code haben aber die Case-Anweisung könnte ich ja auch Extra nochmal in einer Prozedur speichern.
Werde das mal testen vielen Dank!


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz