Moin Moin,
Ich habe auf meiner Datenbankoberfläche eine ListView, die sich ihre Daten aus einer
MySQL Datenbank holt.
Nun möchte ich mehrere Werte aus dieser Listview miteinander vergleichen und die Zeilen dann dementsprechenden einfärben.
Das ganze habe ich nach folgendem Beispiel realisiert:
http://www.delphipraxis.net/54915-li...n-faerben.html
Bei mir sieht das dann so aus:
Delphi-Quellcode:
procedure TmainFrm.ListView2CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if Item.SubItems[2] < Item.SubItems[3]
then Sender.Canvas.Brush.Color := clYellow
else if DateToStr(Date) = Item.SubItems[4]
then Sender.Canvas.Brush.Color := clRed
end;
In SubItems[2] stehen "ist" Werte und in SubItems[3] stehen "soll" Werte. Fallen die "ist" Werte unter die "soll" Werte, sollen die Zeilen gelb eingefärbt werden.
In SubItems[4] steht ein Datum. Stimmt das mit dem heutigen Datum überein, soll die Zeile rot eingefärbt werden.
Das funktioniert grundsätzlich auch prima.
Jedoch spinnt der Vergleich der "soll" und "ist" Werte.
Ein Beispiel: Ein Artikel ist mit einem "soll" Wert von 3 in der ListView und hat einen "ist" Wert von 177. Er wird gelb eingefärbt.
Ein anderer Artikel hat einen "soll" Wert von 10 und einen "ist" Wert von 9. Dieser ist nicht gelb eingefärbt.
Lösche ich hier 8 sodass der "ist" Wert 1 beträgt wird der Artikel gelb eingefärbt.
Es wirkt so, als würde nicht die ganze Zahl verglichen sondern nur die erste Stelle. Kann das sein?
Wie kann ich das ändern?
Danke im Voraus.