Okay, brauche wieder eure Hilfe.
Bei dem Spiel sollen auch die Punkte gezählt werden und in einem seperaten Fenster angezeigt werden. Ich hab erstmal das mit dem seperaten fenster wegelassen. Also hab ich in das Hauptfrmular ein Edit Feld eingefügt. Dazu folgenden Code.
Wenn man verloren hat (= Null Punkte) soll die Message kommen "Verloren" und das Spiel soll aufhören neue Panels zu erstellen (break
, das funktioniert auch alles. Nun hab ich mit else if angegeben, dass wenn man 10 Punkte hat, die Message "Gewonnen" erscheinen soll und das Spiel aufhören soll (break
, da tut sich aber nix, auch wenn ich 10 Punkte habe kommt keine Message und das Spiel läuft weiter. Der letzte Teil ist glaub ich am wichtigsten:
Delphi-Quellcode:
procedure TFPanel1.Timer1Timer(Sender: TObject);
var i: integer;
begin
Panel:= TPanel.Create (FPanel1);
Panel.Color:= clYellow;
Panel.Caption:= 'F';
Panel.Width:= 49;
Panel.Height:= 33;
Panel.Left:= Random(ShSpiel.Width-60)+30;
Panel.Top:= Random(ShSpiel.Height-50)+30;
Panel.Parent:= FPanel1;
Panel.OnClick:= PanelWeg;
Zaehler:= Zaehler-1;
for i:=ComponentCount-1 downto 0 do begin
if Components[i] is TPanel then begin
if Panel.Visible= True then begin
TPanel(Components[i]).Left:= Random(ShSpiel.Width-60)+30;
TPanel(Components[i]).Top:= Random(ShSpiel.Height-50)+30;
Edit1.Text:=IntToStr(Zaehler)+' '+'Punkte';
end
else begin
TPanel(Components[i]).Destroy;
end;
end;
if Zaehler = 0 then begin
Timer1.Enabled:=False;
ShowMessage('Verloren');
break;
end
else
if Zaehler = 10 then begin
Timer1.Enabled:=False;
ShowMessage('Gewonnen');
break;
end;
end;
end;