schöner Spaghetti-code
und massig units...wozu die 3 leeren units (2-4)?
nachdem ich deine projektdatei geöffnet habe, vermute ich, dass die units auch nicht die richtigen sind (anderer Ordner).
lagere mal bitte die fragen+antworten in eine externe Datei (ini,
xml,etc) aus, damit das Codesegment universeller und besser lesbarer wird.
36 Schwierigkeitsgrade? ich denke 3 reichen...ist sicher nur unglückliches benamen der variablen.
als kleiner tipp am rande...folgendes lässt sich auch entscheidend verkürzen:
Delphi-Quellcode:
Case Loesung of
1:begin
Panel2.Color:=clgreen;
Panel3.Visible:=false;
Panel4.Visible:=false;
Panel5.Visible:=false;
end;
2:begin
Panel3.Color:=clgreen;
Panel2.Visible:=false;
Panel4.Visible:=false;
Panel5.Visible:=false;
end;
3:begin
Panel4.Color:=clgreen;
Panel2.Visible:=false;
Panel3.Visible:=false;
Panel5.Visible:=false;
end;
4:begin
Panel5.Color:=clgreen;
Panel2.Visible:=false;
Panel4.Visible:=false;
Panel3.Visible:=false;
end;
z.b. so:
Delphi-Quellcode:
var panel:TPanel
Panel2.Visible:=false;
Panel3.Visible:=false;
Panel4.Visible:=false;
Panel5.Visible:=false;
panel:=findcomponent('Panel'+IntToStr(Loesung+1));
if assigned(panel) then
begin
panel.visible:=true;
panel.color:=clGreen;
end;
oder
Delphi-Quellcode:
case ZS of
1:
begin
with mediaplayer1 do
begin
Filename:=Pfad+'\Mediendateien\richtigeAntwort\1.wav';
mediaplayer1.Open;
mediaplayer1.Play;
end;
end;
... //obiger code noch 3x und das bei jedem panelclick.
einfach so:
Delphi-Quellcode:
with mediaplayer1 do
begin
Filename:=Pfad+'\Mediendateien\richtigeAntwort\'+IntToStr(ZS)+'.wav';
mediaplayer1.Open;
mediaplayer1.Play;
end;
du kannst mehreren Panels auch die gleiche Click-Prozedur zuweisen...so sparst du redundaten code...
wenn du die paar sachen machst und noch eine bessere Einrückung
dann wird dein code schonmal viel besser lesbar.warum eigentlich 4 mediaplayer?
den Vergleich, ob frage schon gefragt wurde hab ich noch nicht gefunden...
Gruß Frank