![]() |
DBGrid Farbe Markierung
Hallo Zusammen,
habe ein kleines, aber für mich unlösbares Problem! Hab ein DBGrid mit unterschiedlichen farbigen Zeilen, je nach Dateninhalt! Markier ich nun einen Datensatz, welcher eine bunten Hintergrund hat, wechselt die Schriftfarbe auf weiss, was bei hellen Hintergründen schwer lesbar ist! Weiss jemand, wie ich die Textfarbe bei dem markierten Datensatz ändern kann bzw. warum bei weissem Hintergrund der markierte Datensatz blau eingefärbt wird sonst aber nicht! ![]() ![]() |
Re: DBGrid Farbe Markierung
Hi,
für die Anpassung der Darstellung der 'Grid.cells', schreibe eine Behandlungsroutine für das OnDrawColumnCell...
Delphi-Quellcode:
Hoffe, das hilft?!
...
if 'Bedingung zum Ändern der Schriftfarbe' then Grid.Canvas.Font.Color:= clRed; ... |
Re: DBGrid Farbe Markierung
if (gdSelected in State) or (gdFocused in State) then exit;
Diese Zeile am anfang in deinem DrawColumnCell ereigniss sorgt dafür,das wenn die Zeile den fokus hat,oder selektiert wird,die Farbe nicht geändert wird. Statt des exit kannst du natürlich auch eigene farben definieren. |
Re: DBGrid Farbe Markierung
Eine Hilfsfunktion errechtet die Kontrastfarbe zum Hintergrund:
Delphi-Quellcode:
Und damit:
function BlackWhiteContrastColor(value: TColor):TColor;
var t : Integer; begin value := ColorToRGB(value); t := GetBValue(value) * 21 // Blue + GetGValue(value) * 174 // Green + GetRValue(value) * 61; // Red if t >= (128*256) then Result := clBlack else Result := clWhite; end; Grid.Canvas.Font.Color:= BlackWhiteContrastColor(Grid.Canvas.Color); |
Re: DBGrid Farbe Markierung
besten dank euch allen!
gruss lupster |
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