![]() |
in StringGrid Keine Einträge mehr nach Färben von Zellen
Hallo, Habe Problem nach einfärben von Zellen eines StrinGrids über die Funktion OnDrawCell mittels Canvas.
Mein Code siehr wie folgt aus:
Delphi-Quellcode:
Habe dabei recht sinderbaren Effekt:
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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; 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. |
Re: in StringGrid Keine Einträge mehr nach Färben von Zellen
habe eben in Frage Code eingefügt
Gruß E. B. |
Re: in StringGrid Keine Einträge mehr nach Färben von Zellen
Hallo E.B.,
der negative Farbwert ist okay, der ist auch schon vorher da. Du hast zwar mit RGB-Werten operiert, aber die belegen nur die unteren 3 Bytes eines 4-Byte Integers (TColor). Wenn das höchst-wertige Byte $FF ist, dann sind die anderen drei Byte kein RGB-Wert sondern eine Systemfarbe. Und das dein Text nicht ausgegeben wird, das kannst du mit Canvas.TextOut() ändern. Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz