请问这样来改变listview当中的颜色!!!!

解决方案 »

  1.   

    控制行的颜色:ListView1.OwnerDraw := true;procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
      Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
    begin
      inc(i);
      if odd(i) then  begin
        listview1.Canvas.Brush.Color:=$00FEF4E7;
        listview1.Canvas.FillRect(item.DisplayRect(drBounds));
      end else begin
        listview1.Canvas.Brush.Color:=$00F7F8F9;
        listview1.Canvas.FillRect(item.DisplayRect(drBounds));
      end;
    end; 
      

  2.   

    Procedure DrawLV(Listview: TListview; Item: TListItem; Color1, Color2: TColor; Def: Boolean = true);
    Var
      Frect: TRect;
    Begin
      Frect := Listview.BoundingRect;
    //  Frect:=item.ListView.BoundsRect;
      If Def Then
        Begin
          If (item.Index Mod 2) = 0 Then
            Listview.Canvas.Brush.Color := Color1 //$00FFB3B3
          Else
            Listview.Canvas.Brush.Color := Color2; //$00FFB3B3
        End
      Else
        Listview.Canvas.Brush.Color := Color1; //$00FFB3B3
      Listview.Canvas.FillRect(Frect);
    End;
    procedure TForm1.ListView1AdvancedCustomDrawItem(Sender: TCustomListView;
      Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
      var DefaultDraw: Boolean);
    begin
      DrawLV(listview1, item, $00EEF7FF, $00FFF4F4);
    end;