Delphi 7 で TTNTListView を使用しています。vsReport に設定されています。OnCustomDrawSubItem イベントで、次のコードを使用します。
procedure TForm.ListViewCustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState;
var DefaultDraw: Boolean);
begin
if SubItem = 2 then
if (Item.SubItems.Strings[1] = Text1) or (Item.SubItems.Strings[1] = Text2) then
Sender.Canvas.Font.Color := clGreen
else
Sender.Canvas.Font.Color := clRed;
end;
問題は、すべてのサブアイテム >= 3 がサブアイテム 2 と同じ色で描画されることです。サブアイテム >= 3 の Sender.Canvas.Font.Color は clBlack ですが、clRed と clGreen で描画されます。私のコードに問題がある場合は、修正方法を教えてください。バグの場合は、誰かが回避策を知っている可能性があります。ありがとうございました。