我程序里的一段:
Var
  ts: TListItem;
  dataid:pdatanode;
  tdc,tds1,tds2,tsc,tss1,tss2,pxsql:string;
  movid,m:integer;begin
  if rzlistview1.Selected<>nil then
  begin
    j:=rzlistview1.Items.Count;
    if j<>0 then
    begin
      ts:=rzListView1.Selected;
      rzListView1.SetFocus;
      i:=ts.Index;
      if i<j-1 then
      begin
        tsc:= rzlistview1.Items[i].Caption;
        tss1:=rzlistview1.Items[i].SubItems[0];
        tss2:=rzlistview1.Items[i].SubItems[1];
        rzlistview1.Refresh;
        rzListView1.Items[i+1].Selected:=true;
        rzListView1.SetFocus;
        tdc:=rzlistview1.Items[i+1].Caption;
        tds1:=rzlistview1.Items[i+1].SubItems[0];
        tds2:=rzlistview1.Items[i+1].SubItems[1];
        rzlistview1.Items[i+1].Caption:=tsc;
        rzlistview1.Items[i+1].SubItems[0]:=tss1;
        rzlistview1.Items[i+1].SubItems[1]:=tds2;
        rzlistview1.Items[i].Caption:=tdc;
        rzlistview1.Items[i].SubItems[0]:=tds1;
        rzlistview1.Items[i].SubItems[1]:=tss2;
      end;
    end;
    dataid:=rztreeview1.Selected.Data;
    movid:=integer(dataid.ID);
{    Datamodule3.ADOTable2.Filtered :=true;
    Datamodule3.ADOTable2.Filter := 'sxparent='+inttostr(movid);
    Datamodule3.ADOTable2.Sort:='sxsort';
    datamodule3.ADOTable2.First;}
    pxsql:='select * from zbtable where sxparent='+inttostr(movid);
    With DataModule3.ADOQuery1 Do
    Begin
      Close;
      SQl.Clear;
      SQl.add(pxsql);
      open;
    End;
    DataModule3.ADOQuery1.Sort:='sxsort';
    for m:=0 to rzlistview1.Items.Count-1 do
    begin
      DataModule3.ADOQuery1.Locate('id',rzlistview1.Items[m].Caption,[lopartialkey]);
      datamodule3.ADOQuery1.Edit;
      datamodule3.ADOQuery1.FieldByName('sxsort').value:=strtoint(rzlistview1.Items[m].SubItems[1]);
      datamodule3.ADOQuery1.Post;
    end;
  end;
end;

解决方案 »

  1.   

    var
        Ln: TListItem;
    begin
        Ln:= TListItem.Create(ListView1.Items);
        Ln.Assign(ListView1.Items[0]);
        ListView1.Items[0].Assign(ListView1.Items[1]);
        ListView1.Items[1].Assign(Ln);
        Ln.Free;
    end;
      

  2.   

    var
        Ln: TListItem;
    begin
        Ln:= TListItem.Create(ListView1.Items);
        Ln.Assign(ListView1.Items[0]);
        ListView1.Items[0].Assign(ListView1.Items[1]);
        ListView1.Items[1].Assign(Ln);
        Ln.Free;
    end;