Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Zur Laufzeit Bild in einem Stringgrid Ändern

  Alt 30. Mai 2006, 19:50
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
  Mit Zitat antworten Zitat