Hallo, Habe Problem nach einfärben von Zellen eines StrinGrids über die Funktion OnDrawCell mittels Canvas.
Mein Code siehr wie folgt aus:
Delphi-Quellcode:
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
procedure TF_Haupt.SG_PlanDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
oldColor:TColor;
oldBrush:TBrush;
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
begin
with SG_Plan.Canvas
do
begin
oldColor:=Font.Color;
oldBrush:=Brush;
if (aCol=1)
and (aRow>0)
then
begin
Brush.Color:=
RGB(255,204,153);
FillRect(Rect);
end;
if (aCol=2)
and (aRow>0)
then
begin
Brush.Color:=
RGB(255,255,153);
FillRect(Rect);
end;
if (aCol=3)
and (aRow>0)
then
begin
Brush.Color:=
RGB(204,255,255);
FillRect(Rect);
end;
if (aCol=4)
and (aRow>0)
then
begin
Brush.Color:=
RGB(204,255,153);
FillRect(Rect);
end;
Font.Color:=oldColor;
Brush:=oldBrush;
end;
end;
Habe dabei recht sinderbaren Effekt:
Nach rückgabe der alten Farbe an Font.Color steht darin ein negativer Wert (-16777208)
Wie kriege ich die Einträge in StringGrid nach Einfärben der Zellen wieder zu sehen?
Danke
E. B.