设置ListView的页眉图标

来源:互联网 发布:php getopt 编辑:程序博客网 时间:2024/04/28 23:23
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
(*//标题:设置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;
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击