procedure TMainForm.ListBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  i,j:integer;
begin
  if(Key=VK_DELETE)then
  begin
    i:=ListBox1.Items.Count;
    if(i>0)then
      begin
        for j:=i-1 downto 0 do ****
          if(ListBox1.Selected[j]=True)then
            ListBox1.Items.Delete(j);
      end;
  end;
end;
***这里,为什么删除从后面开始呢?书上说如果从前面删除则删除一项后,后面的项对弈的index都要发生变化,可是如果从后面开始删除的话,要是我删除了中间一项呢?那这一项的后面的index不都也要变了吗?
希望高人帮我解开这个结。谢谢!!!!