Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Feld in Stringgrid färben (https://www.delphipraxis.net/112103-feld-stringgrid-faerben.html)

5etH 15. Apr 2008 11:29

Re: Feld in Stringgrid färben
 
okay super danke nachdem ich es leich umgeschrieben hatte funktioniert es .. nur kann ich den inhalt des textes nichtmehr lesen wenn er es färbt -.-" ... wie kann ich das ändern ?

Klaus01 15. Apr 2008 12:06

Re: Feld in Stringgrid färben
 
Du musst den Text mit TextOut nochmal neuzeichnen.

Grüße
Klaus

5etH 15. Apr 2008 12:49

Re: Feld in Stringgrid färben
 
also habe das nun so gelöst aber der text ist immernoch nicht sichtbar hab ich vill den rückgabewert oder sowas vergessen ?
Delphi-Quellcode:
procedure TKndT.StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;
   Rect: TRect; State: TGridDrawState);
  var i : Integer;
      w : extended;
      s : string;
  begin
    s := ( sender as TStringGrid).Cells[ ACol, ARow];
    if TryStrToFloat( s , w) then
    if w >= 200 then
        begin
         ( sender as TStringGrid).Canvas.Brush.Color := clred;
         ( sender as TStringGrid).canvas.TextOut(Acol,Arow, stringgrid1.cells[Acol,Arow]);        
         ( sender as TStringGrid).Canvas.FillRect(Rect);
         
        end;

end;
schonmal vielen Dank
euer Manu

mkinzler 15. Apr 2008 12:51

Re: Feld in Stringgrid färben
 
Delphi-Quellcode:
( sender as TStringGrid).TextOut(Acol,Arow, ( sender as TStringGrid).cells[Acol,Arow]);

5etH 15. Apr 2008 12:52

Re: Feld in Stringgrid färben
 
geht so auch nicht

Delphi-Quellcode:
    if TryStrToFloat( s , w) then
    if w >= 200 then
        begin
         ( sender as TStringGrid).Canvas.Brush.Color := clred;

         ( sender as TStringGrid).Canvas.FillRect(Rect);

         ( sender as TStringGrid).canvas.TextOut(Acol,Arow, ( sender as TStringGrid).cells[Acol,Arow]);

        end;

mkinzler 15. Apr 2008 12:56

Re: Feld in Stringgrid färben
 
Setzt mal explizit die gewünschte Textfarbe

Klaus01 15. Apr 2008 12:58

Re: Feld in Stringgrid färben
 
Versuche es einmal so:

Delphi-Quellcode:
procedure TKndT.StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;
   Rect: TRect; State: TGridDrawState);
  var i : Integer;
      w : extended;
      s : string;
  begin
    s := ( sender as TStringGrid).Cells[ ACol, ARow];
    if TryStrToFloat( s , w) then
    if w >= 200 then
        begin
         ( sender as TStringGrid).Canvas.Brush.Color := clred;
         ( sender as TStringGrid).Canvas.FillRect(Rect);         // erst füllen
         ( sender as TStringGrid).Canvas.Brush.Color := clblack; // wie mkinzler schreibt
         ( sender as TStringGrid).canvas.TextOut(Acol,Arow,s);   // dann reinschreiben
         
        end;

end;
Grüße
Klaus

mkinzler 15. Apr 2008 13:01

Re: Feld in Stringgrid färben
 
Ich meinte egentlich
Delphi-Quellcode:
( sender as TStringGrid).Canvas.Font.Color := clBlack;

5etH 15. Apr 2008 13:03

Re: Feld in Stringgrid färben
 
hmm nein leider auch nicht :( :?:

mkinzler 15. Apr 2008 13:06

Re: Feld in Stringgrid färben
 
Acol und Arow sind auch nur die Indizes für die Zellen und nicht deren Position!


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:20 Uhr.
Seite 2 von 3     12 3      

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