Set the header icon for listview

xiaoxiao2021-03-06  94

* // 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;

转载请注明原文地址:https://www.9cbs.com/read-96886.html

New Post(0)