Hallo,
was Klaus geschrieben hat, ist nur zum Teil richtig. Help wird tatsächlich nur beim ersten Aufruf gesetzt. Leider ist Help aber eine lokale Variable, deshalb ist Help auch bei allen übrigen Aufrufen undefiniert.
Sobald Du Help als Variable der Form deklarierst, funktioniert auch die Methode. Alternativ kannst Du auch die Eigenschaft
Tag des Timers verwenden, wenn Du die nicht für etwas anderes benötigst. Damit sparst Du Dir eine Variable, solltest dieses dann aber auch dokumentieren, damit Du weißt, was Du da getan hast.
ich hab die Methode mal noch etwas überarbeitet und kommentiert. Du benötigst folgende Variablen (am Besten in Deiner Form definiert):
Delphi-Quellcode:
DoFirst: Boolean; // Welche Färbemethode?
level: Integer = 0; // Keine Ahnung ;-)
start: boolean = true; // Erster Durchlauf?
help: Integer; // Zähler, besser anders benennen
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if start
then
begin
// Startwerte setzen
start := False;
Inc(level);
help := level + 3;
DoFirst := True;
end;
// Panels einfärben
if DoFirst
then
case Random(4)
of
0: panel7.Color:=clRed;
1: panel4.Color:=clLime;
2: panel5.Color:=clYellow;
3: panel6.Color:=clBlue;
end
else
begin
panel4.Color := clGreen;
panel5.Color := clOlive;
panel6.Color := clNavy;
panel7.Color := clMaroon;
// Help vermindern
Dec(help);
end;
// Zwischen den beiden Möglichkeiten wechseln
DoFirst :=
not DoFirst;
// Fertig -> Timer aus
if (help = 0)
then
Timer1.Enabled := False;
end;
Gruß
xaromz