Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#9

Re: farbige Zellen im Stringgrid

  Alt 28. Mär 2004, 16:33
Als ich Raiks Code gesehen hatte, hatte ich mich schon geärgert, dass ich immer per FillRect oder TextRect die Zelle überzeichne.
Nachdem ich es gerade getestet habe, musste ich feststellen, dass das so nicht geht.
Ist ja auch klar -> OnDrawCell wird NACH dem Zeichnen aufgerufen, nicht davor (wie bei ListBoxes, etc)
Zum Beispiel zeichnet der folgende Code die Zeilen abwechselnd weiß und hellgrau (ParentColor des Grids kann also auf true stehen):
Delphi-Quellcode:
With Sender As TStringGrid Do
Begin
  If aRow < FixedRows Then Exit;
  If aCol < FixedCols Then Exit;
  With Canvas Do
  Begin
    // wenn Zelle ausgewählt...
    If gdSelected In State Then
      Brush.Color := $00EFD3C6
    // sonst ...
    Else If aRow Mod 2 = 0 Then
      Brush.Color := $00EFEFEF
    Else
      Brush.Color := clWhite;

    // Zeichne den Text mit dem veränderten Hintergrund
    TextRect(Rect, Rect.Left + 2, Rect.Top + 2, Cells[aCol, aRow]);
  End;
End;
  Mit Zitat antworten Zitat