设置ListView的页眉图标

类别:Delphi 点击:0 评论:0 推荐:

(*// 标题:设置ListView的页眉图标 说明:可以用来做排序修饰图标 设计:Zswang 支持:[email protected] 日期:2004-03-25 //*)

uses CommCtrl;

function ListViewHeaderImages(mListView: TListView; mImages: TImageList): Boolean; var vHandle: THandle; begin Result := False; if not Assigned(mListView) then Exit; 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; end 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 }

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

本文地址:http://com.8s8s.com/it/it5124.htm