Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi in StringGrid Keine Einträge mehr nach Färben von Zellen (https://www.delphipraxis.net/53345-stringgrid-keine-eintraege-mehr-nach-faerben-von-zellen.html)

EccoBravo 14. Sep 2005 15:37


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:
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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.

EccoBravo 14. Sep 2005 16:18

Re: in StringGrid Keine Einträge mehr nach Färben von Zellen
 
habe eben in Frage Code eingefügt

Gruß

E. B.

marabu 14. Sep 2005 17:09

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