AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Text im DBgrid einfärben
Thema durchsuchen
Ansicht
Themen-Optionen

Text im DBgrid einfärben

Ein Thema von barnti · begonnen am 9. Mär 2004 · letzter Beitrag vom 12. Mär 2004
Antwort Antwort
Seite 1 von 2  1 2      
barnti

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

Text im DBgrid einfärben

  Alt 9. Mär 2004, 11:10
Hallo,

zu diesem Thema habe ich im Forum keine Hilfe gefunden. Deshalb wende ich mich jetzt an die Gemeinschaft:

Ich kontrolliere in meinem Grid zwei nebeneinanderliegende Felder. Sind die enthaltenen Werte unterschiedlich, möchte ich den Text des einen Feldes mit einer Farbe hervorheben.

Wie kann ich die Farbe eines bestimmten Feldinhaltes ändern?

Danke &
Gruß,

Barnti
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Text im DBgrid einfärben

  Alt 9. Mär 2004, 11:17
Zitat von barnti:
...zu diesem Thema habe ich im Forum keine Hilfe gefunden.
Hai barnti,

Hier im Forum suchendbgrid AND färben
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
barnti

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

Re: Text im DBgrid einfärben

  Alt 9. Mär 2004, 11:26
Hai sharky,

ich möchte weder das 'OnDrawColumnCell'-Ereignis strapazieren noch ein Feld oder eine Reihe einfärben.
Ich würde bevorzugen mein Problem im 'OnCalculateField'-Ereignis abzuhandeln. Dort liegt mir das aktuelle Feld vor und ich muss 'nur' die Textfarbe abändern...?!

Noch andere Vorschläge?

Danke &
Gruß,

Barnti
  Mit Zitat antworten Zitat
Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
264 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Text im DBgrid einfärben

  Alt 9. Mär 2004, 11:55
Hi,

nach meiner Meinung ist es die einzige Möglichkeit beim Zeichnen des Grids also in 'OnDrawColumnCell' die Farbe einer Zelle abzuändern ausser du benutzt nicht TDBGrid sondern z.B. TGXDBGrid (von GExperts) dann gibt es u.a. dieses Ereignis:

Delphi-Quellcode:
procedure TFKunEdit.KAGBrowCalcColors(Sender: TObject; Brush: TBrush;
  Font: TFont; Column: TColumn; DataCol, DataRow: Integer;
  State: TGridDrawState);
begin
   if KAGStat.GL('JAHR')= 0 then Brush.Color := clMoneyGreen
   else
      if KAGStat.GL('MONAT')= 0 then Brush.Color := clSkyBlue
      else
          if KAGStat.GL('ARTGRUPPE')= 0 then Brush.Color := clCream;
end;
Einen Link habe ich nicht da das DBGrid nicht mehr von GExperts gepflegt wird sondern zwischenzeitlich von jemand anderen übernommen worden ist der es aber auch nicht mehr macht. Ich kann dir aber gerne meine für Delphi 7 geeignete und leicht verbesserte Version geben.

Grüße

Frank
Frank
  Mit Zitat antworten Zitat
barnti

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

Re: Text im DBgrid einfärben

  Alt 9. Mär 2004, 11:59
Hi Frank,

das habe ich beinahe vermutet, dass das nur über diese Ereignisse funktioniert. Ist echt unbequem, da es viel Performance kostet.

Gerne schaue ich mal auf die von Dir vorgeschagene Kompo. Gibts denn eine Doku?

Danke und
Gruß,

Barnti
  Mit Zitat antworten Zitat
Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
264 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Text im DBgrid einfärben

  Alt 9. Mär 2004, 12:12
Nein eine Doku habe ich leider nicht aber das ist eigentlich selbst erklärend. Für Fragen stehe ich aber gerne zur Verfügung.

Gruß

Frank
Angehängte Dateien
Dateityp: zip gxdbgrid.zip (239,3 KB, 31x aufgerufen)
Frank
  Mit Zitat antworten Zitat
barnti

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

Re: Text im DBgrid einfärben

  Alt 9. Mär 2004, 12:14
Hi,

danke Dir. Ich werde bei Gelegenheit mal reinschauen. Zur Zeit bin ich leider indisponiert...
Gruß,

Barnti
  Mit Zitat antworten Zitat
barnti

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

Re: Text im DBgrid einfärben

  Alt 9. Mär 2004, 12:57
Hi,
der Vollständigkeit halber:

Delphi-Quellcode:
      
procedure TForm_Main.DBGrid_MasterDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);

var Grid: TDBGrid;

begin
  Grid:= TDBGrid(Sender);

if 'Bedingung zum Ändern der Schriftfarbethen
  begin
    Grid.Canvas.Font.Color:= clRed; // Text des akt. Feldes
    Grid.Canvas.TextRect(Rect,Rect.Left +2, Rect.Top +2,Column.Field.AsString);
  end
Gefunden hier
Gruß,

Barnti
  Mit Zitat antworten Zitat
Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
264 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Text im DBgrid einfärben

  Alt 9. Mär 2004, 17:20
???? Ich hatte gedacht Du wolltest DrawColumnCell nicht bemühen ? Oder ging es Grid.Canvas.Font.Color ? Ansonsten ist das der Standardweg den du da beschreibst.

Delphi-Quellcode:
procedure TForm_Main.DBGrid_MasterDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);

var Grid: TDBGrid;

begin
  Grid:= TDBGrid(Sender);

if 'Bedingung zum Ändern der Schriftfarbethen
  begin
    Grid.Canvas.Font.Color:= clRed; // Text des akt. Feldes
    Grid.Canvas.TextRect(Rect,Rect.Left +2, Rect.Top +2,Column.Field.AsString);
  end
Gruß

Frank
Frank
  Mit Zitat antworten Zitat
barnti

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

Re: Text im DBgrid einfärben

  Alt 9. Mär 2004, 19:18
Hi Frank,

da hast Du vollkommen Recht. Ich habe bisher keine andere Möglichkeit gefunden. Außer die von Dir angesprochene Komponente.
Da ich das OnDrawColumnCell so weit wie möglich eingeschränkt und den Code kurz gehalten habe, kann ich damit leben.
Gruß,

Barnti
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:45 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