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