Hi Lasse
Mag ja sein, das du von uns Hilfe erwartest, nur verstehe, du erwartest, das wir uns in einem Code durchfummeln der nix von Formatierung und übersichtlicher Gestaltung hat. Du selbst blickst auch besser durch, wenn du einmal das viel zitierte und doch sowenig beachtete Einrücken der Begin und End Bereiche anwendest.
BSP.
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
var auswahl, gessum : integer;
sprach1, sprach2, eingabe : string;
richtanz : Boolean;
[b]label 1; [/b] // ????? Was ist das ?
begin
ZaeleNochAbzuFr(nochabzufr, gessum);
RandomVokabel(nochabzufr, auswahl);
if gessum > 0 then
begin
ChangeVokabel(auswahl, radiogroup1.ItemIndex, sprache1, sprache2, sprach1,sprach2);
[b]1: [/b] // ????? Sprungmarke ? Warum nicht Repeat ?
begin //
FrageAb(Vokabel1, Sprach1, Sprach2, Eingabe);
VergleicheVokabel(eingabe, vokabel2, checkbox1.checked, fehler, richtanz);
if (not richtanz) and (eingabe <> '') then goto 1;
// und hier Until und zurückrücken
// Until (richtanz) or(eingabe =''); geänderte Logik !
if eingabe <> '' then
begin
ShowMessage(sprach1 + ' - '+ sprach2 +#10#13+ vokabel1 + ' - '+vokabel2+#10#13+'Es werden noch '+inttostr(gessum)+' Vokabeln abgefragt.'+#10#13+'Du hast '+inttostr(fehler) {Hier zeigt sich der Fehler.} +' falsche Buchstaben eingegeben.');
end; // Eingabe erfolgt
end; // Falsch ! da 1: Begin keinen Sinn macht
end; // Gessum gültig ( oder was auch immer )
end;
Die Zeile ShowMessage ist auch ziemlich lang, daher nehme ich in solchen Fälle eine Stringvariable zuhilfe und weise sie in mehreren Zeilen zu:
Delphi-Quellcode:
Infotext:=Sprach1+'-'+Sprach2+#13;
Infotext:=Infotext+Vokabel1+'-'+Vokabel2+#13;
Infotext:=Infotext+'Es werden moch..... usw
Ist nicht zwingend notendig, aber es erhöht die Lesbarkeit und je nach Umfang des Programmes ist der Mehraufwand bei Hilfstexten auch gar nicht sooo schlimm.
Auch wenn ich nicht auf dein Problem eingegangen bin, hoffe ich, dir genug Info gegeben zu haben, die dir hilft, den Fehler zu finden. Denk auch dran, das du dein Programm auch im Einzelschritt ausführen und Schritt für Schritt das Ergebnis der einzelnen Anweisungen prüfen kannst. Stichwort Haltepunkt!
Gruß oldmax