Zugegebener maßen hab ich ne Weile lang davor gesessen, bis ich es nu raus hab... Hab mir mal deinen QC in nen Prog gepackt und debbuged, auch wenns letztenendes recht simpel is *g*
Dein Programm führt alles, was es ausführen soll ordentlich aus... nur hast du einen kleinen Denkfehler in der Sache...
In deiner Button1Click rufst du zuerst zieheuserzahlen auf, dann checkuserzahlen. Das läuft soweit alles richtig, es springt von dort aus nach "fehler", schreibt die Fehlermeldungen in Label1 und Label2. Dann läuft dein Programm aber weiter. Du hast zwar die for-Schleifen in "fehler" abgebrochen, aber die restliche Auswertung nicht. Also werden fröhlich die Lottozahlen gezogen, dann wird ausgewertet. Das, was gerade eben in Label1 geschrieben wurde, wird wieder überschrieben, genauso mit Label2. Daher glaubst, du, dass der Check nicht ausgeführt wurde.
Also, jetzt ganz langsam weiter.
Erstmal verstehe ich nicht, wieso du für all die Sachen einzelne Prozeduren brauchst, wo du doch eh nicht mit Parametern etc. arbeitest. (Anbei sei mal wieder der Crashkurs von Christian empfohlen, Link hab ich gerade nicht parat).
Mein Tip an dich wäre, das ganze in eine Prozedur zu packen. Dann fällt auch das Debuggen etwas leichter (man kann dann nämlich mit einem Breakpoint durchhüpfen

) aber was viel wichtiger ist: du selbst kannst von vornherein die Abläufe wesentlich besser nachvollziehen.
Ich denke mal, du machst das für die Schule?! (Und das man da die wichtigsten Sachen sowieso nicht gesagt kriegt, weiß ich aus eigener Erfahrung

) Dann muss ich dich an dieser Stelle aber doch mal loben... Du hast gleich dein Beispiel gebracht und gesagt, an welcher Stelle du nicht weiterkommst (und wenn bei anderen gesagt wird "Wir machen deine Hausaufgaben nicht, wenn du nicht mithilfst", muss hier auch mal das Gegenteil erwähnt werden

)
So... und bevor mir wer sagt, ich würde vom Thema abweichen, hüpf ich lieber gleich dahin zurück.
Will dein Lehrer, dass du für jeden einzelnen Vorgang eine Prozedur anlegst? Sonst würde ich dir nämlich wirklich raten, alles zusammen zu packen, um den Überblick besser zu behalten...
Wenn du willst, helf ich dir dabei, das Programm ein wenig besser zu strukturieren.
Du kannst z.B. die Überprüfung auf die Zahlen schon optimieren, in dem du nur einmal das Array durchläufst und gleichzeitig auf < 1 oder > 49 überprüfst:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| for i:=1 to 6 do begin if (userzahlen[i] < 1) or (userzahlen[i] > 49) then begin fehler; break; end; end; |
Also, meine Hilfe dabei sei dir angeboten...
Gruß
Miri
Moderiert von
raziel: Delphi-Tags hinzugefügt.