![]() |
Memory - problem beim aufdecken
Hallo
Ich habe versucht ein kleines Memonrs zu programmieren es funktioniert auch alles bis auf diese eine sache und ich weiß ned warum Turns ist eine lokale variable und ich setzte sie auf null wenn ich das spiele starte.
Delphi-Quellcode:
und zwar tritt der fehler immer auf nach dem ich das zweite angeklickt habe
procedure TMemoryfeld.aufdeckenOnClick(Sender:TObject);
var pic1_turned, pic2_turned :integer; BildNummer : integer; begin //Array (TImage) Bild = Bilder auf der Fläche (insgesamt 24) //Array (Integer) Bilder = Name des sich darunterbefindenden Bildes (bild 1.JPG - 12. JPG) //Bildernummer des angeklickten Bildes BildNummer := (Sender as TImage).Tag; //angeklicktes Bild aufdecken Bild[BildNummer].Picture.LoadFromFile(inttostr(bilder[BildNummer])+'.JPG'); bild[bildnummer].Enabled := false; //Anzahl umgedrehte Bilder turns := turns + 1; turns_anz.caption := inttostr(turns); {ausgabe zum test} //Erstes Bild if turns = 1 then begin pic1_turned := BildNummer; pic1.Caption := inttostr( Bildnummer ); {ausgabe zum test} end; //Zweites bild if turns = 2 then begin pic2_turned := BildNummer; pic2.Caption := inttostr( Bildnummer ); {ausgabe zum test} // bilder sind die gleichen if bilder[pic1_turned] = bilder[pic2_turned] then {<-- Fehler an der stelle} begin bild[pic1_turned].Visible := false; bild[pic2_turned].Visible := false; turns := 0; end; //bilder sind unterschiedlich if bilder[pic1_turned] <> bilder[pic2_turned] then begin bild[pic1_turned].Picture.LoadFromFile('back.JPG'); bild[pic1_turned].Enabled := true; bild[pic2_turned].Picture.LoadFromFile('back.JPG'); bild[pic2_turned].Enabled := true; turns := 0; end; end; end; [Warnung] Spielfeld.pas(171): Variable 'pic1_turned' ist möglicherweise nicht initialisiert worden dann kann ich bilder aufdecken solange ich will und es passiert nichts mehr geht mir mal bitte nen tipp oder programmiere ich das zu umständlich? Kuss Tigermoon |
Re: Memory - problem beim aufdecken
pic1_turned und pic2_turned ebenfalls als Lokale Variable deklarieren dann geht´s
|
Re: Memory - problem beim aufdecken
Hast du recht danke
und warum? wenn ich fragen darf.... |
Re: Memory - problem beim aufdecken
bei turn = 1 wird pic1_turned initialisiert
ist turn = 2 geht die initialisierung verloren, da die variable pic1_turned prozedural ist !! |
Re: Memory - problem beim aufdecken
Jetzt wo du es sagst
da wäre ich nie drauf gekommen :) |
Re: Memory - problem beim aufdecken
Zitat:
|
Re: Memory - problem beim aufdecken
ja sorry
hatte es aber verstanden was er meinte habe ein neues problem mein programm friet ein bevor das bild aufgedeckt wird hab eine pause von 1 sek drin warum? ich mache die pause damit man das zweite bild sieht (in meinem fall ehr sehen sollte)
Delphi-Quellcode:
procedure TMemoryfeld.aufdeckenOnClick(Sender:TObject);
var BildNummer : integer; begin //Array (TImage) Bild = Bilder auf der Fläche (insgesamt 24) //Array (Integer) Bilder = Name des sich darunterbefindenden Bildes (bild 1.JPG - 12. JPG) //Bildernummer des angeklickten Bildes BildNummer := (Sender as TImage).Tag; //angeklicktes Bild aufdecken Bild[BildNummer].Picture.LoadFromFile(inttostr(bilder[BildNummer])+'.JPG'); bild[bildnummer].Enabled := false; //Anzahl umgedrehte Bilder turns := turns + 1; //turns_anz.caption := inttostr(turns); {ausgabe zum test} //Erstes Bild if turns = 1 then begin pic1_turned := BildNummer; //pic1.Caption := inttostr( Bildnummer ); {ausgabe zum test} end; //Zweites bild if turns = 2 then begin pic2_turned := BildNummer; //pic2.Caption := inttostr( Bildnummer ); {ausgabe zum test} sleep(1000); <<--- hier // bilder sind die gleichen if bilder[pic1_turned] = bilder[pic2_turned] then begin bild[pic1_turned].Visible := false; bild[pic2_turned].Visible := false; turns := 0; end; //bilder sind unterschiedlich if bilder[pic1_turned] <> bilder[pic2_turned] then begin bild[pic1_turned].Picture.LoadFromFile('back.JPG'); bild[pic1_turned].Enabled := true; bild[pic2_turned].Picture.LoadFromFile('back.JPG'); bild[pic2_turned].Enabled := true; turns := 0; end; end; end; |
Re: Memory - problem beim aufdecken
Zitat:
Ich schließe dann mal hier. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:38 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