Hallo bestzeller,
um bei Deinem Projekt zu bleiben:
Legt doch zwei Globale Variablen an...
Delphi-Quellcode:
Karte1: TKarte = nil;
Karte2: TKarte = nil;
Beim Klicken prüfst Du dann:
Delphi-Quellcode:
if Karte1 = nil then
Karte1 := Self
else
if Karte2 = nil then
Karte2 := Self
else
begin
if Karte1.BildIndex = Karte2.BildIndex then // BildIndex musst Du natürlich definieren
begin
showmessage('Treffer!');
EvtlPunkteVergeben;
EvtlBeideKartenUnsichtbarMachen;
end
else
begin
showmessage('mööööp!');
EvtlPunkteAbziehen;
BeideKartenWiederUmdrehenUndaufNilZurücksetzen; // Karte1 := nil;
end
...
Dann braucht der Nutzer auch nicht extra einen Schalter drücken. Wird das zweite Bild angeklickt, erkennt das Dein Programm und kann auf Gleichheit prüfen.
Karte1 und Karte2 wird wieder auf nil gesetzt und das Spiel beginnt von neuem.
Trefferkarten würde ich nicht freigeben, da Du dann auch die Liste anpassen musst. Unsichtbar machen reicht ja völlig aus. Die Freigabe aus dem Speicher sollte zum Programmende erfolgen...
stahli