z.b. für den fall das das icon für einen Status steht, schreibst du den statuswert beim einlesen der Daten in das Objectsfeld (Stringgrid1.objects[0,row]). die Bitmaps erzeugst du am besten im formcreate (im formdestroy gibst du sie wieder frei). im OnDrawCell prüfst den Objects-wert auf deine werte und malst dementsprechend das Bitmap.
so in etwa stell ich mir die OnDrawCell-Methode vor:
Delphi-Quellcode:
Stringgrid1.Canvas.Fillrect(rect);
if col=0 then //nur erste spalte mit bitmap füllen
begin
case Integer(Objects[0,row]) of //das Objects-Feld auswerten, was beim einlesen auf den status gesetzt wurde
1:stringgrid1.Canvas.Draw(rect.left,rect.top,bmp1); //hier halt das passende bitmap malen
2:stringgrid1.Canvas.Draw(rect.left,rect.top,bmp2);
...
end;
end else
begin //bei den anderen nur den text hinpinseln
Stringgrid1.Canvas.Textout(rect.left+4,rect.top+2,Cells[col,row]);
end;
HTH Frank