为了对listview中的记录进行排序,我在oncolumnclick()事件中使用了AlphaSort方法,可是之后我如果再添加一个新的记录时,就报错:list index out of bounds(0)
相关代码如下:
procedure TUserPowerForm.lvUserColumnClick(Sender: TObject;
  Column: TListColumn);
begin
  ColumnToSort := Column.Index;
  (Sender as TCustomListView).AlphaSort;
  asc := not asc;
end;procedure TUserPowerForm.lvUserCompare(Sender: TObject; Item1,
  Item2: TListItem; Data: Integer; var Compare: Integer);
var
  ix: Integer;
begin
  if ColumnToSort = 0 then
    Compare := CompareText(Item1.Caption,Item2.Caption)
  else begin
    ix := ColumnToSort - 1;
    Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix]);
  end;
  if asc then
    Compare := -Compare;
end;添加记录的代码简化为:
var li : TListItem;
li := lvUser.Items.Add;
li.Caption := 'name';多谢各位!