Einzelnen Beitrag anzeigen

Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#16

Re: nochmals StringGridDrawcell

  Alt 28. Aug 2009, 16:21
Hallo,

das Ereignis OnDrawCell 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 OnDrawCell-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;
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat