Einzelnen Beitrag anzeigen

Juggy D

Registriert seit: 18. Okt 2007
29 Beiträge
 
#25

Re: Panel Spiel => Panel automatisch erzeugen?

  Alt 20. Okt 2007, 00:08
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;
  Mit Zitat antworten Zitat