Hallo alle zusammen,
ich habe ein ähnliches Problem. Beim Programmieren des Memorys habe ich einige Schwierigkeiten, vor allem mit der DrawGrid-Komponente.
Bisher habe ich mit Hilfe von Schleifen jedem meiner 10 Bilder Koordinaten und eine "ID" zugeordnet (das ganze zwei Mal, um Paare zu erzeugen).
Nun möchte ich die Bilder in das DrawGrid laden (jede der 20 Zellen soll am Ende ein Bild beinhalten). Allerdings finde ich keine Möglichkeit, die Zellen, ähnlich wie beim StringGrid, einzeln über die Koordinaten anzusprechen.
Ich sitze nun schon ziemlich lange daran und verzweifle langsam. Daher wäre ich über einen rettenden Tipp sehr froh!
Hier mein bisheriger Quelltext:
Code:
var Memory : array [1..4,1..5] of Integer;
Pfad : array [0..9] of String
= ('Bild1.bmp', 'Bild2.bmp', 'Bild3.bmp', 'Bild4.bmp', 'Bild5.bmp', 'Bild6.bmp',
'Bild7.bmp', 'Bild8.bmp', 'Bild9.bmp', 'Bild10.bmp');
Bilder : array [0..9] of TImage;
procedure BilderLaden;
var i : Integer;
begin
for i := 0 to 9 do
begin
Bilder[i] := TImage.Create(nil);
Bilder[i].Picture.LoadFromFile(Pfad[i])
end
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DrawGrid1.ColCount:=5;
DrawGrid1.RowCount:=4;
DrawGrid1.FixedCols:=0;
DrawGrid1.FixedRows:=0;
end;
procedure PaareFinden;
var i,x,y,Zaehler : Integer;
begin
i:=1;
Randomize;
while i<=10 do
begin
Zaehler:=0;
while Zaehler < 3 do
begin
x:=Random(5)+1;
y:=Random(4)+1;
if Memory[x,y]=0 then
begin
Memory[x,y]:=i;
Zaehler:=Zaehler+1
end;
end;
i:=i+1;
end;
end;
procedure KartenZuordnen; // und ab hier wird es problematisch..
var i : Integer;
Memory : array [1..4,1..5] of Integer;
begin
PaareFinden;
for i:= 1 to 10 do
Memory[i]:=(DrawGrid1.Cells[x,y]); // in Anlehnung an das StringGrid
end;
end.