Hallo,
ich habe ein Verständnisproblem mit meiner farblichen Gestaltung.
Ich möchte den größten Wert in einer DBGrid Zeile farblich markieren.
Die Zellen werden auch farblich hinterlegt, aber dummerweise immer eine Zeile tiefer als die eigentliche Zeile. Und außerdem flackernmdie Zellen im Grid.
Code:
procedure TNachbestellung.jvdbgrd_GridDrawColumnCell(
Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
I, maxfeld, maxwert: Integer;
str_feld : string ;
begin
IF (Column.Field.FieldName = 'VK_1_MENGE') or
(Column.Field.FieldName = 'VK_2_MENGE') or
(Column.Field.FieldName = 'VK_3_MENGE') or
(Column.Field.FieldName = 'VK_4_MENGE') or
(Column.Field.FieldName = 'VK_5_MENGE') or
(Column.Field.FieldName = 'VK_6_MENGE') then
begin
maxfeld := 0;
maxwert := 0;
// ermitteln des größten Wertes und festhalten in welchem Datenfeld
for I := 1 to 6 do
begin
str_feld := 'VK_'+IntToStr(i)+'_MENGE';
if zqry_Best.fieldbyname(str_feld).asinteger > maxwert then
begin
maxwert := zqry_Best.fieldbyname(str_feld).asinteger;
maxfeld := I;
end;
end;
str_feld := 'VK_'+IntToStr(maxfeld)+'_MENGE' ;
// wenn größtes ermitteltes Datenfeld = dem aktuellen Gridfeld, dann farbig hinterlegen.
if (Column.Field.FieldName = str_feld) then
Column.Color := clred
else
Column.Color := clWindow;
jvdbgrd_Grid.Canvas.fillRect( rect );
jvdbgrd_Grid.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
was mach ich falsch ?