AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DBGrid1DrawColumnCell <> Datumabfrage ?
Thema durchsuchen
Ansicht
Themen-Optionen

DBGrid1DrawColumnCell <> Datumabfrage ?

Ein Thema von Vader · begonnen am 27. Apr 2006 · letzter Beitrag vom 27. Apr 2006
Antwort Antwort
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
mkinzler
(Moderator)

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

Re: DBGrid1DrawColumnCell <> Datumabfrage ?

  Alt 27. Apr 2006, 20:12
Das aktuelle datum erhälst du mit der Funktion Date(); ohne Parameter.
Markus Kinzler
  Mit Zitat antworten Zitat
Vader

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

Re: DBGrid1DrawColumnCell <> Datumabfrage ?

  Alt 27. Apr 2006, 20:39
hallo,

aber wie muß ich den code umschreiben :
Delphi-Quellcode:
s := uppercase(query1.FieldByName('P').AsString);
if s = 'P1then begin
    dbgrid1.Canvas.Font.Color := $000000DF;
 else if s = 'P2then begin
    dbgrid1.Canvas.Font.Color := clblack;
  end;
  // falls weder P1 noch P2, dann bleibt die Zeile wie Standard
  dbgrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
hab keine ahnung ???
mfg vader
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: DBGrid1DrawColumnCell <> Datumabfrage ?

  Alt 27. Apr 2006, 20:47
Delphi-Quellcode:
if query1.FieldByName('Datum').Value <= Date() then begin
    dbgrid1.Canvas.Font.Color := $000000DF;
else if s = 'P2then begin
    dbgrid1.Canvas.Font.Color := clblack;
  end;
  // falls weder P1 noch P2, dann bleibt die Zeile wie Standard
  dbgrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
Markus Kinzler
  Mit Zitat antworten Zitat
Vader

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

Re: DBGrid1DrawColumnCell <> Datumabfrage ?

  Alt 27. Apr 2006, 21:06
herzlichen dank !
mfg vader
  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 08:58 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