Einzelnen Beitrag anzeigen

Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#6

Re: Grid mit Bild in der Zeile

  Alt 17. Okt 2007, 12:57
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
  Mit Zitat antworten Zitat