Hallo.
Ich habe ein DBGrid, in welchem ich eine Spalte je nach Wert einfärben möchte.
Ich habe dazu folgende Prozedur (erstmal nur zum testen das sich etwas tut) angelegt:
Delphi-Quellcode:
procedure TfMain.DBGrid_ProgrammDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if Column.FieldName=ZQuery_ProgrammISTOK.FieldName then
begin
if Column.Field.AsString='ja' then Canvas.Pen.Color:=clGreen
else Canvas.Pen.Color:=clRed;
Canvas.Pen.Style:=psSolid;
Canvas.Rectangle(Rect); // Rechteck, nur Außenlinlien?
Canvas.FillRect(Rect); // Versuch 2, gefülltes Rechteck
Canvas.Brush.Color:=clBlack;
Canvas.Pen.Color:=clBlack;
Canvas.TextOut(Rect.Left+1,Rect.Top+1,Column.Field.AsString);
end
else DBGrid_Programm.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
Habe nun schon einiges probiert. Die anderen Zellen werden alle angezeigt. Aber die, wo sich was verändern soll, bleibt einfach weiß. Was mache ich falsch? Sieht noch jemand einen Fehler?