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:
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;
und zwar tritt der fehler immer auf nach dem ich das zweite angeklickt habe
[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