Einzelnen Beitrag anzeigen

Vienesko

Registriert seit: 21. Mai 2017
Ort: Hamburg
13 Beiträge
 
#1

Listview verhält sich komisch

  Alt 11. Jan 2018, 11:36
Delphi-Version: 7
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.
  Mit Zitat antworten Zitat