Einzelnen Beitrag anzeigen

leonreiser

Registriert seit: 16. Jul 2015
30 Beiträge
 
Delphi XE8 Professional
 
#1

Kolorierung einer TcxGrid nach Kriterien

  Alt 16. Sep 2015, 18:13
Hallo Leute,

Ich arbeite zurzeit an einer VCL Formularanwendung in der
in einer TcxGrid Datensätze aus einer Datenbank stehen.
Nun wollte ich ,abhängig von der Spalte "Status" die verschiedenen Rows Grün(bei status 1) und Braun(bei status 0)) machen.
Dazu verwende ich dass CustomDrawCell der Grid und überprüfe dann jedesmal wenn eine Cell gezeichnet wird, ob der Status eben 1 oder 0
ist und koloriert sie dann.
Wenn ich die Anwendung dann starte geht auch alles, nur wenn ich mich dann per Hand(z.B.: mit Pfeiltasten) in der Tabelle bewege,
fängt das Programm an falsche Einträge zu markieren.
Jedoch markiert es nicht nur die falschen, sonden nach meiner Beobachtung ziemlich random(insofern dass bei einem Computerprogramm möglich ist ).
Auch wenn ich die Sortierreihnfolge ändert, werden falsche einträge markiert.
hier ist mal der Code:
Delphi-Quellcode:
procedure TFormMain.tvHPSUsersCustomDrawCell(Sender: TcxCustomGridTableView;
  ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
  var ADone: Boolean);
begin
  if tcxGrid1.DataController.GetValue(AViewInfo.RecordViewInfo.Index,tcxGrid1.DataController.GetItemByFieldName('Status').index) = 0 then begin
      ACanvas.Brush.Color := clOlive;
      end else begin
            ACanvas.Brush.Color := clGreen;
  end;
 if AViewInfo.Selected = true then ACanvas.Brush.Color := clSilver;
end;
Ich hoffe ihr könnt mir helfen.

Lg leon
  Mit Zitat antworten Zitat