ich versuche gerade ein Memory Spiel (4x3 Spielfeld) mit Lazarus (1.0.12) zu programmieren, jedoch komm ich nicht mehr weiter.

Im Moment ist es so, wenn ich ein Button (Spielkarte) anklicke, erscheint ein Wort (Image). Sobald ich ein weiteren Button anklicke, wird der Button wieder angezeigt, der das Wort (Image) dahinter verdeckt.
Wie macht man das, dass wenn man einen Button anklickt ein Wort gezeigt wird und wenn man dann ein weiteren beliebigen Button anklickt, dass dann beide angezeigt werden. Und wenn man dann einen dritten Button anklickt, dass die anderen beiden Buttons wieder das jeweilige Wort (Image) verdecken? Und noch als letztes, wie macht man das, dass wenn man das passende Wortpaar gefunden hat, dass die beiden Wörter dann weiter angezeigt bleiben?
Code: Alles auswählen
unit Unit2;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
Buttons, ExtCtrls;
type
memoryfeld = RECORD
id : INTEGER;
wert : String;
aufgedeckt : Boolean;
END;
{ TForm2 }
TForm2 = class(TForm)
BitBtn1: TBitBtn;
BitBtn10: TBitBtn;
BitBtn11: TBitBtn;
BitBtn12: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
BitBtn9: TBitBtn;
Button1: TButton;
Image1: TImage;
Image10: TImage;
Image11: TImage;
Image12: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Image6: TImage;
Image7: TImage;
Image8: TImage;
Image9: TImage;
procedure BitBtn10Click(Sender: TObject);
procedure BitBtn11Click(Sender: TObject);
procedure BitBtn12Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure BitBtn9Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Image2Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form2: TForm2;
memory: array[1..12] of memoryfeld;
implementation
uses Unit1 ;
{$R *.lfm}
{ TForm2 }
procedure TForm2.Button1Click(Sender: TObject);
begin
form2.hide ;
form1.show ;
end;
procedure TForm2.Image2Click(Sender: TObject);
begin
end;
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
BitBtn1.hide;
Image1.Picture.LoadFromFile('C:\SmkInf\Memorykarten\Anfänger\Image1.bmp');
BitBtn2.show;
BitBtn3.show;
BitBtn4.show;
BitBtn5.show;
BitBtn6.show;
BitBtn7.show;
BitBtn8.show;
BitBtn9.show;
BitBtn10.show;
BitBtn11.show;
BitBtn12.show;
end;
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
BitBtn2.hide;
Image2.Picture.LoadFromFile('C:\SmkInf\Memorykarten\Anfänger\Image11.bmp');
BitBtn1.show;
BitBtn3.show;
BitBtn4.show;
BitBtn5.show;
BitBtn6.show;
BitBtn7.show;
BitBtn8.show;
BitBtn9.show;
BitBtn10.show;
BitBtn11.show;
BitBtn12.show;
end;
procedure TForm2.BitBtn3Click(Sender: TObject);
begin
BitBtn3.hide;
Image3.Picture.LoadFromFile('C:\SmkInf\Memorykarten\Anfänger\Image3.bmp');
BitBtn1.show;
BitBtn2.show;
BitBtn4.show;
BitBtn5.show;
BitBtn6.show;
BitBtn7.show;
BitBtn8.show;
BitBtn9.show;
BitBtn10.show;
BitBtn11.show;
BitBtn12.show;
end;
procedure TForm2.BitBtn4Click(Sender: TObject);
begin
BitBtn4.hide;
Image4.Picture.LoadFromFile('C:\SmkInf\Memorykarten\Anfänger\Image5.bmp');
BitBtn1.show;
BitBtn2.show;
BitBtn3.show;
BitBtn5.show;
BitBtn6.show;
BitBtn7.show;
BitBtn8.show;
BitBtn9.show;
BitBtn10.show;
BitBtn11.show;
BitBtn12.show;
end;
procedure TForm2.BitBtn5Click(Sender: TObject);
begin
BitBtn5.hide;
Image5.Picture.LoadFromFile('C:\SmkInf\Memorykarten\Anfänger\Image4.bmp');
BitBtn1.show;
BitBtn2.show;
BitBtn3.show;
BitBtn4.show;
BitBtn6.show;
BitBtn7.show;
BitBtn8.show;
BitBtn9.show;
BitBtn10.show;
BitBtn11.show;
BitBtn12.show;
end;
procedure TForm2.BitBtn6Click(Sender: TObject);
begin
BitBtn6.hide;
Image6.Picture.LoadFromFile('C:\SmkInf\Memorykarten\Anfänger\Image2.bmp');
BitBtn1.show;
BitBtn2.show;
BitBtn3.show;
BitBtn4.show;
BitBtn5.show;
BitBtn7.show;
BitBtn8.show;
BitBtn9.show;
BitBtn10.show;
BitBtn11.show;
BitBtn12.show;
end;
procedure TForm2.BitBtn7Click(Sender: TObject);
begin
BitBtn7.hide;
Image7.Picture.LoadFromFile('C:\SmkInf\Memorykarten\Anfänger\Image10.bmp');
BitBtn1.show;
BitBtn2.show;
BitBtn3.show;
BitBtn4.show;
BitBtn5.show;
BitBtn6.show;
BitBtn8.show;
BitBtn9.show;
BitBtn10.show;
BitBtn11.show;
BitBtn12.show;
end;
procedure TForm2.BitBtn8Click(Sender: TObject);
begin
BitBtn8.hide;
Image8.Picture.LoadFromFile('C:\SmkInf\Memorykarten\Anfänger\Image6.bmp');
BitBtn1.show;
BitBtn2.show;
BitBtn3.show;
BitBtn4.show;
BitBtn5.show;
BitBtn6.show;
BitBtn7.show;
BitBtn9.show;
BitBtn10.show;
BitBtn11.show;
BitBtn12.show;
end;
procedure TForm2.BitBtn9Click(Sender: TObject);
begin
BitBtn9.hide;
Image9.Picture.LoadFromFile('C:\SmkInf\Memorykarten\Anfänger\Image8.bmp');
BitBtn1.show;
BitBtn2.show;
BitBtn3.show;
BitBtn4.show;
BitBtn5.show;
BitBtn6.show;
BitBtn7.show;
BitBtn8.show;
BitBtn10.show;
BitBtn11.show;
BitBtn12.show;
end;
procedure TForm2.BitBtn10Click(Sender: TObject);
begin
BitBtn10.hide;
Image10.Picture.LoadFromFile('C:\SmkInf\Memorykarten\Anfänger\Image12.bmp');
BitBtn1.show;
BitBtn2.show;
BitBtn3.show;
BitBtn4.show;
BitBtn5.show;
BitBtn6.show;
BitBtn7.show;
BitBtn8.show;
BitBtn9.show;
BitBtn11.show;
BitBtn12.show;
end;
procedure TForm2.BitBtn11Click(Sender: TObject);
begin
BitBtn11.hide;
Image11.Picture.LoadFromFile('C:\SmkInf\Memorykarten\Anfänger\Image7.bmp');
BitBtn1.show;
BitBtn2.show;
BitBtn3.show;
BitBtn4.show;
BitBtn5.show;
BitBtn6.show;
BitBtn7.show;
BitBtn8.show;
BitBtn9.show;
BitBtn10.show;
BitBtn12.show;
end;
procedure TForm2.BitBtn12Click(Sender: TObject);
begin
BitBtn12.hide;
Image12.Picture.LoadFromFile('C:\SmkInf\Memorykarten\Anfänger\Image9.bmp');
BitBtn1.show;
BitBtn2.show;
BitBtn3.show;
BitBtn4.show;
BitBtn5.show;
BitBtn6.show;
BitBtn7.show;
BitBtn8.show;
BitBtn9.show;
BitBtn10.show;
BitBtn11.show;
end;
end.
Ich würde mich sehr über Hilfe freuen.