GARANTIR DESCONTO

Fórum Colorir colunas do listview #275263

02/04/2005

0

Gostaria de saber como faço pra colorir uma coluna de valores q tenho em um listview?

Abraços
Julio


Tuskinhu

Tuskinhu

Responder

Posts

02/04/2005

Massuda

Assumindo que você está usando o ListView em modo Report, use os eventos [b:8897004ca7]OnCustomDrawItem[/b:8897004ca7] e [b:8897004ca7]OnCustomDrawSubItem[/b:8897004ca7] para colorir as colunas; OnCustomDrawItem irá colorir a primeira coluna, OnCustomDrawSubItem as demais colunas.

Por exemplo, esse código vai gerar colunas com cores alternando entre amarelo e branco:
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState;
  var DefaultDraw: Boolean);
begin
  Sender.Canvas.Brush.Color := clYellow;
end;

procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: Integer; State: TCustomDrawState;
  var DefaultDraw: Boolean);
begin
  if Odd(SubItem) then begin
    Sender.Canvas.Brush.Color := clWhite;
  end
  else begin
    Sender.Canvas.Brush.Color := clYellow;
  end;
end;



Responder

Gostei + 0

02/04/2005

Tuskinhu

Bem, consegui o q queria... agora surgiu uma outra dúvida... dentro tenho um campo monetário, e eu gostaria de alinhar a esquerda... como faço?


Responder

Gostei + 0

03/04/2005

Massuda

... dentro tenho um campo monetário, e eu gostaria de alinhar a esquerda... como faço?
Imagino que seria alinhar a direita... Este código para o evento OnCustomDrawItem pode ser adaptado para o evento OnCustomDraweSubItem (não testei)...
procedure TForm1.ListView1OnCustomDrawItemSender: TCustomListView; 
  Item: TListItem; State: TCustomDrawState; 
  var DefaultDraw: Boolean); 
var
  S: string;
  R: TRect;
  Flags: Integer;
begin
  // Neste exemplo, os itens ímpares são alinhados à direita
  Flags := DT_VCENTER; // centra na vertical
  if Odd(Item.Index) then begin
    Flags := Flags or DT_RIGHT; // alinha à direita
  end
  else begin
    Flags := Flags or DT_LEFT; // alinha à esquerda
  end;

  // escreve o texto
  S := Item.Caption;
  R := Item.GetDisplayRect(drLabel);
  DrawText(Sender.Canvas.Handle, PChar(S), Length(S), R, Flags); 
end;



Responder

Gostei + 0

02/10/2009

Jasonmello

como faço para alterar a cor do caption do título da coluna?


Responder

Gostei + 0

05/10/2009

Abobre

Aproveitando o tópico, como que faço para aumentar a altura de cada linha do listview ?

ABraços


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar