* // Set the header icon Title of ListView: Description: Can be used to make sort modification icon design: zwang support: wjhu111@21cn.com Date: 2004-03-25 // *
Uses commctrl;
Function ListViewHeaderImages (mlistview: timagelist):
Boolean;
VAR
Vhandle: Thandle;
Begin
Result: =
False;
IF not assigned (mlistview)
.
vhandle: = listview_getheader (mlistview.handle);
IF Assigned (MIMAGES)
Then header_setimagelist (vhandle, mimages.handle)
Else header_setimagelist (vhandle, 0);
Result: =
True;
End; {ListViewHeaderImages}
Function ListColumnImageIndex (McOLUMN: TLISTCOLUMN;
MIMAGEINDEX: Integer; MRIGHT: BOOLEAN = TRUE):
Boolean;
Var vhandle: thandle;
VHDITEM: THDITEM;
Begin
Result: =
False;
IF NOT ASSIGNED (MCOLUMN) THEN EXIT;
Vhandle: = listview_getheader (TListView (Mcolumn.collection.OWNER) .Handle);
Fillchar (vhditem, sizeof (vhditem), 0);
Header_getitem (vhandle, mcolumn.index, vhditem);
IF MIMAGEINDEX <0
Then Begin
Vhditem.mask: = HDI_FORMAT;
VHDITEM.FMT: = HDF_STRING;
Else Begin vhditem.mask: = HDI_IMAGE OR HDI_FORMAT;
Vhditem.iimage: = mimageindex;
VHDITEM.FMT: = HDF_STRING OR HDF_IMAGE OR
(HDF_bitmap_on_right * ORD (MRIGHT));
END;
Header_SetItem (Vhandle, Mcolumn.index, Vhditem);
End; {ListColumnImageIndex}
// esample
Procedure TFORM1.ListView1ColumnClick (Sender: Tobject)
Column: tlistcolumn);
{$ J }
Const vindex: integer = 0;
{$ J-}
VAR
I: integer;
Begin
For i: = 0
To TListView (sender) .COLUMNS.COUNT - 1
DO
ListColumnImageIndex (TListView (sender) .COLUMNS [I], -1);
IF ABS (VINDEX) = Column.index 1
THEN
VINDEX: = -vindex
Else VINDEX: = Column.index 1;
ListColumnImageIndex (Column, ORD (VINDEX> 0));
END;
Procedure TFORM1.FormCreate (Sender: TOBJECT); Begin ListViewHeaderImages (ListView1, Imagelist1);
END;