AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DBGrid Farbe Markierung
Thema durchsuchen
Ansicht
Themen-Optionen

DBGrid Farbe Markierung

Ein Thema von Lupster · begonnen am 1. Apr 2004 · letzter Beitrag vom 2. Apr 2004
Antwort Antwort
Lupster

Registriert seit: 27. Feb 2004
Ort: Reutlingen
24 Beiträge
 
Delphi 5 Enterprise
 
#1

DBGrid Farbe Markierung

  Alt 1. Apr 2004, 16:05
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!

http://lupster.de/1.gif

http://lupster.de/2.gif
  Mit Zitat antworten Zitat
barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: DBGrid Farbe Markierung

  Alt 1. Apr 2004, 16:10
Hi,

für die Anpassung der Darstellung der 'Grid.cells', schreibe eine Behandlungsroutine für das OnDrawColumnCell...
Delphi-Quellcode:
...
if 'Bedingung zum Ändern der Schriftfarbethen
        Grid.Canvas.Font.Color:= clRed;
...
Hoffe, das hilft?!
Gruß,

Barnti
  Mit Zitat antworten Zitat
Nightfly

Registriert seit: 25. Mär 2004
Ort: Dresden
118 Beiträge
 
#3

Re: DBGrid Farbe Markierung

  Alt 1. Apr 2004, 16:50
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.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: DBGrid Farbe Markierung

  Alt 1. Apr 2004, 17:41
Eine Hilfsfunktion errechtet die Kontrastfarbe zum Hintergrund:
Delphi-Quellcode:
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;
Und damit:
Grid.Canvas.Font.Color:= BlackWhiteContrastColor(Grid.Canvas.Color);
Andreas
  Mit Zitat antworten Zitat
Lupster

Registriert seit: 27. Feb 2004
Ort: Reutlingen
24 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: DBGrid Farbe Markierung

  Alt 2. Apr 2004, 10:25
besten dank euch allen!

gruss
lupster
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz