AGB  ·  Datenschutz  ·  Impressum  







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

frage zu while schleife

Ein Thema von midnight Ghost · begonnen am 26. Nov 2006 · letzter Beitrag vom 26. Nov 2006
Antwort Antwort
Muetze1
(Gast)

n/a Beiträge
 
#1

Re: frage zu while schleife

  Alt 26. Nov 2006, 13:25
Hi!

Ich sehe hier mehrere Probleme in dem Quellcode. Ich gehe sie mal der Reihe nach durch:

1. Deine Unterproceduren Frage1allg und Frage2allg weisen die Frage dem Label zu und fragen sofort ab, ob die richtige Antwort getroffen wurde. Wo soll denn dort der User reagieren können? Er müsste innerhalb von Millisekunden reagieren und die richtige Entscheidung treffen. Mit anderen Worten: Anzeigen der Frage und Antwortmöglichkeiten muss zeitlich bzw. event-basierend von einander getrennt werden.
2. While verhält sich wie IF und führt standardmässig nur die nachfolgende Anweisung aus, ausser es werden mehrere Anweisungen in einem Begin/End Block zusammen gefasst. Daher würde deine While Schleife nur ständig Randomize aufrufen.
3. Randomize braucht und sollte nur einmalig aufgerufen werden. Rufe diese Funktion z.B. im OnCreate der Form auf und dann reicht das vollkommen.
4. Die VCL ist event-driven, d.h. du bekommst Bescheid, wenn etwas zu tun ist. Das bedeutet: Wenn der Benutzer den "WEITER" Button drückt, dann erledige die notwendigen Aktionen im OnClick des Buttons (z.B. Überprüfung der Antworten auf Richtigkeit, etc). Wenn in einer Behandlungsroutine bist, wie z.B. das OnClick des BSFLstart, dann ist der Rechner damit beschäftigt und kann keine anderen Aktionen aufnehmen bzw. verarbeiten, da die VCL darauf wartet, dass du mit der Behandlungsroutine fertig wirst. Mit anderen Worten: innerhalb dieser BSFLstartClick() Methode kannst du so lange Schleifen laufen wie du willst, aber eine CheckBox oder RadioBox wirst du als Nutzer nicht setzen können. Somit kann sich das Edit Feld schlecht innerhalb der While Bedingung ändern. Du musst hier umdenken und die Aktionen machen, wenn ein entsprechendes Ereignis eingetreten ist. Z.B. das Anzeigen des Formulars (OnShow), ein Click auf einen Button, etc.
5. Auch wenn zu 4. nun andere kommen und Lösungen mit Application.ProcessMessages anbieten, so ist dies in diesem Falle überhaupt nicht nötig und kann komplett ohne solche Verbiegungen gelöst werden.
6. Mit dem Projektfile können wir nichts anfangen, wenn das Formular und die Unit fehlen...
  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:26 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