AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

dbgrid zeile einfärben ?

Ein Thema von agm65 · begonnen am 7. Mai 2007 · letzter Beitrag vom 8. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#1

dbgrid zeile einfärben ?

  Alt 7. Mai 2007, 11:16
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 = 'createdthen
    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 !
euer Peter Porka
  Mit Zitat antworten Zitat
Udontknow

Registriert seit: 17. Jun 2002
223 Beiträge
 
#2

Re: dbgrid zeile einfärben ?

  Alt 7. Mai 2007, 11:28
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
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#3

Re: dbgrid zeile einfärben ?

  Alt 7. Mai 2007, 11:30
haben sie vll code dazu ?
euer Peter Porka
  Mit Zitat antworten Zitat
Udontknow

Registriert seit: 17. Jun 2002
223 Beiträge
 
#4

Re: dbgrid zeile einfärben ?

  Alt 7. Mai 2007, 12:13
Hier der Code :

Delphi-Quellcode:
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;
Cu,
Udontknow
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#5

Re: dbgrid zeile einfärben ?

  Alt 7. Mai 2007, 12:44
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 = 'createdthen
    if (Column.Field.Text = '04.05.2007 20:01:19') then
euer Peter Porka
  Mit Zitat antworten Zitat
Udontknow

Registriert seit: 17. Jun 2002
223 Beiträge
 
#6

Re: dbgrid zeile einfärben ?

  Alt 7. Mai 2007, 13:06
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:
  if Dataset.FieldByName('created').asString='04.05.2007 20:01:19') then
    cl:=$FFFF00;
Cu,
Udontknow
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#7

Re: dbgrid zeile einfärben ?

  Alt 7. Mai 2007, 13:36
weder das dataset vom query noch vom datasource lässt sich verwenden ich bekomme immer ...feld nicht gefunden ?
euer Peter Porka
  Mit Zitat antworten Zitat
Udontknow

Registriert seit: 17. Jun 2002
223 Beiträge
 
#8

Re: dbgrid zeile einfärben ?

  Alt 7. Mai 2007, 14:19
Zitat von agm65:
weder das dataset vom query noch vom datasource lässt sich verwenden ich bekomme immer ...feld nicht gefunden ?
Was heisst nun Dataset von Query? Schreib es mal mit "TDBGrid(Sender).Datasource.Dataset.FieldByName".. .

Cu,
Udontknow
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: dbgrid zeile einfärben ?

  Alt 7. Mai 2007, 15:16
Heist das Feld der Datenbanktabelle auch wirklich so?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#10

Re: dbgrid zeile einfärben ?

  Alt 7. Mai 2007, 15:24
strange , gleicher fehler ! field not found

ja, habs 3 mal geprüft und das hier geht ja auch:
Delphi-Quellcode:
  if Column.FieldName = 'createdthen
    if (Column.Field.Text = '04.05.2007 20:01:19') then
    begin
      DBGridMain.Canvas.Brush.Color := clLime;
      DBGridMain.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;
euer Peter Porka
  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 06:36 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