AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Prism Panel Spiel => Panel automatisch erzeugen?
Thema durchsuchen
Ansicht
Themen-Optionen

Panel Spiel => Panel automatisch erzeugen?

Ein Thema von Juggy D · begonnen am 18. Okt 2007 · letzter Beitrag vom 27. Okt 2007
Antwort Antwort
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#1

Re: Panel Spiel => Panel automatisch erzeugen?

  Alt 21. Okt 2007, 14:19
hast du bemerkt, dass deine If-Abfrage in der For-Schleife steckt?
glaube das sollte nicht so sein, aber mit richtiger Einrückung würde man das sehen .
ansonsten 3 Fragen:
- wie wird Zaehler initialisiert
- werden vorher panels erstellt (außerhalb vom timer)
- hast du mit dem debugger schon 10 in der variable gesehen?

denn: mit jedem erstellten panel wird der Zähler dekrementiert (geht übrigends mit dec(zaehler) kürzer). selbst wenn du alle panels wegklickst wirst du so nie 10 Punkte erreichen, da diese 10 punkte vorher schon vom Zähler abgezogen wurden.

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; //for
end;
HTH Frank
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz