Noch ein paar Anregungen:
Eventuell ist auch bei euch die Methode InvalidateCell() implementiert?
Die Images würde ich in einer ImageList vorhalten und die Buddies in einer TObjectList:
Delphi-Quellcode:
type
TBuddyStatus = (bsUndefined, bsOffline, bsHidden, bsAbsent, bsOnline);
TBuddy = class
Nick: String;
Status: TBuddyStatus;
end;
procedure TDemoForm.StringGridDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
Buddy: TBuddy;
iLeft, iTop: Integer;
bm: TBitmap;
begin
with Sender as TStringGrid do
begin
Buddy := BuddyList[ARow] as TBuddy;
if ACol = 0 then
begin
iLeft := Rect.Left + 4;
iTop := Rect.Top + 2;
ImageList.GetBitmap(Ord(Buddy.Status), bm);
Canvas.Draw(iLeft, iTop, bm);
end;
end;
end;
Freundliche Grüße vom marabu