Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 589
  • Last Modified:

display sorting triangle in ListView column header

How can I display in a ListView column header a triangle that shows after which column are sorted the items, and in which direction (like in the Microsoft Internet Mail and News)?
0
biroadam
Asked:
biroadam
  • 2
1 Solution
 
erajojCommented:
Hi,
You could do something like this:

uses
  ...ComCtrls, Commctrl;

var
  MyBMP : TBitmap;
  hditem: THDItem;

  MyBMP := TBitmap.Create;
  with MyBMP do begin
    Canvas.Brush.Color := clBtnFace;
    Width  := 10;
    Height := 10;
// down...
    Canvas.Polyline([Point(0,0),Point(4,8),Point(8,0),Point(0,0)]);
//  up...
//  Canvas.Polyline([Point(0,8),Point(4,0),Point(8,8),Point(0,8)]);
  end;

 ...

  hditem.Mask := HDI_FORMAT;
  Header_GetItem( GetDlgItem( ListView1.Handle, 0 ), 1, hditem );
  hditem.Mask := HDI_BITMAP or HDI_FORMAT;
  hditem.fmt  := hditem.fmt or HDF_BITMAP;
  hditem.hbm := MyBMP.Handle;
  Header_SetItem( GetDlgItem( ListView1.Handle, 0 ), 1, hditem );

/// John

0
 
ronit051397Commented:
Did you check it? It doesn't seem to work.
0
 
biroadamAuthor Commented:
 Thank you, it was a good answer.

  I have two further questions:

  1. How can I move the bitmap on the RIGHT side of the column header’s caption (the bitmap generated by your code is on the left side)?

  2. How can I resolve the transparency problem for this bitmap? I must have a triangle on a clButtonFace background, so I have two choises: A. making a procedure which calls the CreateGrayMappedBmp function every time the system colors changes, or B. I have a transparent color.

  I couldn’t use the solution B because setting my bitmap’s Transparency, TransparentColor and TransparentMode properties, the transparency didn’t work on the column header.
0
 
ronit051397Commented:
Does it work on NT4?
Does it work when the listview is not on the main form?

If yes, can you please send me the sample code?  ronith@cmr.co.il

Thanks,
Ronit
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now