![]() |
Datenbank: Paradox • Version: 7 • Zugriff über: TQuery
DBGrid1DrawColumnCell <> Datumabfrage ?
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 = 'P1' then begin // dbgrid1.Canvas.Brush.Color := clBlue; dbgrid1.Canvas.Font.Color := $000000DF; dbgrid1.Canvas.Font.Style:= [fsBold]; end else if s = 'P2' then 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 |
Re: DBGrid1DrawColumnCell <> Datumabfrage ?
Das aktuelle datum erhälst du mit der Funktion
Delphi-Quellcode:
ohne Parameter.
Date();
|
Re: DBGrid1DrawColumnCell <> Datumabfrage ?
hallo,
aber wie muß ich den code umschreiben :
Delphi-Quellcode:
hab keine ahnung ???
s := uppercase(query1.FieldByName('P').AsString);
if s = 'P1' then begin dbgrid1.Canvas.Font.Color := $000000DF; else if s = 'P2' then 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; mfg vader |
Re: DBGrid1DrawColumnCell <> Datumabfrage ?
Delphi-Quellcode:
if query1.FieldByName('Datum').Value <= Date() then begin
dbgrid1.Canvas.Font.Color := $000000DF; else if s = 'P2' then 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; |
Re: DBGrid1DrawColumnCell <> Datumabfrage ?
herzlichen dank !
mfg vader |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz