Hallo,
das Ereignis OnDraw
Cell wird automatisch ausgelöst, wenn eine Zelle neu gezeichnet werden muss, wobei das Ereignis für
jede Zelle einzeln ausgelöst wird. Schreibst Du Code für die Behandlung des OnDraw
Cell-Ereignisses musst Du das immer beachten.
Die Parameter ACol und ARow liefern Dir die aktuell zu zeichnende Adresse, im Parameter Rect sind die Koordinaten der Zelle enthalten. Möchtest Du nun auf Grund von Zellinhalten einfärben ist die Bedingung
relativ zur aktuell zu zeichnende Zelle zu stellen.
Wenn ich Dein Beispiel richtig interpretiere soll eine Zelle rot eingefärbt werden, wenn der Inhalt größer als der in der darüberliegenden Zelle ist.
ARow = 0 -> erste Zeile ist fixed.
ARow = 1 -> zweite(erste Wertzeile) Zeile muss nicht beachtet werden.
ARow >= 2 -> dritte Zeile und weitere vergleichen mit Zelle oberhalb
Daraus ergib sich folgender grober Ansatz:
Delphi-Quellcode:
if ARow >= 2 then
if StrToFloat(Grid.Cells[ACol,ARow]) > StrToFloat(Grid.Cells[ACol,ARow -1]) then
begin
//Farbe setzen
//Zelle zeichnen
//Text ausgeben
end;