Hallo zusammen,
ich möchte in meinem DBGrid die Zeilen farblich machen, welche alle das Datum der selektierten Zeile beinhalten.
So habe ich es versucht:
Hier wird das Datum der selektierten Zeile in eine Globale Variabel geschrieben:
Delphi-Quellcode:
procedure TDM_Query_UP.DS1DataChange(Sender: TObject; Field: TField);
begin
Arbeitsplan_Datum_Selektiert := '';
if DM_Query_UP.Query1.isempty then exit;
Arbeitsplan_Datum_Selektiert := datetostr(DM_Query_UP.Query1['DATUM']);
end;
Hier wird dann das ganze farblich gemacht:
Delphi-Quellcode:
procedure TForm1.DBG1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if DM_Query_UP.Query1.isempty then exit;
DBG1.Canvas.Brush.Color := clGradientInactiveCaption;
DBG1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
if (datetostr(DM_Query_UP.Query1['DATUM']) = Arbeitsplan_Datum_Selektiert) then
begin
DBG1.Canvas.Brush.Color := clInfoBK;
DBG1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
Wenn ich nun die verschiedenen Zeilen selektiere werden die Zeilen nicht richtig farblich gezeichnet.
Führe ich nach dem selektieren ein Refresh der Query1 durch klappt es.
Wie kann ich nun meinen Code verbessern, das es klappt oder wo könnte ich den Refresh implementieren ?
Gruss
Holger