OnDrawCell ti vraci primo rect pro vykreslovani a bunku, kterou vykreslujes.
Pises, ze texty vykreslovat umis, takze s tim problem neni.
Podobne veci se delaji opravdu pres ImageList. Takze obrazek misto toho, abys jej dal do TImage dej do ImageList ve velikosti, v jake jej chces vykreslovat. Predpokladejme, ze tam mas jen jeden obrazek.
Znovu opakuju, ze OnDrawcell ti vraci souradnice bunky ACol a ARow a ty musis vykreslovat jen prislusnou bunku!
Pak by to mohlo vypadat nejak takto (je to z hlavy, takze se omlouvam za pripadne chyby):
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
with TStringGrid(Sender) do
begin
Canvas.Brush.Color := clWindow;
Canvas.FillRect(Rect);
if (ACol=0) then
begin
if (StringGrid1.Cells[2, ARow]='1') then
ImageList.1.Draw(Canvas, Rect, 0);
end
else
Canvas.TextOut(Rect.Left+1, Rect.Top+1, Cells[ACol, ARow]);
end;
end;