Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как переместить элемент в ListView?


Автор: Alex 23.10.2005, 21:55
Код

procedure Exchange(WinLV: DWord; Index1,Index2:integer);
var In1,In2:tagLVItemA;
    s1,s2:array [0..1024] of Char;
begin
  FillChar(In1,SizeOf(In1),#0);
  In1.mask:=DWord(-1);
  CopyMemory(@In2,@In1,SizeOf(In1));
  In1.iItem:=Index1;
  In1.pszText:=PChar(@s1);
  In2.iItem:=Index2;
  In2.pszText:=PChar(@s2);
  ListView_GetItem(WinLV,In1);
  ListView_GetItem(WinLV,In2);
  In1.iItem:=Index2;
  In2.iItem:=Index1;
  ListView_SetItem(WinLV,In1);
  ListView_SetItem(WinLV,In2);
end;

Использование: 
Код

Exchange(ListView1.Handle,0,2);


Автор: Girder


Код

function DragItemInLV(LV: TListView; CurIndex, NewIndex: Integer): Boolean;
var
  i: Integer;
  lstDrag: TListItem;
begin
  Result:= False;
  i:= LV.Items.Count-1;
  if (CurIndex = -1) or (NewIndex = -1) then exit;
  if (CurIndex > i ) or (NewIndex > i ) then exit;
  lstDrag:= TListItem.Create(LV.Items);
  try
    lstDrag           .Assign(LV.Items[NewIndex]);
    LV.Items[NewIndex].Assign(LV.Items[CurIndex]);
    LV.Items[CurIndex].Assign(lstDrag           );
  finally
    lstDrag.Free;
  end;
  Result:= True;
end;


Использование: 
Код

DragItemInLV(ListView1,0,2);


Автор: Alex

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)