Ich weiß nicht welche Delphi-Version du benutzt und ob das von mir gleich angesprochene Problem in aktuellen Versionen immernoch vorhanden ist:
Borland hat bei der Kapselung von Device-Context der ListView in ein TCanvas irgendwie misst gebaut. Sobald du im OnCustomDrawXXX-Event das zeichnen per MoveTo/LineTo usw beginnst, verändert sich bei Delphi 7 z.B. die Schriftart alle Einträge. Das ändern der Farbe oder der Schriftart stellt noch kein Problem dar - das zeichnen aber schon. Dieser
Artikel beschreibt genau, wie man das OnCustomDrawXXX-Event benutzt. Der von mir angesprochene Fehler wird in dem Artikel auch kurz im Abschnitt
Some "ifs and buts" angesprochen.
Sobald du TListView verwenden willst und im CustomDraw-Event selber zeichnen willst, wirst du auf Probleme stoßen.
Eine relativ unelegante aber einfache Methode ist aber, einfach eine TProgressBar - Komponente auf das TListView-Objekt zu packen und es im OnCustomDraw-Event neu zu positionieren.