Colorir colunas do listview
Gostaria de saber como faço pra colorir uma coluna de valores q tenho em um listview?
Abraços
Julio
Abraços
Julio
Tuskinhu
Curtidas 0
Respostas
Massuda
02/04/2005
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:
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;
GOSTEI 0
Tuskinhu
02/04/2005
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?
GOSTEI 0
Massuda
02/04/2005
... 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;
GOSTEI 0
Jasonmello
02/04/2005
como faço para alterar a cor do caption do título da coluna?
GOSTEI 0
Abobre
02/04/2005
Aproveitando o tópico, como que faço para aumentar a altura de cada linha do listview ?
ABraços
ABraços
GOSTEI 0