Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Numbers! ist fertig, was kann noch ergänzt werden?

  Alt 1. Dez 2014, 08:17
Ich hab mir mal erlaubt, den Code zu formatieren, das erleichtert die Übersichtlichkeit enorm und macht auch die Fehlersuche einfacher:
Delphi-Quellcode:
procedure TForm1.ButtonDoneClick(Sender: TObject);
begin
  TimerLeben.Enabled := true;
  if (Editausgabe.text = EditEingabe.text) and switch1.IsChecked then
    begin
      LabelAusgabe.text := 'Richtig!';
      randomize;
      Zufallszahl := random(9) + 1;
      EditEingabe.text := '';
      ButtonGo.Enabled := true;
      ButtonDone.Enabled := false;
      Editausgabe.text := Editausgabe.text + inttostr(Zufallszahl);
      Editausgabe.visible := true;
      TimerCountdown.Enabled := true;
      EditEingabe.ReadOnly := true;
      ButtonGo.Enabled := false;
      ButtonDone.Enabled := false;
      ButtonDone.visible := true;
      Countdown := 3;
      Level := Level + 1;
      Labelrichtig.visible := true;
      Labelrichtig.text := 'Du hast ' + inttostr(Level) +
        ' richtige Antworten gegeben';
    end;
  if (Editausgabe.text = EditEingabe.text) and not switch1.IsChecked then
    begin
      LabelAusgabe.text := 'Richtig!';
      randomize;
      Zufallsbuchstabe := Chr(random(26) + 64 + 1);
      Editausgabe.text := Editausgabe.text + Zufallsbuchstabe;
      EditEingabe.text := '';
      ButtonGo.Enabled := true;
      ButtonDone.Enabled := false;
      Editausgabe.visible := true;
      TimerCountdown.Enabled := true;
      EditEingabe.ReadOnly := true;
      ButtonGo.Enabled := false;
      ButtonDone.Enabled := false;
      ButtonDone.visible := true;
      Countdown := 3;
      Level := Level + 1;
      Labelrichtig.visible := true;
      Labelrichtig.text := 'Du hast ' + inttostr(Level) +
        ' richtige Antworten gegeben';
    end;
  if not(Editausgabe.text = EditEingabe.text) then
    begin
      Editausgabe.ReadOnly := true;
      LabelAusgabe.text := 'Falsch';
      ButtonGo.visible := false;
      ButtonWeiter.visible := true;
      ButtonWeiter.Enabled := true;
      Editausgabe.visible := true;
      ButtonWeiter.text := 'Weiter';
      ButtonGo.Enabled := false;
      ButtonDone.Enabled := false;
      TimerLeben.Enabled := true;
      Loose := Loose + 1;
      EditEingabe.text := '';
    end;
end;
Ist Dir schon aufgefallen, dass Du vieles mehrfach tust? Wie wäre es denn mit dieser Logik?
Delphi-Quellcode:
if Editausgabe.text = EditEingabe.text then
  begin
    if switch1.IsChecked then
      begin
        //Code für Fall "Zahlen"
      end
    else
      begin
        //Code für Fall "Buchstaben"
      end;
    //gemeinsamer Code
  end
else
  begin
    //Code für falsche Antwort inkl. Beschriftung von Labelrichtig
  end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH ( 1. Dez 2014 um 08:52 Uhr) Grund: Schreibfehler korrigiert
  Mit Zitat antworten Zitat