Einzelnen Beitrag anzeigen

Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#1

DBGrid1DrawColumnCell <> Datumabfrage ?

  Alt 27. Apr 2006, 20:08
Datenbank: Paradox • Version: 7 • Zugriff über: TQuery
hallo,


habe da einen code der wenn in dem tabellenfeld der string "P1" steht, dann wird
in dieser DBGridzeile die schriftfarbe auf rot gesetzt.

Delphi-Quellcode:
procedure TForm2.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
  s : string;
begin
  // die zelle ist markiert und/oder selektiert
  // dann sollen die Standard-Farben verwendet werden (weiß auf navy)
  if (gdSelected in State) or (gdFocused in State) then exit;

  { ansonsten soll die Farbe in Abhängigkeit eines Strings der
    angezeigten Datenbank geändert werden
    Hinweis: die Farben sind hier nur zu Testzwecken ohne Rücksicht
             darauf, ob sie zueinander passen, frei gewählt worden}

  // Variante 1 zum Einlesen des Wertes aus der Datenbank:
  s := uppercase(query1.FieldByName('P').AsString);
  // oder
  // Variante 2
  s := uppercase((dbgrid1.DataSource.DataSet as Tquery).FieldByName('P').AsString);
  // oder
  // Variante 3
  s := uppercase(((Sender as TDBGrid).DataSource.DataSet as Tquery).FieldByName('P').AsString);
  // eine Variante reicht natürlich aus !!!

  if s = 'P1then begin
  // dbgrid1.Canvas.Brush.Color := clBlue;
    dbgrid1.Canvas.Font.Color := $000000DF;
    dbgrid1.Canvas.Font.Style:= [fsBold];
  end
  else if s = 'P2then begin
  // dbgrid1.Canvas.Brush.Color := clRed;
    dbgrid1.Canvas.Font.Color := clblack;
  end;
  // falls weder P1 noch P2, dann bleibt die Zeile wie Standard
  dbgrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

jetzt möchte ich aber das mit einen datum abfragen, habe ein tabellfeld als typ "datum"
und jetzt würde ich gerne wenn das abgespeicherte datum in der tabelle gleich oder
kleiner ist als das systemdatum des pc's das die schriftfarbe dieser DBGridzeile auf rot gesetzt wird !

wie geht das ?

mfg vader
  Mit Zitat antworten Zitat