![]() |
Delphi-Version: 2006
DBGrid -> Zeilenkopf farblich ändern
Hallo zusammen,
ich weiß zwar wie man in einem DBGrid den Titel einer Spalte farblich ändert, aber wie geht das bei dem Zeilenkopf bzw. Zeilentitel ? So habe ich es bei dem Titel gelöst:
Delphi-Quellcode:
Gruss
DBGrid1.Columns[0].Title.Color := clsilver;
Holger |
AW: DBGrid -> Zeilenkopf farblich ändern
Was ist mit Zeilenkopf gemeint, die Zellen einer fixierten Spalte?
Die Hintergrundfarbe für alle fixierten Zeilen und Spalten mit DBGrid.FixedColor. Ansonsten hilft für individuelle Einfärbung nur selber zeichnen. |
AW: DBGrid -> Zeilenkopf farblich ändern
Wie kann ich denn diese "fixierte Farbe" für die eine spezielle Zeile ändern ?
Mit DBGrid.FixedColor kann man ja nur die Farbe ALLER fixierten Zeilen und Spalten ändern. Gruss Holger |
AW: DBGrid -> Zeilenkopf farblich ändern
Zitat:
|
AW: DBGrid -> Zeilenkopf farblich ändern
Zitat:
|
AW: DBGrid -> Zeilenkopf farblich ändern
Hallo,
habe so angefangen:
Delphi-Quellcode:
So ändere ich die Farbe in einer Zelle, nur wie mache ich das mit der fixierten Zelle ganz links ?
procedure TFOrm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if (DataModule1.Query1['PLANUNGSTERMIN'] < Date) AND (Column.FieldName = 'PLANUNGSTERMIN') then begin DBGrid1.Canvas.Brush.Color := clyellow; DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; end; |
AW: DBGrid -> Zeilenkopf farblich ändern
Lösung:
Delphi-Quellcode:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var MyRect :TRect; begin if (DataModule1.Query1['PLANUNGSTERMIN'] < Date) then begin MyRect := Rect; DBGrid1.Canvas.Brush.Color := clred; DBGrid1.Canvas.Font.Color := clred; MyRect.Left := 1; MyRect.Right := 10; DBGrid1.DefaultDrawColumnCell(MyRect, DataCol, Column, State); end; end; |
AW: DBGrid -> Zeilenkopf farblich ändern
Zitat:
Der Event wird für jede Zelle im Grid aufgerufen, zeichnet aber immer nur zwischen Pixel 1 und 10 (macht also für jede Spalte immer wieder das gleiche, solange die Bedingung in der Zeile zutrifft), was übrigens spätestens bei geänderten Metriken für die FixedColumn zu einem Problem werden kann. Leider gibt es keinen Event, der aufgerufen wird, wenn die FixedColumn gezeichnet wird. Insofern ist es schon ein akzeptabler WorkAround, den Event einer anderen Spalte heranzuziehen - die Betonung liegt aber da auf eine. Die Breite der Indicator-Spalte steht übrigens in ColWidth[0]. Bei Brush.Color = clRed und Font.Color = clRed kann man auch gleich ein FillRect nehmen. Eventuell muss man das Rect dann vorher um 1 Pixel schrumpfen, um die Gitterlinien nicht zu übermalen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:29 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