Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   BDGrid sortieren nach zeilen farbe (https://www.delphipraxis.net/160179-bdgrid-sortieren-nach-zeilen-farbe.html)

Alterauge 1. Mai 2011 10:51

Datenbank: firebird • Version: ? • Zugriff über: Connection

BDGrid sortieren nach zeilen farbe
 
Habe zwei Fragen!

1.) DBGrid nach Zeilenfarbe sortieren!
Alles was gelb ist nach oben

2.) wenn ein neuer Datensatz gelesen wird [refresh] aber nur bei Zeile gelb,
soll einmalig eine wav Datei abgespielt werden. Oder Beep würde auch gehen!

Delphi-Quellcode:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
  var Wert: string;
begin
  Wert := DBGrid1.DataSource.DataSet.FieldByName('STATUS').Value;
  if Wert = 'Erfasst' then begin
    DBGrid1.Canvas.Brush.Color := clYellow;
    DBGrid1.Canvas.Font.Color := clblack;
  end else if Wert = 'Disponiert' then begin
    DBGrid1.Canvas.Brush.Color := clFuchsia;
    DBGrid1.Canvas.Font.Color := clblack;
   end else if Wert = 'Beendet' then begin
    DBGrid1.Canvas.Brush.Color := cllime;
    DBGrid1.Canvas.Font.Color := clblack;
   end else if Wert = 'Termin' then begin
    DBGrid1.Canvas.Brush.Color := clAqua;
    DBGrid1.Canvas.Font.Color := clblack;
   end else if Wert = 'Unwetter' then begin
    DBGrid1.Canvas.Brush.Color := clWhite;
    DBGrid1.Canvas.Font.Color := clNavy;
   end else if Wert = 'Geschlossen' then begin
    DBGrid1.Canvas.Brush.Color := clgreen;
    DBGrid1.Canvas.Font.Color := clblack;
   end else if Wert = 'Alarmiert' then begin
    DBGrid1.Canvas.Brush.Color := clWhite;
    DBGrid1.Canvas.Font.Color := clred;
  end else begin
    DBGrid1.Canvas.Brush.Color := clWhite;
    DBGrid1.Canvas.Font.Color := clblack;
  end;
  DBGRid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
In Delphi 5

DeddyH 1. Mai 2011 10:57

AW: BDGrid sortieren nach zeilen farbe
 
Du solltest nicht die Farben sortieren/auswerten, sondern die dahinterliegenden Daten.

Alterauge 1. Mai 2011 10:58

AW: BDGrid sortieren nach zeilen farbe
 
das wäre dann 'Erfasst'

und dann ?

DeddyH 1. Mai 2011 11:02

AW: BDGrid sortieren nach zeilen farbe
 
Dann kannst Du die Datenmenge durchgehen und schauen, ob Du einen entsprechenden Datensatz dabeihast. Wenn ja, Sound ausgeben und Schleife verlassen.

[edit] Oder temporär eine COUNT-Abfrage mit den selben Suchkriterien starten und auswerten. [/edit]

Alterauge 1. Mai 2011 11:15

AW: BDGrid sortieren nach zeilen farbe
 
wie würde das aussehen?

Delphi-Quellcode:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
  var Wert: string;
begin
  Wert := DBGrid1.DataSource.DataSet.FieldByName('STATUS').Value;
  if Wert = 'Erfasst' then begin

DeddyH 1. Mai 2011 11:35

AW: BDGrid sortieren nach zeilen farbe
 
Das Zeichnen ist definitiv das falsche Ereignis, das tritt ja auch ein, wenn z.B. die Anwendung minimiert und wiederhergestellt wird. Du musst das machen, wenn Du die Daten holst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 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-2025 by Thomas Breitkreuz