![]() |
dbgrid zeile einfärben ?
moin leute...also ich hab das forum durchsucht aber leider nichts gefunden.
ich kann einzelne zellen einfärben und ganze spalten aber keine zeilen.
Delphi-Quellcode:
if Column.FieldName = 'created' then
begin DBGridMain.Canvas.Brush.Color := clLime; DBGridMain.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; wie kann ich jetzt alle felder einer zeile einfärben ? danke euch ! |
Re: dbgrid zeile einfärben ?
Hallo!
Ist das nicht ein Oxymoron? Wenn du einzelne Zellen färben kannst, was hindert dich daran, alle Zellen einer Zeile zu färben? Siehe Ereignis OnDrawColumnCell, dort einfach die Farbe in Abhgängigkeit der Zeile zeichnen (Canvas des DBGrids bemalen, den Parameter Rect nutzen). Cu, Udontknow |
Re: dbgrid zeile einfärben ?
haben sie vll code dazu ?
|
Re: dbgrid zeile einfärben ?
Hier der Code :
Delphi-Quellcode:
Cu,
procedure TFrame_AbgWertpapiere.DBGrid1DrawDataCell(Sender: TObject;
const Rect: TRect; Field: TField; State: TGridDrawState); var Cl:TColor; begin inherited; Cl:=$AAAAFF; if DM.DatasetID.AsInteger MOD 3 = 0 then Cl := $AAFFFF; if DM.DatasetID.AsInteger MOD 2 = 0 then Cl := $AAFFAA; //Hintergrundfarbe TDBGrid(Sender).Canvas.Brush.Color:=Cl; TDBGrid(Sender).Canvas.Brush.Style:=bsSolid; TDBGrid(Sender).Canvas.Pen.Style:=psclear; TDBGrid(Sender).Canvas.FillRect(Rect); //Text (muss separat gezeichnet werden) TDBGrid(Sender).Canvas.Pen.Style:=psSolid; TDBGrid(Sender).Canvas.Pen.Color:=clBlack; TDBGrid(Sender).Canvas.TextRect(Rect,Rect.Left+2,Rect.Top+2,Field.AsString); end; Udontknow |
Re: dbgrid zeile einfärben ?
hey cool, das geht auch jetzt wird alles eingefärbt aber wie kriege ich da hetzt noch meine bedingung rein die mir nur diese eine zeile markiert ?
Delphi-Quellcode:
if Column.FieldName = 'created' then
if (Column.Field.Text = '04.05.2007 20:01:19') then |
Re: dbgrid zeile einfärben ?
Du darfst nicht erst auf die aktuelle Spalte prüfen, sonst läuft er ja für alle anderen Spalten gar nicht erst in die Prüfung des Feldwertes rein!
Delphi-Quellcode:
Cu,
if Dataset.FieldByName('created').asString='04.05.2007 20:01:19') then
cl:=$FFFF00; Udontknow |
Re: dbgrid zeile einfärben ?
weder das dataset vom query noch vom datasource lässt sich verwenden ich bekomme immer ...feld nicht gefunden ?
|
Re: dbgrid zeile einfärben ?
Zitat:
Cu, Udontknow |
Re: dbgrid zeile einfärben ?
Heist das Feld der Datenbanktabelle auch wirklich so?
|
Re: dbgrid zeile einfärben ?
strange , gleicher fehler ! field not found
ja, habs 3 mal geprüft und das hier geht ja auch:
Delphi-Quellcode:
if Column.FieldName = 'created' then
if (Column.Field.Text = '04.05.2007 20:01:19') then begin DBGridMain.Canvas.Brush.Color := clLime; DBGridMain.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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 by Thomas Breitkreuz