Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Eigenschaften einer Zelle im DBGrid zur Laufzeit ändern. (https://www.delphipraxis.net/2739-eigenschaften-einer-zelle-im-dbgrid-zur-laufzeit-aendern.html)

Berserker 5. Feb 2003 02:42


Eigenschaften einer Zelle im DBGrid zur Laufzeit ändern.
 
Hallöchen.

Ich wende mich mit einem Problem an euch das ich nicht lösen kann.

Ich habe ein DBGrid mit mehreren Spalten und Zeilen an Datensätzen aus einer Paradox DB.

In der DB ist ein Feld enthalten was sich "STATUS" schimpft.
Diese Feld kann die Werte 0 1 oder 2 enthalten.

Jetzt möchte ich, wenn 0 drinsteht soll der Hintergrund wieder Zelle im Datensatz weiss sein. Bei 1 Rot und bei 2 Blau.

Leider bin ich daran gescheitert.

Danke schonmal für Hilfe.

MfG, Ronny

Sharky 5. Feb 2003 08:16

Re: Eigenschaften einer Zelle im DBGrid zur Laufzeit ändern.
 
Zitat:

Zitat von Berserker
Ich wende mich mit einem Problem an euch das ich nicht lösen kann.

Mal sehen ob es so geht:

Delphi-Quellcode:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
 If (Column.FieldName = 'STATUS') then
  begin
   Case Column.Field.AsInteger of
     0: DBGrid1.Canvas.Brush.Color := clWhite;
     1: DBGrid1.Canvas.Brush.Color := clRed;
     2: DBGrid1.Canvas.Brush.Color := clBlue;
    end;
   end;
 DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
Den Code einfach in das OnDrawColumnCell - Ereigniss deines DBGrid eintragen.

Berserker 5. Feb 2003 08:52

Zelle DBGrid
 
Hallo.

Ich bedanke mich erstmal für die schnelle Antwort.

Es funktioniert tadellos nur einwas wäre noch interessant.

Wenn ich in die Zelle gehe und der wert ist 0 ist der Bg ja weiss.
Leider ist dann auch die schriftfarbe weiss. Komisch.

Kann man auch die Schriftfarbe irgendwie noch definieren?

MfG, Ronny

Sharky 5. Feb 2003 09:01

Re: Zelle DBGrid
 
Zitat:

Zitat von Berserker
Hallo.
Wenn ich in die Zelle gehe und der wert ist 0 ist der Bg ja weiss.
Leider ist dann auch die schriftfarbe weiss. Komisch.
Kann man auch die Schriftfarbe irgendwie noch definieren?

Hai,

hihi... das einfachste ist: lasse die Zeile in der auf STATUS = 0 geprüfrt wird enfach weg.

Aber Du kannst natürlich auch die Schriftfarbe ändern:

Delphi-Quellcode:
If (Column.FieldName = 'STATUS') then
  begin
   Case Column.Field.AsInteger of
     0: begin
          DBGrid1.Canvas.Brush.Color := clWhite;
          DBGrid1.Canvas.Font.Color := clAqua;
         end;
     1: DBGrid1.Canvas.Brush.Color := clRed;
     2: DBGrid1.Canvas.Brush.Color := clBlue;
    end;
   end;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

Berserker 5. Feb 2003 16:56

DBGrid
 
Hallo.

Thx für die Info.

Hab jetzt mit Hilfe des Codes eine Routine geschrieben die 1a funktioniert.

MfG, Ronny


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 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