Показать сообщение отдельно
  #14  
Старый 01.12.2014, 00:41
Аватар для Stalker2-42
Stalker2-42 Stalker2-42 вне форума
Новичок
 
Регистрация: 28.09.2013
Сообщения: 94
Версия Delphi: 2010
Репутация: 10
По умолчанию

Код:
procedure SortItems(hList : HWND; Column, bmArUp, bmArDn : Integer);
var
  hHeader : HWND;
  Item, ItemA    : THDITEM;
  I       : Integer;
  St	  : String;
  bm      : Integer;
begin
 // hLV := hList;

  St := '';
  for I := 0 to ListView_GetItemCount(hList) - 1 do
    St := St + LV_GetItemText(hList, I, Column);

  if St = '' then
    begin
      hHeader := ListView_GetHeader(hList);
      if hHeader = 0 then
        Exit;
      DrawColumnImage(hHeader, 0, 0);
      Exit;
    end;

  hHeader := ListView_GetHeader(hList);
  if hHeader = 0 then
    Exit;

  if Column = SortColumn then
    isSorted := not isSorted
  else
    begin
      SortColumn := Column;
      isSorted := True;
    end;

  if Column <> -1 then
    begin
      FillChar(Item, SizeOf(THDITEM), 0);
      Item.mask := Item.mask or HDI_LPARAM;
      if (not Header_GetItem(hHeader, Column, Item)) then
        Exit;
      Item.lParam := not Item.lParam;
      Header_SetItem(hHeader, Column, Item);
    end;


    FillChar(ItemA, SizeOf(ThdItem), 0);
  ItemA.Mask := HDI_FORMAT;
  if (not Header_GetItem(hHeader, Column, ItemA)) then
    Exit;
 //  ItemA.mask := HDI_FORMAT;
   ItemA.fmt := ItemA.fmt and not (HDF_BITMAP or HDF_SORTUP or HDF_SORTDOWN);



  for I := 0 to ListView_GetItemCount(hList) - 1 do
    begin
      if I <> Column then
        bm := 0
      else
      begin
        if isSorted then
         // bm := bmArUp
         begin
            ItemA.mask := ItemA.Mask or HDI_BITMAP;
            ItemA.fmt  := ItemA.fmt or HDF_SORTUP ;//Header_SetItem(hHeader, Column, Item);
           // ItemA.hbm  := bmp;
          end
        else
         // bm := bmArDn;
          begin
            ItemA.mask := ItemA.Mask or HDI_BITMAP;
            ItemA.fmt  := ItemA.fmt or HDF_SORTDOWN ;
          //  Item.hbm  := bmp;
          end;
      end;  Header_SetItem(hHeader, Column, ItemA);
      //DrawColumnImage(hHeader, I, bm);SetWindowText(form, IntToStr(bm));
    end;

  if Column <> -1 then
    ListView_SortItems(hList, @CompareFunc, MAKELONG(Column, ord(isSorted)));
end;

как можно исравить? И сделать как в проводнике(стрелочки)?
Ответить с цитированием