Hallo,
ist dir bewusst, dass das Ereignis OnDrawCell() für jede Zelle einzeln und genau dann wenn nötig gefeuert wird? Du bekommst in ACol und ARow die Zell-Adresse geliefert und musst daraus ableiten, welches Bild du in der Zelle malen willst. Ich habe einfach mal angenommen, dass du deine Bilder in einem eindimensionalen Array vorhältst - für jede Zelle ein Bild. Bei anderen Bedingungen ist die Methode GetCharacterIndex() entsprechend anzupassen:
Delphi-Quellcode:
function TDemoForm.GetCharacterIndex(iCol, iRow: Integer): Integer;
begin
with DrawGrid do
Result := iRow * ColCount + iCol;
end;
procedure TDemoForm.DrawGridDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
index: Integer;
begin
index := GetCharacterIndex(ACol, ARow);
if index >= 0 then
with Sender as TDrawGrid do
Canvas.StretchDraw(Rect, Wisu[index].Character);
end;
Grüße vom marabu