(*//标题:设置ListView的页眉图标说明:可以用来做排序修饰图标设计:Zswang支持:wjhu111@21cn.com日期: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 }
//ExamplePRocedure 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;
新闻热点
疑难解答